Php 无法使用会话变量登录
我有这段代码,我正试图创建一个会话以获取用户的库id 问题是,如果我使用$\u SESSION['username'],它可以工作,但像这样不行。。。你能检查一下这个有什么问题吗 谢谢Php 无法使用会话变量登录,php,mysql,Php,Mysql,我有这段代码,我正试图创建一个会话以获取用户的库id 问题是,如果我使用$\u SESSION['username'],它可以工作,但像这样不行。。。你能检查一下这个有什么问题吗 谢谢 mysql_connect($host, $user, $pass); mysql_select_db($database); $username = mysql_real_escape_string($_POST['username']); $password = md5($_POST['password'])
mysql_connect($host, $user, $pass);
mysql_select_db($database);
$username = mysql_real_escape_string($_POST['username']);
$password = md5($_POST['password']);
$result = mysql_query("SELECT * FROM $table WHERE username = '$username' AND password = '$password'
");
while ($rows = mysql_fetch_array($result)) {
if(mysql_num_rows($result))
{
$rows['gal_id']=$gal_id;
session_start();
$_SESSION['gal_id'] = htmlspecialchars($gal_id);
}
else
{
// Invalid username/password
echo '<p><strong>Error:</strong> Invalid username or password.</p>';
}
更改此项:
$rows['gal_id']=$gal_id;
到
编辑:我认为不需要进一步的解释$rows['gal\u id']=$gal\u id;不能通过此操作设置数据库行的值。此外,它从未被进一步引用
会议开始;在大多数情况下,这应该位于页面顶部
$\u会话['gal\u id']=htmlspecialchars$gal\u id$gal_id在代码中从未设置为任何值,它不存在。您确定在会话开始之前没有任何输出吗;因为那会使它停止。是的,当然。。在会话开始之前,我没有任何问题。问题标题说,使用$\u会话不允许您登录。问题内容说$\u会话确实有效,但$\u POST无效。你能澄清一下实际的问题是什么吗?嘿,好吧,问题是这样的:如果我使用$会话[username]而不是会话[gal\u id],它会工作。。现在可能有一个错误,但我不知道它是什么…不是答案,但md5被认为是不够安全的散列密码。此外,mysql_*函数也被弃用,取而代之的是mysqli_*或PDO嘿,谢谢,这使得登录成为可能。。。你能告诉我,为什么,当我进入页面时,我可以“检索$\u会话['gal\u id'],没有输出..你必须先启动会话才能访问会话变量:SESSION\u start;嘿,谢谢。。所以我需要的是获取用户的$gal_id,这就是为什么我要这样插入它。。你能建议我怎么做吗?。。谢谢看看@Imre L的答案。但是,为了将来使用,您应该使用phpmyadmin或类似的工具查看数据库,并查看列的名称。从那里你可以读到与他所说的相似的值。
$gal_id=$rows['gal_id'];