PHP会话变量试图在登录时将其设置为SQL数据库中的用户id

PHP会话变量试图在登录时将其设置为SQL数据库中的用户id,php,html,sql,Php,Html,Sql,我试图将用户的会话id设置为数据库中相应的id。用户ID是SQL数据库中的一个简单的自动增量INT。用户使用其电子邮件和密码登录。会话启动后,我需要一个会话变量来存储该用户ID $_SESSION['user_id'] = $user_id; 我将会话用户id设置为另一个php文件中的变量的代码如下: $user_of_id = $_SESSION['user_id']; 当我在php脚本中尝试将$user\u of_id插入数据库的另一个表时,它不起作用。我有session_start(

我试图将用户的会话id设置为数据库中相应的id。用户ID是SQL数据库中的一个简单的自动增量INT。用户使用其电子邮件和密码登录。会话启动后,我需要一个会话变量来存储该用户ID

$_SESSION['user_id'] =  $user_id;
我将会话用户id设置为另一个php文件中的变量的代码如下:

$user_of_id = $_SESSION['user_id'];
当我在php脚本中尝试将$user\u of_id插入数据库的另一个表时,它不起作用。我有session_start();在所有必要的php文件中。我希望有人能指出我的错误

用户登录php的完整代码如下所示:

<?php
 session_start();

$db =mysqli_connect("localhost", "root", "", "project_website1");

if(isset($_POST['Login_Btn']))  {


    $email = mysql_real_escape_string($_POST['email']);
    $password = mysql_real_escape_string($_POST['password']);

    $password = md5($password);// Decrypt hash of password stored in database

    $mySQLQuery = "SELECT * FROM userdetails WHERE email='$email' AND password='$password'";
    $resultOfQuery = mysqli_query($db, $mySQLQuery);

    if (mysqli_num_rows($resultOfQuery) == 1) {

        $_SESSION['user_id'] =  $user_id;
        header("location: User_Home_Page.html");
    }else{          
        $_SESSION['message'] = "Login Fail";

    }




}
 ?>

上载我的文档的php如下所示:

<?php
session_start();
$db =mysqli_connect("localhost", "root", "", "project_website1");
if(isset($_POST['upload_btn'])){

    $user_id = $_SESSION['user_id'];
    $taskTitle = mysql_real_escape_string($_POST['tasktitle']);
    $taskDescription = mysql_real_escape_string($_POST['TaskDescription']);
    $numPages = mysql_real_escape_string($_POST['number_of_pages']);

    $file = rand(1000,100000)."-".$_FILES['file_document']['name'];
    $file_loc = $_FILES['file_document']['tmp_name'];
    $file_size = $_FILES['file_document']['size'];
    $file_type = $_FILES['file_document']['type'];
    $folder="uploads/";

    move_uploaded_file($file_loc,$folder.$file);

    $numWords = mysql_real_escape_string($_POST['number_of_words']);
    $deadlineClaim = mysql_real_escape_string($_POST['deadline_claim']);
    $deadlineComplete = mysql_real_escape_string($_POST['deadline_complete']);

    $sql = "INSERT INTO task(user_id, title, description, file, file_type, file_size, pg_num, num_words, deadline_claim, deadline_completion) VALUES( '$user_id', '$taskTitle', '$taskDescription', '$file', '$file_type', '$file_size', '$numPages', '$numWords', '$deadlineClaim', '$deadlineComplete')";
    mysqli_query($db, $sql);
    header("location: User_Home_Page.html");

}

?>

编辑:在我用完整代码回答之后,问题已更新。也许这个答案需要修改

如果您使用的是
session_start()正确(在文档开头),您的代码很好

file1.php应该是:

<?php    
session_start();
$user_id = 5;
$_SESSION['user_id'] =  $user_id;
<?php    
session_start();
$user_of_id = $_SESSION['user_id'];
echo 'User-ID: '.$user_of_id; //User-ID: 5

在插入之前是否检查了id的
$user\u的值?什么是“不工作”?您是否有错误?为什么用户Id是数字而不是电子邮件地址或用户名?觉得奇怪。。。通常情况下,您将sessionID存储在userIDI旁边。我正在尝试使用当前登录的用户id将文件上载到数据库中的一个表中。由于某些原因,表单发送时没有错误,但不会进入数据库。我已经测试了我的代码,这与用户的会话id有关。我还检查了我的SQL查询,结果很好。没有足够的代码支持这个问题