Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法使用会话变量登录_Php_Mysql - Fatal编程技术网

Php 无法使用会话变量登录

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'])

我有这段代码,我正试图创建一个会话以获取用户的库id

问题是,如果我使用$\u SESSION['username'],它可以工作,但像这样不行。。。你能检查一下这个有什么问题吗

谢谢

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'];