簡體   English   中英

如何檢索存儲在 session 中的 id?

[英]How to retrieve the id stored in a session?

我有一個允許您注冊和登錄的表格和一個允許您選擇日期和時間的預訂表格。 我希望能夠在“user_id”字段的“預訂”表中檢索用戶 ID。

我的數據庫如下所示:

我的數據庫

以及填寫我的預訂表的表格:

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

$mysqli = new mysqli('localhost', 'root', 'root', 'bookingcalendar');
if(isset($_GET['date'])){
    $date = $_GET['date'];
    $stmt = $mysqli->prepare("select * from bookings where date = ?");
    $stmt->bind_param('s', $date);
    $bookings = array();
    if($stmt->execute()){
        $result = $stmt->get_result();
        if($result->num_rows>0){
            while($row = $result->fetch_assoc()){
                $bookings[] = $row['timeslot'];
            }
            $stmt->close();
        }
    }
}

if(isset($_POST['submit'])){
    $name = $_POST['name'];
    $timeslot = $_POST['timeslot'];
    $adresse = $_POST['adresse'];
    $telephone = $_POST['telephone'];
    $ville = $_POST['ville'];
    $stmt = $mysqli->prepare("select * from bookings where date = ? AND timeslot = ?");
    $stmt->bind_param('ss', $date, $timeslot);
    if($stmt->execute()){
        $result = $stmt->get_result();
        if($result->num_rows>0){
            $msg = "<div class='alert alert-danger'>Cette horaire est déja réservé</div>";
        }else{
            $stmt = $mysqli->prepare("INSERT INTO bookings 
                            (name,user_id, timeslot, date, adresse, telephone,ville)
                    VALUES(?,?,?,?,?,?,?)");
            $stmt->bind_param('sDsssss', $name,$_SESSION['user_id'], $timeslot, 
                                        $date, $adresse, 
                                        $telephone, $ville);
            $stmt->execute();
            $msg = "<div class='alert alert-success'>*Merci d'avoir pris rendez-vous chez Génération Céline Coiff</div>";
            $bookings[]=$timeslot;
            $stmt->close();
            $mysqli->close();
        }
    }
}

在我的“成員”表中,ID 存儲如下:

<?php
session_start();
 
$bdd = new PDO('mysql:host=127.0.0.1;dbname=bookingcalendar', 'root', 'root');
 
if(isset($_POST['formconnexion'])) {
   $mailconnect = htmlspecialchars($_POST['mailconnect']);
   $mdpconnect = sha1($_POST['mdpconnect']); 
   if(!empty($mailconnect) AND !empty($mdpconnect)) {
      $requser = $bdd->prepare("SELECT * FROM membres WHERE mail = ? AND motdepasse = ?");
      $requser->execute(array($mailconnect, $mdpconnect));
      $userexist = $requser->rowCount();
      if($userexist == 1) {
         $userinfo = $requser->fetch();
         $_SESSION['user_id'] = $userinfo['user_id'];
         $_SESSION['pseudo'] = $userinfo['pseudo'];
         $_SESSION['mail'] = $userinfo['mail'];
         header("Location: index.php");

您還沒有編寫代碼來添加用戶 ID,那么它不會自動進入數據庫。

首先用這個session_start();

然后更改您的代碼,如下所示:

 $stmt = $mysqli->prepare
       ("INSERT INTO bookings (name, user_id, timeslot, date, adresse, telephone,ville)
        VALUES(?,?,?,?,?,?,?)");
 $stmt->bind_param('sdsssss', $name, $_SESSION['user_id'], $timeslot, $date, $adresse, $telephone, $ville);

在插入查詢中,我添加了 user_id 字段並在綁定語句中給出了它的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM