10/10/2018, 13:22

Lỗi về Session mong mọi người giúp đỡ.

Hiện nay mình đang làm một form login bằng PDO nhưng quá gà nên gặp lỗi về session mong mọi người bỏ chút thời gian sửa lỗi dùm mình
login .php
Code:
<?php 
try {
	$pdo = new PDO('mysql:host=localhost; dbname=ijdb','root',');
	$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
	$pdo->exec('SET NAME "utf8"');
} catch (Exception $e) {
	$error = 'Unable connect BD'. 
	$e->getMessage();
	include 'error.html.php';
	exit();
}

session_start();
	if($_SERVER["REQUEST_METHOD"] == "POST"){
	//Username & Pass sent from Form
	$username = $_POST['username'];
	$password = $_POST['password'];


	$sql = "SELECT * FROM admin WHERE username=:user AND passcode=:password";
	$s = $pdo->prepare($sql);
	$s->bindValue(':user', $username, PDO::PARAM_STR);
    $s->bindValue(':password', $password, PDO::PARAM_STR);
	$s-> execute();
	$row = $s->fetchAll();
	$row = count($row); 
	
	if ($row == 1) {
		session_register("username");
		$_SESSION['login_user'] == $username;

		header("location: welcome.php");	
	}else{
		$error = "Your login name of Password invaild";
	}

}
?>

<html>
<head>
	<title></title>
</head>
<body>
<form action="" method="post">
<label>UserName:</label>
<input type="text" name="username"><br>
<label>Password:</label>
<input type="password" name="password"><br>
<input type="submit" value=" Send"><br>
</form>
</body>
</html>
Và mình sai ở đây về việc gọi session
lock.php
Code:
<?php 

include ($_SERVER["DOCUMENT_ROOT"] . "/demo/validation_form/login.php");

	$user_check = $_SESSION['login_user'];

	$ses_sql = $pdo->query("SELECT usename FROM admin WHERE username ='$user_check' ");
    $existuser = $ses_sql->fetch();
	$login_session = $row['username'];

	if (!isset($login_session)) {
		header("Location: login.php");
	}
 ?>
welcome.php
Code:
<?php
include_once($_SERVER["DOCUMENT_ROOT"] . "/demo/validation_form/lock.php");
?>
<body>
<h1>Welcome <?php echo $login_session; ?></h1>
</body>
Sau khi đánh đúng username và pass thì báo
Notice: Undefined index: login_user in C:xampphtdocsdemovalidation_formlock.php on line 5

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'usename' in 'field list' in C:xampphtdocsdemovalidation_formlock.php:7 Stack trace: #0 C:xampphtdocsdemovalidation_formlock.php(7): PDO->query('SELECT usename ...') #1 C:xampphtdocsdemovalidation_formwelcome.php(2 ): include_once('C:xampphtdocs...') #2 {main} thrown in C:xampphtdocsdemovalidation_formlock.php on line 7

Mong mọi người giúp đỡ
funky viết 15:25 ngày 10/10/2018
Chưa biết có giúp được bạn không nhưng trước mắt nó báo lỗi thế nào và hiện tượng ra sao ? bạn phải nêu lên để mọi người biết chứ !
devil0604 viết 15:25 ngày 10/10/2018
Mình chưa copy code này về xem sai ở đâu, nhưng đọc dòng thông báo thì thấy thông báo đây là ở trong bảng database của bạn, không có field usename (thiếu chữ "r").
Bạn check kỹ lại cơ sở dữ liệu nhé.
Vô Thin viết 15:28 ngày 10/10/2018
Mới chỉ đọc lượt đoạn code đầu thấy:

Code:
session_register("username");
		$_SESSION['login_user'] == $username;
Và đọc thêm một đoạn code bên dưới thấy:

Code:
$user_check = $_SESSION['login_user'];
Vậy xin hỏi bạn là biến session để bạn lưu tình trạng user đã login hay chưa là biến tên gì? (theo ý bạn hiểu đó. Tại sao vừa có session_register("username"); lại vừa có $_SESSION['login_user'] == $username; <= hai thằng này bà con gì với nhau?

Và câu này $_SESSION['login_user'] == $username; nó có nghĩa gì khi bạn gán bằng hai dấu == nghe như là kiểm tra biểu thức bool trong mệnh đề if?

Kết quả, theo mình nghĩ session thì tạo ra một đàng, kiểm tra một nẻo hoặc chưa tạo được session thì không có cách chi kiểm tra được.
dokhacluan viết 15:30 ngày 10/10/2018
Được gửi bởi devil0604
Mình chưa copy code này về xem sai ở đâu, nhưng đọc dòng thông báo thì thấy thông báo đây là ở trong bảng database của bạn, không có field usename (thiếu chữ "r").
Bạn check kỹ lại cơ sở dữ liệu nhé.
câu truy vấn này hình như bị sai

SELECT usename FROM admin WHERE username ='$user_check'
usename != username
anhduy89bmt viết 15:32 ngày 10/10/2018
Nhờ mọi người giúp đỡ mình đã fix xong lỗi này rùi thành thật cám ơn mọi ngừoi
Bài liên quan
0