PHP选择登录用户,不工作
我无法在代码中获取登录用户,请您帮助我解决此问题: 不工作的代码:PHP选择登录用户,不工作,php,mysql,login,Php,Mysql,Login,我无法在代码中获取登录用户,请您帮助我解决此问题: 不工作的代码: $result = mysql_query("SELECT * FROM clients WHERE user = '$_SESSION['user']['username']'") or die(mysql_error()); 但它是为了展示它的思想,在这里: echo htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8'
$result = mysql_query("SELECT * FROM clients WHERE user = '$_SESSION['user']['username']'")
or die(mysql_error());
但它是为了展示它的思想,在这里:
echo htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8');
提前感谢您的帮助。您可以试试这个,请避免再使用mysql函数,这不是一个防黑客的代码。来吧
$user = htmlentities($_SESSION['user']['username'], ENT_QUOTES, 'UTF-8');
mysql_query("SELECT * FROM clients WHERE user = '".$user."'")
or die(mysql_error());
有两种解决方案。第一个是定义一个新变量来包含
$\u SESSION['user']['username']
值,第二个是将$\u SESSION['user']['username']
括在大括号中(有关详细信息,请参阅)
解决方案1
$username = $_SESSION['user']['username'];
mysql_query("SELECT * FROM clients WHERE user = '$username'")
or die(mysql_error());
解决方案2
mysql_query("SELECT * FROM clients WHERE user = '{$_SESSION['user']['username']}'")
or die(mysql_error());
除此之外,如果只访问数组的顶层(例如,$\u SESSION['username']
而不是$\u SESSION['user']['username']
),只需删除键名周围的引号即可:
mysql_query("SELECT * FROM clients WHERE user = '$_SESSION[username]'")
or die(mysql_error());
但是,值得指出的是,您的代码容易受到攻击。你应该考虑使用或准备好的语句。不要再使用mysql函数了。什么“不起作用”?有什么问题吗?会发生什么?您是否看到任何错误?请尝试
“从用户={$\u会话['user']['username']}'”
所在的客户端选择*。请参阅:请不要再使用mysql.*
函数: