それは何ですか?学生のチームでは、必要なページに進むためにログインする必要のあるWebアプリケーションのWebサイトを作成しています。PHP/Msqli - Varは突然定義されていませんか?
このファイルの目的:connection.php
を使用してデータベースとの接続を確立します。そして、ユーザーがログインするために彼の資格情報を置くHTMLフォームindex.php
からデータを検索する。
vars $username
と$password
が設定された後、スクリプトはデータベースに資格情報があるかどうかを確認する必要があります。もしそうなら、次のページに進みます。
問題:
:最初に、今私は、次のNotice: Undefined variable: login_user in C:\xampp\htdocs\PAD-Academy\PHP\login.php on line 34
PHP
エラーが出る...それが働いたと私はこのエラーを取得できませんでしたが、突然それを改善しようとしているコードで遊んでた後、それが壊れます
私は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
私はそれを宣言しようとしましたが、エラーが続いています。 –
'$ login_user'の代わりに' $ username'を試してください。 –