php mysql用户登录显示用户存在

php mysql用户登录显示用户存在,php,mysql,forms,login,phpmyadmin,Php,Mysql,Forms,Login,Phpmyadmin,我正在学习一个关于在php和mysql中创建用户注册和登录表单的视频教程 下面的脚本应该在login.php表单上回显“exists”,但是只显示一个空白(表示用户不存在,而实际上它是数据库中唯一的用户名) 我是否缺少一些语法或明显的东西??这里有一个指向视频教程的链接,如果它有帮助的话,为什么不这样做呢 <?php function user_exists($username) { $username = sanitize($username); $query = mysql_query

我正在学习一个关于在php和mysql中创建用户注册和登录表单的视频教程

下面的脚本应该在login.php表单上回显“exists”,但是只显示一个空白(表示用户不存在,而实际上它是数据库中唯一的用户名)

我是否缺少一些语法或明显的东西??这里有一个指向视频教程的链接,如果它有帮助的话,为什么不这样做呢

<?php
function user_exists($username) {
$username = sanitize($username);
$query = mysql_query("SELECT * FROM `users` WHERE `username` = '$username'"); 
$exists = mysql_num_rows($query) == 1 ? 1 :0;

return $exists; 
}
?>

如果您有一个空白屏幕,可以添加echo语句来查看发生了什么

function user_exists($username) {        echo '|Input Username=$username ';
  $username = sanitize($username);       echo '|Sanitized=$username ';
  $query = mysql_query("SELECT * FROM `users` WHERE `username` = '$username'"); 
                                         echo '|output any mysql_error '.mysql_error();
  $numberOfRows = mysql_num_rows($query); echo '|Number of Rows=$numberOfRows ';
  $hasRows = ($numberOfRows > 0);         echo '|Has rows=$hasRows ';
  //used explicit parentheses around logic for clarity...and again next line
  $exists = ($hasRows) ? 1 :0;
  //or just do this...
  $exists = $hasRows;
  return $exists;     
}

你的操作系统是什么?你的空白屏幕上有任何信息吗?可能您没有打开数据库连接。您的页面上还有其他代码吗?这一系列教程包含很多错误的做法:从使用不推荐的函数(如mysql_query)到使用md5进行密码哈希的易受攻击的概念,等等。如果你想把它做好,那么我建议你读一本好书。如果你在mysql工具中运行查询,而不是用php在web上运行,会发生什么?。它们不再得到维护。看到了吗?相反,学习,并使用or-将帮助您决定哪一个。如果你选择PDO,@tereško有趣的是,你应该这么说。您为OP提供的教程的链接也是
mysql\uuu
,而不是
mysqli
,那么为什么要将OP保持在同一轨道上呢?;)我明白你的意思了,但我认为这个想法是用第二页上的第二个脚本测试DB连接和功能。这就是登录页上的echo'exists'语句的目的,这就是空白的屏幕。需要返回true,上面的目的是找出为什么它不存在。另一个想法是使用==代替===即“标识”。true为本机,user_exists()为对象。它们可能都是真的,但只有真的。啊,对不起,我现在明白你的意思了,我要试试看!如果这不起作用,我将不得不交换教程,似乎没有办法绕过它!你成功做到了吗?在视频中,他从用户_exists()返回一个不同于整数1或0的布尔值。对于1===true,这将是false,因为类型不匹配。
<?php
function user_exists($username) {
$username = sanitize($username);
$query = mysql_query("SELECT * FROM `users` WHERE `username` = '$username'"); 
$exists = mysql_num_rows($query) == 1 ? 1 :0;

return $exists; 
}
?>
function user_exists($username) {        echo '|Input Username=$username ';
  $username = sanitize($username);       echo '|Sanitized=$username ';
  $query = mysql_query("SELECT * FROM `users` WHERE `username` = '$username'"); 
                                         echo '|output any mysql_error '.mysql_error();
  $numberOfRows = mysql_num_rows($query); echo '|Number of Rows=$numberOfRows ';
  $hasRows = ($numberOfRows > 0);         echo '|Has rows=$hasRows ';
  //used explicit parentheses around logic for clarity...and again next line
  $exists = ($hasRows) ? 1 :0;
  //or just do this...
  $exists = $hasRows;
  return $exists;     
}