首页 > 解决方案 > 如何将会话值发送到 PHP 中的 sql 查询中?

问题描述

当我将会话值发送到 sql 查询中时,它会发送一个 NULL 值。当我手动将值更改为$userMail="abc@gmail.com"而不是$userMail=$_SESSION['em']一切正常时。谢谢你帮助我:)

<?php
require_once("../php/db.php");

if(!isset($_SESSION['em'])) {
      $userMail = $_SESSION['em'];
  } 

$taskName = $_POST['taskName'];
$taskDate = $_POST['taskDate'];
$writerName = $_POST['writerName'];
$isDone = $_POST['isDone'];

$sql ="INSERT INTO `tasksToDo`( `taskName`, `taskDate`, `writerName` , `isDone`, `userMail`)
VALUES ('$taskName','$taskDate','$writerName','$isDone','$userMail')";
if ($conn->query($sql)===TRUE) {
    $last_id = $conn->insert_id;
    echo json_encode(array('success' => 1,"id"=>$last_id));
}else {
    echo json_encode(array('success' => 0));
}

$conn->close();

?>

标签: javascriptphpmysqlwebfrontend

解决方案


Tnx 到 CBroe 和 ADyson,解决方案是:

<?php session_start();
require_once("../php/db.php");
if(!isset($_SESSION['em'])){ // if the user is not logged in then don't enter the system
    header('Location: logIn.php');
    exit;
}
if(isset($_SESSION['em'])) {
    $userMail =$_SESSION['em'];

} 


$taskName = $_POST['taskName'];
$taskDate = $_POST['taskDate'];
$writerName = $_POST['writerName'];
$isDone = $_POST['isDone'];

$sql ="INSERT INTO `tasksToDo`( `taskName`, `taskDate`, `writerName` , `isDone`, `userMail`)
VALUES ('$taskName','$taskDate','$writerName','$isDone','$userMail')";
if ($conn->query($sql)===TRUE) {
    $last_id = $conn->insert_id;
    echo json_encode(array('success' => 1,"id"=>$last_id));
}else {
    echo json_encode(array('success' => 0));
}

$conn->close();

?>

推荐阅读