如何在php中重定向到另一个页面
伙计们,我是php新手,我正在尝试创建一个登录页面 若语句为真,如何重定向页面 我尝试了iwth标题(“location:nextpage.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
<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']));