使用PHP登录表单而不刷新

时间:2014-02-24 11:43:33

标签: php function login call

我有一个登录表单,我通过PHP验证。问题是,表单的操作引用了文件本身,因此它将刷新页面。我不喜欢这个。是否可以通过PHP检查输入而无需刷新页面?

这是我的代码:

<?php
     if ($_SERVER['REQUEST_METHOD'] == 'POST') {
     session_start();

     $username = $_POST['username'];
     $passwort = $_POST['passwort'];

     $hostname = $_SERVER['HTTP_HOST'];
     $path = dirname($_SERVER['PHP_SELF']);

     // Benutzername und Passwort werden überprüft
     if ($username == 'admin' && $passwort == 'admin') {
        $_SESSION['angemeldet'] = true;

            // Weiterleitung zur geschützten Startseite
            if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
                if (php_sapi_name() == 'cgi') {
                    header('Status: 303 See Other');
                }
                else {
                    header('HTTP/1.1 303 See Other');
                }
            }

       header('downloadbereich.php');
       exit;
       }
      }
?>

<link href="login.css" rel="stylesheet" type="text/css" />
<div class="contactForm" id="contactForm" style="width: 500px; margin: auto; float: left;">


<form name="myform" method="post" action="login.php<!-- this is what I want to remove-->">
    <p class="form" style="width: 245px; height: 116px; margin-right: 10px;"><input class="field" type="text" name="username" placeholder="Name" />
    <input class="field" type="password" autofocus name="passwort" placeholder="Passwort" />
    <button class="button" name="Submit">Login</button></p>

</form>
</div>

4 个答案:

答案 0 :(得分:1)

在此页面调用ajax,您的页面将无法刷新。 ajax有一个调用该页面但不刷新页面的帖子页面调用。

答案 1 :(得分:1)

另一种可能性:在页面中创建一个iframe并发布到该页面。

<div id="somediv">Not logged in"</div>
<iframe id="upload_target" name="upload_target" src="about:blank"></iframe>
<form id="myform" name="myform" action="page_to_post_to.php" method="post" enctype="multipart/form-data" target="upload_target" >
    //your form
</form>

里面* page_to_post_to.php *你可以随心所欲。对主页面的反馈可以通过一些javascript给出,引用父母。

<php
//do your stuff here
?>
<script>
window.top.window.document.getElementById('somediv').innerHTML='logged in';
</script>

答案 2 :(得分:0)

使用jQuery - AJAX:

$.post('login.php', {
    username : $('input[name=username]').val(),
    password : $('input[name=password]').val()
});

答案 3 :(得分:0)

将表单操作设置为php文件,该文件应检查输入并将错误或成功返回到父页面/表单。使用iframe作为表单目标。

你可以像这样使用jQuery(在login.php中):

parent.$('#submitStatus').html('there were some errors');