为什么php中的重定向代码可以自动工作


why Redirect code in php work automatically?

我想为登录用户编写一些代码,当用户还没有在数据库中注册时,将其发送到"register.php"页面。我使用了标题("Location:register.php")代码,但当我刷新页面时,没有任何点击注册按钮,它会自动转到该页面,登录表单没有显示!

这是我的"login.php"代码:

<?php
require 'core_inc.php';
require 'connect_inc.php';
if(isset($_POST['txtusername']) && isset($_POST['txtpassword']))
{
    if(!empty($_POST['txtusername']) && !empty($_POST['txtpassword']))
    {               
    $username = trim($_POST['txtusername']);
    $password = trim($_POST['txtpassword']);
    $hash_passwword = md5($password);
    $query = "select `id` from `for_login` where `username` = '$username' and `password` = '$hash_passwword'";          
    if($query_run = mysql_query($query))
    {                   
        $query_num_rows =  mysql_num_rows($query_run);
        if($query_num_rows == 0){
            echo 'invalid username or password! if you have not registered yet please do it!';
        }
        else if($query_num_rows == 1)               
            {   
                $_SESSION['username'] = $username;  
                header('Location: index.php');
            }
    }
}
else 'please fill the blanks';  
}

?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<body>
<form action="<?php  echo $current_file; ?>" method="post">
    please enter your username and password to login. if you already not         registered please click to register button! :) <br><br>
username:<br>
    <input type="text" name="txtusername"><br>
    password:<br>
    <input type="password" name="txtpassword"><br><br>
    <input type="submit" value="login">   
    <input type="submit" value="register" onClick="<?php header('Location:     register.php'); ?>" name="btnregister"  >    
</form>
</body>
</html>

"core_inc.php"在这里:

<?php
 @session_start();
 $current_file = $_SERVER['SCRIPT_NAME'];
 $http_referer = @$_SERVER['HTTP_REFERER'];
?>

我知道"connect_inc.php"没有问题,它成功地连接到了数据库。我试着删除其他不相关的代码,比如",但无济于事。如有任何帮助,我们将不胜感激。

尝试使用此。。。

<a href="register.php">Register</a>而非

<input type="submit" value="register" onClick="<?php header('Location:     register.php'); ?>" name="btnregister">`

onClick需要一个javascript函数,而不是PHP。尝试

window.location='register.php'

所以在这种情况下:

<input type="submit" value="register" onClick="window.location='register.php'" name="btnregister">

从提交字段中完全删除onclick函数,添加

header('Location:register.php');

到您的

    if($query_num_rows == 0){
    echo 'invalid username or password! if you have not registered yet please do it!';
    header('Location:register.php');
    }