我想问一下如何在login.php中输入和写入会话?我希望我的应用程序可以知道我的应用程序中的当前帐户登录。我想使用session方法来实现我的登录php。因为用户登录后,用户将键入他们的数据,数据将发送到数据库,该用户输入的数据将仅显示在该用户帐户中。 这是我的Login.php
<?php
require_once '../includes/DbOperations.php';
$response = array();
if($_SERVER['REQUEST_METHOD']=='POST'){
if(isset($_POST['username']) and isset($_POST['password'])){
$db = new DbOperations();
if($db->userLogin($_POST['username'], $_POST['password'])){
$user = $db->getUserByUsername($_POST['username']);
$response['error'] = false;
$response['id'] = $user['id'];
$response['email'] = $user['email'];
$response['username'] = $user['username'];
}else{
$response['error'] = true;
$response['message'] = "Invalid username or password";
}
}else{
$response['error'] = true;
$response['message'] = "Required fields are missing";
}
}
echo json_encode($response);
?>
这是我的DbOperations.php
<?php
class DbOperations{
private $con;
function __construct(){
require_once dirname(__FILE__).'/DbConnect.php';
$db = new DbConnect();
$this->con = $db->connect();
}
/*CRUD -> C -> CREATE */
public function createUser($username, $pass, $email){
if($this->isUserExist($username,$email)){
return 0;
}else{
$password = md5($pass);
$stmt = $this->con->prepare("INSERT INTO `users` (`id`, `username`, `password`, `email`) VALUES (NULL, ?, ?, ?);");
$stmt->bind_param("sss",$username,$password,$email);
if($stmt->execute()){
return 1;
}else{
return 2;
}
}
}
public function userLogin($username, $pass){
$password = md5($pass);
$stmt = $this->con->prepare("SELECT id FROM users WHERE username = ? AND password = ?");
$stmt->bind_param("ss",$username,$password);
$stmt->execute();
$stmt->store_result();
return $stmt->num_rows > 0;
}
public function getUserByUsername($username){
$stmt = $this->con->prepare("SELECT * FROM users WHERE username = ?");
$stmt->bind_param("s",$username);
$stmt->execute();
return $stmt->get_result()->fetch_assoc();
}
private function isUserExist($username, $email){
$stmt = $this->con->prepare("SELECT id FROM users WHERE username = ? OR email = ?");
$stmt->bind_param("ss", $username, $email);
$stmt->execute();
$stmt->store_result();
return $stmt->num_rows > 0;
}
}
?>
答案 0 :(得分:0)
要在PHP中使用会话,首先需要使用session_start()启动会话。您应该在要使用会话的每个页面上执行此操作。
session_start();
会话开始后,您可以在其中存储变量,例如
if($db->userLogin($_POST['username'], $_POST['password'])){
$user = $db->getUserByUsername($_POST['username']);
$response['error'] = false;
$response['id'] = $user['id'];
$response['email'] = $user['email'];
$response['username'] = $user['username'];
$_SESSION['loggedin'] = true;
$_SESSION['userid'] = $user['id'];
}else{
$response['error'] = true;
$response['message'] = "Invalid username or password";
}
完成会话后想要销毁它,例如当用户退出时,您应该运行session_destroy()。
答案 1 :(得分:0)
session_start();
开始会话,$_SESSION['username'] = $user['username'];
设置会话中的变量,session_unset();
释放会话变量,session_destroy();
删除会话。