在PHP中启动多个会话

在PHP中启动多个会话,php,Php,当用户登录时,我尝试启动3个会话。 但是唯一正在启动的会话是$email=$\u POST['email'] 这是我的代码。 if(isset($_POST['log'])) // code to be executed when login button is clicked { $email=$_POST['email']; $password=$_POST['Password']; $query= "SELECT * FROM student WHER

当用户登录时,我尝试启动3个会话。
但是唯一正在启动的会话是
$email=$\u POST['email']

这是我的代码。

if(isset($_POST['log'])) // code to be executed when login button is clicked
{
    $email=$_POST['email'];
    $password=$_POST['Password'];

    $query= "SELECT * FROM student 
    WHERE EmailAddress = '$email' AND Password = '$password'";

    $query_run = mysqli_query($con,$query);
    if(mysqli_num_rows($query_run)>0)
    {
        //checks the database where this user exist or not

        $_SESSION['email']=$email;
        $_SESSION['StudentID']=$student;
        $_SESSION['OfferingID']=$Offering;


        header('location: profile.php'); //
    }
    else
    {
        echo '<script type = "text/javascript"> alert("Invalid Credentials or Not yet registered!") </script>';
    }
}
if(isset($\u POST['log'])//单击登录按钮时要执行的代码
{
$email=$_POST['email'];
$password=$_POST['password'];
$query=“从学生中选择*
其中EmailAddress='$email'和Password='$Password';
$query\u run=mysqli\u query($con,$query);
如果(mysqli\u num\u行($query\u run)>0)
{
//检查此用户是否存在的数据库
$\会话['email']=$email;
$\u会话['StudentID]=$student;
$\会话['OfferingID]=$Offering;
标题('location:profile.php')//
}
其他的
{
回显“警报(“无效凭据或尚未注册!”);
}
}

假设studentID和产品来自数据库记录,则需要从获取的记录中获取数据并提取这些字段

类似于

    $student = mysqli_fetch_assoc($query_run);
    $_SESSION['email']=$email;
    $_SESSION['StudentID']=$student['studentID'];
    $_SESSION['OfferingID']=$student['OfferingID'];

首先在您的代码中获得$student和$providing内部条件,如下所示

if(isset($_POST['log'])) // code to be executed when login button is clicked
{
    $email=$_POST['email'];
    $password=$_POST['Password'];

    $query= "SELECT * FROM student 
    WHERE EmailAddress = '$email' AND Password = '$password'";

    $query_run = mysqli_query($con,$query);
    if(mysqli_num_rows($query_run)>0)
    {
        //fetch array and get values for studentid and offeringid
        $student = mysqli_fetch_assoc($query_run);
    $_SESSION['email']=$email;
    $_SESSION['StudentID']=$student['studentID'];
    $_SESSION['OfferingID']=$student['OfferingID'];


        header('location: profile.php'); //
    }
    else
    {
        echo '<script type = "text/javascript"> alert("Invalid Credentials or Not yet registered!") </script>';
    }
}
if(isset($\u POST['log'])//单击登录按钮时要执行的代码
{
$email=$_POST['email'];
$password=$_POST['password'];
$query=“从学生中选择*
其中EmailAddress='$email'和Password='$Password';
$query\u run=mysqli\u query($con,$query);
如果(mysqli\u num\u行($query\u run)>0)
{
//获取数组并获取studentid和offeringid的值
$student=mysqli\u fetch\u assoc($query\u run);
$\会话['email']=$email;
$_SESSION['StudentID']=$student['StudentID'];
$\会话['OfferingID']=$student['OfferingID'];
标题('location:profile.php')//
}
其他的
{
回显“警报(“无效凭据或尚未注册!”);
}
}
这里我再次设置了check

会话启动();
session_start();

if(isset($_POST['log']))
{
    $email=$_POST['email'];
    $password=$_POST['Password'];

    $query= "SELECT * FROM student WHERE EmailAddress = '$email' AND Password = '$password'";

    $query_run = mysqli_query($con,$query);
    if(mysqli_num_rows($query_run)>0)
    {
        $fetch_student_data = mysqli_fetch_assoc($query_run);
        $select_offer_id = mysqli_query($con,"SELECT * FROM Participants where studentID=".$fetch_student_data['StudentID']);
        $fetch_offer_id = mysqli_fetch_assoc($select_offer_id);

        $_SESSION['email']=$email;
        $_SESSION['StudentID']=$fetch_student_data['StudentID'];
        $_SESSION['OfferingID']=$fetch_offer_id['OfferingID'];

        header('location: profile.php'); //
    }
    else
    {
        echo '<script type = "text/javascript"> alert("Invalid Credentials or Not yet registered!") </script>';
    }
}
如果(isset($_POST['log'])) { $email=$_POST['email']; $password=$_POST['password']; $query=“从学生中选择*,其中EmailAddress='$email'和Password='$Password'; $query\u run=mysqli\u query($con,$query); 如果(mysqli\u num\u行($query\u run)>0) { $fetch\u student\u data=mysqli\u fetch\u assoc($query\u run); $select_offer_id=mysqli_query($con,“select*FROM Participants where studentID=“.$fetch_student_data['studentID'); $fetch\u offer\u id=mysqli\u fetch\u assoc($select\u offer\u id); $\会话['email']=$email; $_SESSION['StudentID']=$fetch_student_data['StudentID']; $\u会话['OfferingID']=$fetch\u OfferingID['OfferingID']; 标题('location:profile.php')// } 其他的 { 回显“警报(“无效凭据或尚未注册!”); } }
我已经编辑了我的答案。
只需检查字段和表名是否正确。
其余代码已设置

快乐编码…

你所说的开始是什么意思?您是否启动了会话(
session\u start()
)?而且
$email=$\u POST['email']
不是
$\u会话的一部分
首先定义$student和$offering变量…我看不到
$student
$offering
是initialized@Swellar这就是我要说的…对不起…是的,我确实启动了会话…问题是,即使我有
session start()
…但当我使用
print\r函数时,
…它只打印
$\u session['email']=$email但不是其他。我可以将此插入
isset函数中吗
?这是可以纠正的$student=mysqli\u fetch\u assoc($query\u run)$_会话['email']=$email$_会话['StudentID']=$student['StudentID']$_会话['OfferingID']=$student['OfferingID'];