Php 如何从mysql中提取登录的用户id

Php 如何从mysql中提取登录的用户id,php,mysql,Php,Mysql,我试图从users表中提取用户id,但它不起作用 登录功能: function login($user, $password) { $user = strip_tags(mysql_real_escape_string($user)); $password = strip_tags(mysql_real_escape_string($password)); $password = md5($password); $sql = "SELECT * FROM users WHERE user =

我试图从users表中提取用户id,但它不起作用

登录功能:

function login($user, $password) {
$user = strip_tags(mysql_real_escape_string($user));
$password = strip_tags(mysql_real_escape_string($password));

$password = md5($password);

$sql = "SELECT * FROM users WHERE user = '$user' AND password = '$password'";
$result = mysql_query($sql) or die('Error. ' . mysql_error());


if (mysql_num_rows($result) == 1)
{
    $_SESSION['access']=true;
    $_SESSION["user"] = $user;
    $_SESSION["password"] = $password; 
    $_SESSION["id"] = $id;
    header('Location: '.DIR.'admin.php');
    exit;
}
else
{
    //error
    $_SESSION['error'] = 'Wrong name or password.';
}
}
现在,当我登录时,我试图用echo'Username.$user'在admin.php上发布这些信息编号:‘.$ID’;它不显示。

您应该换行

if (mysql_num_rows($rezultat) == 1)
进入


但您确实应该考虑使用准备好的语句的PDO来防止SQL注入或至少mySQLI函数(MySQL现在被弃用)< /P> < P>查询是错误的,正确到:

$sql = "SELECT * FROM users WHERE user = '" . $user . "' AND password = '" . $password . "'";

可能您没有名为“$user”的用户。注意引号。

你能发布
admin.php
code吗?使用PDO。它有更多的标签。请不要使用
strip\u tags()
。用户应该能够使用
而不存储纯文本密码,她不这样做。他使用md5,但当然这也不是最好的方法。他没有做到这一点:(当然,md5几乎是坏的事实上,查询是正确的。PHP用其内容替换双引号字符串中的变量。即使变量在双引号中,但被单引号包围?是的。单引号是字符串中的文字单引号,不影响变量替换。HUmmm,interest.B当我们关心代码的可读性时,使用UTIMHO是很奇怪的。
$sql = "SELECT * FROM users WHERE user = '" . $user . "' AND password = '" . $password . "'";