如何在使用php pdo mysql登录网站时将所有用户信息的用户配置文件进行dsiplay?
我在mysql phhmyadmin中创建了两个表。 1)reg_users 2)cam_details reg_users表需要电子邮件并传递一些唯一的ID也。 cam_details表需要相机相关的信息也有一个唯一的user_id。 但问题是当用户登录到我想要显示用户以前上传的cam_details信息的网站。 但我无法做到这一点。 我是新来的PHP。登录到网站后,有没有办法显示cam_info?如何在使用php pdo mysql登录网站时将所有用户信息的用户配置文件进行dsiplay?
我也使用过会话。
这是class.user.php文件 -
<?php
require_once 'dbconfig.php';
class USER
{
private $conn;
public function __construct()
{
$database = new Database();
$db = $database->dbConnection();
$this->conn = $db;
}
public function runQuery($sql)
{
$stmt = $this->conn->prepare($sql);
return $stmt;
}
public function lasdID()
{
$stmt = $this->conn->lastInsertId();
return $stmt;
}
public function register($email,$upass,$code)
{
try
{
$password = md5($upass);
$stmt = $this->conn->prepare("INSERT INTO reg_users(userEmail,userPass,tokenCode)
VALUES(:user_mail, :user_pass, :active_code)");
$stmt->bindparam(":user_mail",$email);
$stmt->bindparam(":user_pass",$password);
$stmt->bindparam(":active_code",$code);
$stmt->execute();
return $stmt;
}
catch(PDOException $ex)
{
echo $ex->getMessage();
}
}
public function login($email,$upass)
{
try
{
$stmt = $this->conn->prepare("SELECT * FROM reg_users WHERE userEmail=:email_id");
$stmt->execute(array(":email_id"=>$email));
$userRow=$stmt->fetch(PDO::FETCH_ASSOC);
if($stmt->rowCount() == 1)
{
if($userRow['userStatus']=="Y")
{
if($userRow['userPass']==md5($upass))
{
$_SESSION['userSession'] = $userRow['userID'];
return true;
}
else
{
header("Location: index.php?error");
exit;
}
}
else
{
header("Location: index.php?inactive");
exit;
}
}
else
{
header("Location: index.php?error");
exit;
}
}
catch(PDOException $ex)
{
echo $ex->getMessage();
}
}
public function is_logged_in()
{
if(isset($_SESSION['userSession']))
{
return true;
}
}
public function redirect($url)
{
header("Location: $url");
}
public function view_item($id){
try{
$stmt = $this->conn->prepare('SELECT user_id, user_name, mobile, cam_name, rent, model, cam_img, upd_date FROM cam_details WHERE user_id = :id');
$stmt->bindParam(':id', $id);
$stmt->execute();
return $stmt;
}
catch(PDOException $ex)
{
echo $ex->getMessage();
}
}
public function final_view()
{
try
{
$stmt = $this->conn->prepare('SELECT user_id, user_name, mobile, cam_name, rent, model, cam_img, upd_date FROM cam_details WHERE user_id= :id');
$stmt->bindParam(':id', $id);
$stmt->execute();
return $stmt;
}
catch(PDOException $ex)
{
echo $ex->getMessage();
}
}
public function getDetails()
{
try
{
$stmt = $this->conn->prepare('SELECT user_id, user_name, mobile, cam_name, rent, model, cam_img, upd_date FROM cam_details ORDER BY user_id DESC');
$stmt->execute();
return $stmt;
}
catch(PDOException $ex)
{
echo $ex->getMessage();
}
}
public function logout()
{
session_destroy();
$_SESSION['userSession'] = false;
}
}
<?php
class Database
{
private $host = "localhost";
private $db_name = "dslr_proj";
private $username = "root";
private $password = "";
public $conn;
public function dbConnection()
{
$this->conn = null;
try
{
$this->conn = new PDO("mysql:host=" . $this->host . ";dbname=" . $this->db_name, $this->username, $this->password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $exception)
{
echo "Connection error: " . $exception->getMessage();
}
return $this->conn;
}
}
?>
据我了解,您的登录函数返回true后,您重定向到个人资料页面。你可以使用你的会话从数据库中获取数据。你可以在登录后显示页面的脚本吗?
我在数据库中有两个表。如何从以前将数据上载到数据表的特定用户的cam_info表中检索数据 –
SELECT cd.user_id,cd.user_name,cd.mobile,cd.cam_name,cd.rent,cd.model,cd.cam_img,cd.upd_date ,ru。* FROM cam_details cd LEFT JOIN reg_users ru ON ru.userID = cd.user_id WHERE ru.userID =:id –
你可以显示你目前有什么代码? –
你想为用户显示什么确切的行? –
我想显示该特定用户以前上传的数据。 –