是否可以绑定参数会话变量



我想要实现的是当用户登录时,用户ID被保存为会话值,并且当登录用户选择日期时,产品将根据所选日期显示仅从该客户显示。

要确认这里有 2 个问题:1、如何在会话中保存用户ID?, 2、如何绑定参数会话ID?

这是我在代码方面所拥有的:

When user logs in:
    $_SESSION['customer_loggedin'] = $row['id']; 
THIS DOES NOT DISPLAY THE ID ON ROW?

当用户选择日期时,Ajax 将发送到:

session_start();
    include('db_config.php');
    $datepicker = $_POST['dateorderpicker'];
    $sql = "SELECT * FROM orders WHERE deliveryDate = ? AND cusomerId= ?"; 
    $stmt = $conn->prepare($sql);
    $stmt->bindParam(1, $datepicker, PDO::PARAM_STR);
    // HOW DO I BIND PARAM THE SESSION ID?
    $stmt->execute();
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC))
    {   
        ?>
            <div class="col-sm-4 col-md-4">
                <div class="content-boxes style-two top-column clearfix animated flipInY" style="opacity: 1;">
                <div class="content-boxes-text">
                    <h4><?php echo $row['itemName']; ?></h4>
                <img src="../wholesale/img/sourdough.jpg" class="img-reponsive">
                <p>Our best seller.  Full of flavour.</p>
                <form class="form-inline pull-right">
                <div class="form-group">
                <label class="sr-only" for="exampleInputAmount">Qty</label>
                <div class="input-group">
                <input type="number" class="form-control" id="exampleInputAmount" placeholder="<?php echo $row['qty']; ?>">
                </div>
                </div>
                <button type="submit" class="btn btn-primary">Update</button>
                </form>
                </div>
               </div>
              </div>
        <?php
    }

如果您需要任何其他信息,请随时询问。我还在学习,所以如果你看到不对的地方,请告诉我,这样我就可以更好地:)谢谢

    if($login && $password)
    {
        $sql = "SELECT * FROM customer WHERE (code=:code OR phone=:phone OR businessName=:businessName OR email=:email) AND password=:password";
        $stmt = $conn->prepare($sql);
        $stmt->bindValue(':code', $login, PDO::PARAM_STR);
        $stmt->bindValue(':phone', $login, PDO::PARAM_STR);
        $stmt->bindValue(':businessName', $login, PDO::PARAM_STR);
        $stmt->bindValue(':email', $login, PDO::PARAM_STR);
        $stmt->bindValue(':password', $password, PDO::PARAM_STR);
        $stmt->execute();
        $num = $stmt->fetchColumn();
        if($num > 0)
        {
        $_SESSION['customer_loggedin'] = $row['id'];
            header('location:order.php');
        }
        else{
            header('Location:index.php');
            $_SESSION['errmsg'] = 'Incorrect Login Details';
            die;
        }
    }
}  

如何在会话中保存用户 ID?

您只需要启动会话并像任何其他变量一样设置它,就像您在问题中一样。只需在它之前添加session_start()

session_start();
$_SESSION['customer_loggedin'] = $row['id'];

如何绑定参数会话 ID?

同样,这就像绑定任何其他参数一样。调用session_start()所有先前设置的会话变量都将放入$_SESSION数组中。

$stmt->bindParam(2, $_SESSION['customer_loggedin'], PDO::PARAM_INT);

您将会话变量分配给一个变量,将其绑定:-

 $row_id=$_SESSION['customer_loggedin'];
 $sql = "SELECT * FROM orders WHERE deliveryDate = ? AND cusomerId= ?"; 
 $stmt = $conn->prepare($sql);
 $stmt->bindParam(1, $datepicker, PDO::PARAM_STR);
 $sth->bindValue(2, $row_id, PDO::PARAM_STR);
 $stmt->execute();

最新更新