2016-07-07 228 views
-2

我正在创建一个用户登录/注册表单。我正在测试php登录表单。PHP测试功能

我使用函数user_exists来测试用户是否在数据库中找到用户名。每当我添加一个“if”语句来测试时,我收到一个错误,说明该页面无法处理我的请求。每当我删除I​​F语句时,页面显示都很好。

<?php 


function user_exists($username){ 

$query = mysql_query(" select count(user_id) From Users WHERE username = '$username' "); 

return (mysql_result($query) == 1) ? true : false; 

} 

if(user_exists('kwame') === true){ 
echo 'true'; 
} 

else { 
echo ' oh no!'; 
} 

?> 
+1

因此打开错误日志并检查错误。 –

+0

http://security.stackexchange.com/questions/128412/sql-injection-is-17-years-old-why-is-it-still-around –

+2

请勿使用'mysql',因为它已折旧并且会在PHP 7中不再支持。使用'mysqli'或'PDO'代替 – Confiqure

回答

1

你没有正确地调用您的功能 - 它寻找的用户名,并返回一个布尔

变化

if(user_exists($username) === 'kwame'){ 

if(user_exists('kwame')){ 
+0

在我输入的时候,您的问题是如何更改/编辑的?并没有指示它被编辑?我只是复制/粘贴你的问题 - 现在它不同了 – dbmitch

2

mysql_result将返回一个字符串不一个整数 使用mysql_num_rows代替

0

这里是()mysql_result的文档:

你可以看到它需要什么样的参数和它返回什么:

string mysql_result (resource $result , int $row); 

从MySQL中检索一个单元格的内容结果集。