这段代码有什么问题? 它正确创建会话但不重定向我,“标题”之前没有“回声”。
if(isset($_POST['login'])){
include('../maincore/connect-db.php');
$username=$_POST['username'];
$password=$_POST['password'];
$result = mysql_query("SELECT * FROM supporter WHERE username='$username'")
or die(mysql_error());
$row = mysql_fetch_array($result);
$pass=$row['password'];
if($password==$pass && $password!=''){
$_SESSION['username']=$username;
$_SESSION['name']=$row['name'];
$_SESSION['family']=$row['family'];
$_SESSION['id']=$row['id'];
$_SESSION['type']=$row['type'];
header('location: works.php');
}else{
header('location: index.php');
}
}
答案 0 :(得分:0)
如果这是您的真实代码,您是否应该使用sha1或某种不可逆的哈希密码?只是..想知道..
刚试过你的代码,事情在我的结尾工作正常..所以你必须给我们更多关于你的错误日志的信息
答案 1 :(得分:0)
http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Response_message
文档标题应在文档内容之前发送。
PHP实时执行,当我请求页面时,页面未被评估和发送,因此当您编写文档开始发送文档时,不能再向标题添加标题。
你的问题不是你在标题之前回应的东西。
错误示例:
<?php
session_start(); // Send the session id header.
echo "This is a rawr text"; // Print something to the document
header("location: index.php"); // And this line will throw a error cause you already writed in the document.
?>
另一个错误:
<?php
session_start();
?>
<body>
Inside of body
</body>
<?php
header("location: index.php"); // this will throw a error cause the text upside has been already sent.
?>
解决方案: 在写入文档之前,请输入您的代码( header()函数。