我想要实现的是当用户登录时,用户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();