我是一个初级的php程序员,并试图创建一个数据库注册/登录系统。系统可以在家里用最新版本的phpmyadmin运行,但我的学校还没有更新到最新版本(别担心,这不是家庭作业)。我遇到的问题是,在学校,当我尝试登录时,mysql_num_rows返回0,但当我尝试在家里登录时,则返回1。我的老师说phpmyadmin的版本可能导致了这个问题。学校的版本是: 4.5.2。
这是我的login.php文件:
<?php
include('connect.php');
session_start();
$error = "";
$emailaddress = $_POST["emailaddress"];
$password = $_POST["password"];
if(empty($emailaddress) || empty($password)){
$error = "Email or password is invalid!";
echo $error;
}
else{
$queryforlogin = mysql_query("SELECT * FROM users WHERE emailaddress='$emailaddress' AND password='$password'");
$rows = mysql_num_rows($queryforlogin);
if($rows==1){
$_SESSION['login_user'] = mysql_query("SELECT firstname FROM users WHERE emailaddress='$emailaddress'");
$username = mysql_fetch_array($_SESSION['login_user']);
echo "Welcome, " . $username['firstname'] . "!";
}
else{
$error = "Email or password not found!";
echo $error;
}
mysql_close($connect);
}
?>如果我点击网页上的登录按钮,它会给我一个错误:电子邮件或密码找不到!(最后一个else-语句)。它执行文件中的代码,但不执行if($rows==1)下的代码。我还能做些什么来让这段代码正常工作吗?同样,这个代码在家里可以工作,但在学校不能在旧版本上工作。我问我的老师是否可以更新phpmyadmin,但是其他班级现在正在使用phpmyadmin,所以不能这样做。我希望你能理解我的问题。对不起,我的英语,这不是我的母语。
发布于 2016-02-21 18:48:31
您只需像这样尝试一次,即在mysql_query中传递mysql_connect连接变量,这样就可以获得行
<?php
$link = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("database", $link);
$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);
echo "$num_rows Rows\n";
?>发布于 2016-02-21 18:50:16
让我们做一些正确的事情,PHPmyadmin与mysql_num_rows无关,无论它返回什么,PHPmyadmin只是一个管理服务器所链接到的数据库的工具,所有的事情都发生在你的服务器端。
我认为您在学校数据库的表中没有相同的用户名和密码,因此mysql_num_rows()返回0,这是当查询没有产生任何结果时它应该做的事情,或者可能是您的查询返回超过1个结果,在这种情况下,条件将再次失败($rows==1)。
https://stackoverflow.com/questions/35535015
复制相似问题