我一直在嘗試獲取登錄人user_id
這是user_login
我的數據庫中的表,並將其插入到另一個表。 我知道的是,使用查詢從user_login
獲得user_id
,並將該查詢分配給SESSION變量,並將該變量放在另一個查詢中,我想將其插入表中,但我無法爲其編寫完美的代碼我唯一能做的就是將user_id
作爲1添加到新表格中。如果您可以查看我的代碼,那將會非常有幫助。如何從數據庫獲取登錄用戶user_id並將其插入到另一個表中?
<?php
ob_start();
include ('header.php');
require('includes/connect.php');
require('includes/product.php');
$product = new Product;
if(isset ($_GET['id'])) {
$id = $_GET['id'];
$data = $product -> fetch_data($id);
if(isset($_POST['add'])){
if (isset($_SESSION['logged_in'])) {
$query = $pdo->prepare("SELECT user_id FROM user_login ");
$user_id=$query->execute();
$_SESSION['user_id']['id']=$user_id;
$query = $pdo -> prepare("INSERT INTO cart_items(product_id , user_id, Price) VALUES (?,?,?)");
$query -> bindValue(1, $id);
$query -> bindValue(2, $_SESSION['user_id']['id']);
$query -> bindValue(3, $data['new_price']);
$query ->execute();
header('location:cart.php');
}
else{
header('location:Login Page.php');
}
}
?>
這就是我所做的用戶驗證在登錄時(connect.php)
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "ecom";
try{
$pdo = new PDO('mysql:host=localhost;dbname=ecom','root','');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e){
exit('Database error.');
}
function login(){
global $pdo;
$username = $_POST['email'];
$password = md5($_POST['password']);
if(empty($username) or empty($password))
{
$error = "Please fill all the fields";
}
else
{
$query = $pdo->prepare("SELECT * FROM user_login WHERE name = ? AND password = ? ");
$query->bindValue (1, $username);
$query->bindValue (2, $password);
$query->execute();
$num=$query->rowCount();
if($num==1) {
$_SESSION['logged_in']= true;
//header('location :' .$_SESSION['redirectURL']);
header('location: index.php');
exit();
}
else{
$error = "Please enter correct Username and Password";
}
}
}
?>
預先感謝您。
用$ _SESSION跟蹤,一個插入,也許一個選擇查詢.... – ArtisticPhoenix
您應該添加替換你的其他部分當用戶登錄時將用戶標識添加到您的會話變量中。這是沒有意義的,因爲您正在檢索所有用戶,而'execute()'返回一個布爾值。 – jeroen
@ jeroen你可以讓我知道如何做到這一點。我還在登錄時添加了用戶驗證代碼。 –