$ _SESSION无效

时间:2015-12-29 13:27:31

标签: php session webserver

所以我不知道该怎么办。 我一直在尝试为我的网站创建一个注册/登录系统。经过大量的争论,我的注册现在有效,但我还无法登录。我很确定这是一个与$ _session相关的问题。

所以我有两个文件,一个名为get_users.php(我知道它的名字不好),另一个名为cart.php。他们两个都没有开头的空白。

我到底想要做什么?我想让我的会话出现在cart.php上。

get_users.php:

    <?php
$username = $_POST['username'];
$password = $_POST['password'];

$con = new mysqli("localhost","root","","ismsite");
$query = ("SELECT name, comment FROM comments ORDER BY id DESC");
$result = mysqli_query($con, $sql, MYSQLI_BOTH);
session_start();
$_SESSION["user_id"] = $row["user_id"];
header('Location: cart.php');
exit();
?>

并在cart.php的开头

<?php
session_start();
include 'config/config.php';
echo $_SESSION["user_id"];
?>

我真的在我的智慧结束。我搜索了这个网站,但我找不到解决问题的方法。谁知道问题是什么?

其他信息:     - 安装了最新的php     - 我在运行安装了LAMP堆栈的最新ubuntu客户端的虚拟网络服务器上运行它。    -Database工作得很好

提前致谢

编辑:

我将$row["user_id"];更改为$result["user_id"];

但它仍然没有出现

2 个答案:

答案 0 :(得分:1)

试试这个

        // Define $username and $password
        $username=$_POST['username'];
        $password=$_POST['password'];

        //for hashing passwords
        $username = stripslashes($username);
        $password = stripslashes($password);
        $username = mysqli_real_escape_string($db,$username);
        $password = mysqli_real_escape_string($db,$password);
        $password = md5($password);         
        //Check username and password from database
        $sql="SELECT userid FROM users WHERE username='$username' and   password='$password'";
        $result=mysqli_query($db,$sql) 
        or die("Error");


        $row=mysqli_fetch_array($result,MYSQLI_ASSOC);

        //If username and password exist in our database then create a session.
        //Otherwise echo error.

        if(mysqli_num_rows($result) == 1)
        {
            $_SESSION['username'] = $username; // Initializing Session

        }else
        {
            $error = "Incorrect username or password.";
        }

但是你必须根据你的表格结构进行调整。

答案 1 :(得分:-3)

可能未设置$ _SESSION [“user_id”]。你可以测试$ _SESSION数组 print_r($ _ SESSION)或print_r($ GLOBALS);