PHP会话变量试图在登录时将其设置为SQL数据库中的用户id
我试图将用户的会话id设置为数据库中相应的id。用户ID是SQL数据库中的一个简单的自动增量INT。用户使用其电子邮件和密码登录。会话启动后,我需要一个会话变量来存储该用户IDPHP会话变量试图在登录时将其设置为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(
$_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查询,结果很好。没有足够的代码支持这个问题