我编写了一个PHP脚本,用于通过电子邮件和密码进行身份验证,因为电子邮件被标识为唯一。
我想回显“true”以及echo :: fname(First Name)。我怎么写呢?以下是我的PHP代码。
include "db_config.php";
$email = $_POST['email'];
$password = $_POST['password'];
$sql = "select fname,e_mail,password from user where e_mail = '$email' and pwd = '$password' ";
$result = mysql_query($sql);
if (mysql_num_rows($result) > 0){
echo "true";
}
else{
echo "Login Failed";
}
如果您可以建议我更好地编写此代码,请告诉我。
答案 0 :(得分:2)
考虑关于mysql_ *和mysql_real_escape_string的评论,但是在得到结果之后,你会像这样回应它,adapted from the manual:
$result = mysql_query($sql);
if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}
$row = mysql_fetch_assoc($result);
echo "true" . $row['fname'];
答案 1 :(得分:1)
if (mysql_num_rows($result) > 0)
{
echo mysql_result($result, 0);
}
- 或 -
来自Sankalp's或GDP's的代码答案。 (mysql_fetch_array)
如果你想显示很多结果,mysql_result
就不好了,只有少数几个结果好。
你的代码太不安全了!在查询中使用它之前,您应该转义每个变量。请使用mysql_real_escape_string()
。我还建议您使用strip_tags()
以及转义。
检查变量是否已设置的示例:
使用isset()
:
if(isset($_POST['email'])) $email = $_POST['email'];
if(isset($_POST['password'])) $password = $_POST['password'];
使用empty()
:
if(!empty($_POST['email'])) $email = $_POST['email'];
if(!empty($_POST['password'])) $password = $_POST['password'];
答案 2 :(得分:0)
$row = mysql_fetch_array($result, MYSQL_NUM)
echo $row[0]; //fname
echo $row[1]; //email
或者您可以使用MYSQL_ASSOC获取命名数组并将值作为
访问echo $row['fname'];