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
Và mình sai ở đây về việc gọi session
lock.php
welcome.php
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 đỡ
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>
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"); } ?>
Code:
<?php include_once($_SERVER["DOCUMENT_ROOT"] . "/demo/validation_form/lock.php"); ?> <body> <h1>Welcome <?php echo $login_session; ?></h1> </body>
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 đỡ
Bài liên quan
Bạn check kỹ lại cơ sở dữ liệu nhé.
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.