我有一个包含表单的登录页面。登录数据被发送到一个 php 脚本中,以检查用户是否存在于数据库中。如果成功,它应该重定向。
这是我的代码:
<?php
$host="localhost:8889"; // Host name
$username="root"; // Mysql username
$password="root"; // Mysql password
$db_name="TableName"; // Database name
$tbl_name="Users"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// username and password sent from form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file
session_register("myusername");
session_register("mypassword");
header("location:../main.php");
die();
}
else {
echo "Wrong Username or Password";
}
?>
计数为 1,但不会发生重定向。
我已经阅读了这个很好的答案并检查了以下内容:
- 开始标签之前没有空格,我也没有另一个回声或打印。
- 我尝试在打开 php 标记之后放置
ob_start
,但它也没有工作。
我不明白BOM的事情。你能帮我吗?
我过去一直在使用完全相同的代码并且它有效,现在我在 mamp 上并且 mac 不起作用。
谢谢。
编辑:
我做了人们所说的,在修复了这些事情并启用了报告之后,问题是:
Call to undefined sesion_register.
所以,我改变了它,因为它没有定义也没有被弃用,它现在可以工作了!谢谢大家!