Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中重定向到另一个页面_Php_Mysql - Fatal编程技术网

如何在php中重定向到另一个页面

如何在php中重定向到另一个页面,php,mysql,Php,Mysql,伙计们,我是php新手,我正在尝试创建一个登录页面 若语句为真,如何重定向页面 我尝试了iwth标题(“location:nextpage.php”);但它不起作用 <html> <head> <title>Uploader</title> </head> <body> <form action="index.php" method="POST" enctype

伙计们,我是php新手,我正在尝试创建一个登录页面

若语句为真,如何重定向页面

我尝试了iwth标题(“location:nextpage.php”);但它不起作用

<html>
    <head>
        <title>Uploader</title>
    </head>
    <body>

        <form action="index.php" method="POST" enctype="application/x-www-form-urlencoded"> 
        <input id="login" class="username" type="text" name="username" autofocus placeholder="Username" maxlength="30"/>
        <input id="login" class="password" type="password" name="password" placeholder="Password" maxlength="15"/>
        <input id="login" class="submit" type="submit" value="Login" />
        <p>Last update <span id="lastupdate"><?php echo date('d-m-Y');?></span></p>

        <?php
        mysql_connect("localhost", "root","******") or die(mysql_error());
        mysql_select_db("login") or die(mysql_error());

        if(isset($_POST['username']) && isset($_POST['password'])){
            $db_user = mysql_query("SELECT username FROM login_tb");
            $db_pass = mysql_query("SELECT password FROM login_tb");
            $ctrl_user = mysql_result($db_user,0);
            $ctrl_pass = mysql_result($db_pass,0);

            $username = $_POST['username'];
            $password = $_POST['password'];
            echo $username . $password;

            if(($username || $password) == NULL){
                echo "you have entered wrong username or password! <br/> please contact site admin.";
            }else{
                if($username == $ctrl_user && $password == $ctrl_pass){
                header("location: ./nextpage.php");
                }
            }
        }
        ?>
    </body>
</html>

上传器
最后更新


请问有人能帮我吗?感谢

头就是它,它出现在数据传输的开始。在尝试发送标题之前,您正在发送数据(大部分网页)

将php代码移到文件顶部,然后在另一个php块的正确位置回显“错误的用户/过程”

<?php
    mysql_connect("localhost", "root","******") or die(mysql_error());
    mysql_select_db("login") or die(mysql_error());

    if(isset($_POST['username']) && isset($_POST['password'])){
        $db_user = mysql_query("SELECT username FROM login_tb");
        $db_pass = mysql_query("SELECT password FROM login_tb");
        $ctrl_user = mysql_result($db_user,0);
        $ctrl_pass = mysql_result($db_pass,0);

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

        if(($username || $password) != NULL && $username == $ctrl_user && $password == $ctrl_pass){
            header("location: ./nextpage.php");
        }
    }
?>
<html>
    <head>
        <title>Uploader</title>
    </head>
    <body>

        <form action="index.php" method="POST" enctype="application/x-www-form-urlencoded"> 
        <input id="login" class="username" type="text" name="username" autofocus placeholder="Username" maxlength="30"/>
        <input id="login" class="password" type="password" name="password" placeholder="Password" maxlength="15"/>
        <input id="login" class="submit" type="submit" value="Login" />
        <p>Last update <span id="lastupdate"><?php echo date('d-m-Y');?></span></p>
        <?php
            echo $username . $password;
            if(($username || $password) == NULL){
                echo "you have entered wrong username or password! <br/> please contact site admin.";
            }
        ?>
    </body>
</html>

上传器
最后更新


似乎是输出缓冲问题,您可以使用
ob\u start()
ob\u end\u fluh()

及跟随;

<? ob_start(); ?>
<html>
    <head>
        <title>Uploader</title>
    </head>
    <body>

        <form action="index.php" method="POST" enctype="application/x-www-form-urlencoded"> 
        <input id="login" class="username" type="text" name="username" autofocus placeholder="Username" maxlength="30"/>
        <input id="login" class="password" type="password" name="password" placeholder="Password" maxlength="15"/>
        <input id="login" class="submit" type="submit" value="Login" />
        <p>Last update <span id="lastupdate"><?php echo date('d-m-Y');?></span></p>

        <?php
        mysql_connect("localhost", "root","******") or die(mysql_error());
        mysql_select_db("login") or die(mysql_error());

        if(isset($_POST['username']) && isset($_POST['password'])){
            $db_user = mysql_query("SELECT username FROM login_tb");
            $db_pass = mysql_query("SELECT password FROM login_tb");
            $ctrl_user = mysql_result($db_user,0);
            $ctrl_pass = mysql_result($db_pass,0);

            $username = $_POST['username'];
            $password = $_POST['password'];
            echo $username . $password;

            if(($username || $password) == NULL){
                echo "you have entered wrong username or password! <br/> please contact site admin.";
            }else{
                if($username == $ctrl_user && $password == $ctrl_pass){
                header("Location: ./nextpage.php");
                }
            }
        }
        ?>
    </body>
</html>
<? ob_end_flush(); ?>

上传器
最后更新


重定向页面有多种方法,我喜欢按如下方式进行:

<?php
header('Location: /blah.php');
die('<meta http-equiv="refresh" content="0; url=http:/blah.php" />\n
<p>Please visit <a href="/blah.php">Blah.php</a>.</p>');
?>

更新标题(“位置:./nextpage.php”);到标题(“位置:./nextpage.php”);请注意,您的代码没有任何意义。您试图用此代码做什么?不要以纯文本形式存储密码。有关更多信息,请参阅。您应该同时测试用户名和密码。因此,类似于
从login\u tb中选择COUNT(*),其中username='x'和password='y'
。其中,
x
y
是从用户处获取的未经修改的值,请注意SQL注入(查找)。这只是一个拐杖,永远不应该使用。实际上,我没有完全检查用户代码是否有意义地编码,我只是想强调重定向的输出缓冲。感谢这一点。你不应该为了重定向而强调输出缓冲。老兄,你只是把他的无意义代码留作参考is@YourCommonSense他正在努力学习,虽然我同意他的代码不是最高质量的,而且安全漏洞比Chicxulub陨石坑还要大,我给出了他的问题的解决方案,而没有参加关于安全性或良好编码实践的讲座。天哪,这不是“最高质量”!这没有任何意义,也永远不会起作用。这不是“安全”或“惯例”的问题。这个代码永远不会工作。真不敢相信你居然看不见。
$user = htmlspecialchars(mysql_real_escape_string($_POST['user']));