php如果经过身份验证,则回显firstname

时间:2012-07-14 16:59:44

标签: php mysql

我编写了一个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";
}

如果您可以建议我更好地编写此代码,请告诉我。

3 个答案:

答案 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'sGDP's的代码答案。 (mysql_fetch_array)
如果你想显示很多结果,mysql_result就不好了,只有少数几个结果好。


顺便说一句,我想在您的代码中指出一些遗漏:

  • 您应该使用issetempty检查是否设置了$_POST$_GET个变量。

  • 你的代码太不安全了!在查询中使用它之前,您应该转义每个变量。请使用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'];