首先,我是php的新手。我也是MySQL的新手,所以请对我温和。其次,我知道mysql_ *被贬值,并且一旦我了解了更多信息,这个问题就会在稍后被修复。无法从MySQL表中检索数据
所以我有以下代码:
if(isset($_POST['email']) && !empty($_POST['email']) AND isset($_POST['password']) && !empty($_POST['password'])){
$email = mysql_escape_string($_POST['email']);
$password = mysql_escape_string($_POST['password']);
$search = mysql_query("SELECT * FROM users WHERE email='".$email."' AND password='".$password."' AND active='1'") or die(mysql_error());
$match = mysql_num_rows($search);
if($match > 0){
$user=$search['forename'] .' '.$search['surname'];
$_SESSION['username']=$user;
$msg = 'Login Complete! Thanks, '.$user.'!';
}else{
$msg = 'Login Failed!<br /> Please make sure that you enter the correct details and that you have activated your account.';
}
}
很简单,我检查了电子邮件地址和密码匹配(我知道这是不是一个哈希密码......再次,不是一个问题,因为它是一个测试)。如果他们这样做,并且帐户已被激活,那么我想要返回用户名和姓(用户表中的forename/surname)并将它们存储在会话变量中。如果该变量已设置,我想使用此信息来确认用户已登录(并因此可以访问某些页面)。但是,此测试不返回用户名,而是输出:
登录完成!谢谢, !
任何帮助,将不胜感激。
mysql_num_rows现在已弃用。使用PDO或mysqli。 – Husman 2013-02-27 14:11:56
你需要mysql_fetch_array:while($ row = mysql_fetch_array($ search)){ $ user = $ row ['forename']。' ”。$行[ '姓']; } – 2013-02-27 14:12:28
当你运行这个时会发生什么?你有一个SQL连接错误?或者什么也没有? – Husman 2013-02-27 14:13:37