這是什麼?:通過一個學生團隊,我們正在爲一個Web應用程序創建一個網站,您需要登錄才能繼續所需的頁面。PHP/Msqli - Var突然未定義?
本文件的目標:使用connection.php
與數據庫建立連接。並從HTML表單index.php
中檢索數據,其中用戶將其憑據登錄。
設置了變量$username
和$password
後,腳本必須檢查數據庫是否在數據庫中,如果是,則繼續下一頁。
問題:首先,它的工作,我沒有得到這個錯誤,但與代碼試圖改善它,它打破了......玩了之後,現在突然我得到以下PHP
錯誤:
Notice: Undefined variable: login_user in C:\xampp\htdocs\PAD-Academy\PHP\login.php on line 34
我曾嘗試聲明該var,但沒有工作,我想我做了某事..某處..錯了,但我找不到它。在堆棧也有類似的帖子,我試圖用的是幫助解決它,但沒有工作了...
這是我下面的代碼: 文件名:login.php
<?php
session_start();
include("connection.php"); //Includes the connection file to get to the DB credentials.
$error = "" ; //Empty var to store errors.
if(isset($_POST["username"])){
if(empty($_POST["username"]) || empty($_POST["password"])){
header("location: ../index.php");
} else {
//Define var and inserts the data from the index.php form.
$username=$_POST['username'];
$password=$_POST['password'];
//protection agianst MYSQL injection (in adress link)
$username = stripslashes($username); //stripslashes deletes/
$password = stripslashes($password);
$username = mysqli_real_escape_string($db, $username); //escape string deletes strings.
$password = mysqli_real_escape_string($db, $password);
//$password = md5($password); //For future use when passwords are "encrypted" with md5.
//Check username and password from database.
$sql="SELECT idaccount FROM pad_db.account WHERE username='$username' AND password='$password';";
$result=mysqli_query($db,$sql);
$row=mysqli_fetch_array($result,MYSQLI_ASSOC);
//If username and password exist in the database then create a sessoin.
//otherwise echo error.
if(mysqli_num_rows($result) == 1) {
$_SESSION['username'] = $login_user; //Initializing Session
//header("location: ../studenthome.html"); //Redirecting To Other page.
//Insert rank check before header();.
} else {
$error = "Username or password incorrect!";
echo $error;
//header("location: ../index.php");
//Moet een error komen op login page, dit is even een tijdelijke oplossing.
}
}
}
//DATABASE TABLE:
// CREATE TABLE IF NOT EXISTS `pad_db`.`account` (
// `idaccount` INT(11) NOT NULL AUTO_INCREMENT COMMENT '',
// `username` VARCHAR(45) NOT NULL COMMENT '',
// `password` VARCHAR(45) NOT NULL COMMENT '',
// `rank` ENUM('TEACHER','STUDENT') NOT NULL COMMENT '',
// `fname` VARCHAR(45) NULL DEFAULT NULL COMMENT '',
// `mname` VARCHAR(45) NULL DEFAULT NULL COMMENT '',
// `lname` VARCHAR(45) NULL DEFAULT NULL COMMENT '',
// `email` VARCHAR(45) NULL DEFAULT NULL COMMENT '',
// PRIMARY KEY (`idaccount`) COMMENT '',
// UNIQUE INDEX `idaccount_UNIQUE` (`idaccount` ASC) COMMENT '',
// UNIQUE INDEX `username_UNIQUE` (`username` ASC) COMMENT '',
// UNIQUE INDEX `email_UNIQUE` (`email` ASC) COMMENT '')
// ENGINE = InnoDB
// AUTO_INCREMENT = 5
// DEFAULT CHARACTER SET = utf8;
?>
聲明的變量在哪裏? – aaronofleonard
我試過聲明它,但然後錯誤仍然存在.. –
嘗試'$ username'而不是'$ login_user'。 –