我正在编写登录脚本。我的 db.php 不回显/打印任何内容,所以为什么不 header("Location: index.php");登录成功后重定向?登录信息正确。我知道我需要清理输入,但这目前不是问题。
<?php
require('db.php');
$username = $_POST['un'];
$password = $_POST['pw'];
$qry="SELECT uid FROM users WHERE name='$username' AND pass='".md5($password)."'";
$result=mysql_query($qry);
if(mysql_num_rows($result) == 1){
session_regenerate_id();
$user = mysql_fetch_assoc($result);
$_SESSION['S_UID'] = $user['uid'];
session_write_close();
header("Location: index.php");
exit();
}else{
echo "<center><form action='index.php' name='login'>Login failed! Please try again with correct username and password.<br><input type='submit' name='failed' value='Return to Login'></form></center>";
exit();
}
?>
最佳答案
只有在调用函数之前脚本没有发送输出时,函数头才会起作用。检查上面的代码是否有回显。
如果没有,请检查上面的包含文件在结束“?>”标记后是否有多余的空格或换行符。否则,该空格或换行符将在 header 之前发送到浏览器。
关于php - 为什么我的 php 重定向不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3402736/