Проверка php логина Проблема с Xampp - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь подтвердить вход на сайт с помощью php, запросив таблицу базы данных.Это создает ошибку при разборе сеанса в login.php.Сайт размещен на XAMPP.Это всего лишь пробный сайт.Это мой первый раз код на PHP, честно говоря, всего за неделю.

Я пытался изменить глобальные переменные $.Это потому, что xampp работает на MariaDB вместо sql, но это не имеет смысла, потому что это PHP и create_table

This is the login
<html form
<div class="loginbox">
<img src="images/log.png" class="log">
<h1> Login </h1>
<form  action="login.php" method="post">

<div class="name">
<label for ="name"> Username/E-mail:</label>
<input type="text" id="name" name="username" placeholder="Enter  
 Username/E-mail">    
</div>

<div class="password">
<label for="password"> Password:</label>
<input type="password" id="password" name="password" 
 placeholder="Enter Password">
</div>

<div>
<button type="submit"  >Login</button>
</div>
</form> 

</div>

And this is the table created for signup.
    $persontable= "CREATE TABLE IF NOT EXISTS users.Person(
    Userid                  INTEGER UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    Firstname               VARCHAR(20) NOT NULL,
    Lastname                VARCHAR(20) NOT NULL,
    Username                VARCHAR(30) NOT NULL,
    Email                   VARCHAR(30) NOT NULL,
    Password                VARCHAR(20) NOT NULL,
    Dateofbirth             DATE        NOT NULL,
    Address                 VARCHAR(50) NOT NULL,
    City                    VARCHAR(50) NOT NULL,
    Zipcode                 VARCHAR(20),)";

    if (!(mysqli_query($handler,$persontable))){
        die("Account has not been created successfully:". 
    mysqli_error($handler)); }
    else{echo "Account has been created succesfully"}

And this is the code of login<php
  <?php
  $servername = "127.0.0.1";
  $username = "root";
  $password = "";
  /** Define variable to perform connection to the server*/
  $handler = mysqli_connect($servername, $username, $password);

  $errors = array();
  session_start();
  /** To perform authentication of login with the database*/

  if(empty($_POST['username'])){
        $this->errors[] = "Username field was empty.";
  } elseif (empty($_POST['password'])) {
        $this->errors[] = "Password field was empty.";
  }
  elseif(isset($_POST['username']) && isset($_POST['password'])){   
   $user=$_POST['username'];  
   $pass=$_POST['password'];  

   $handler or die(mysqli_error());  
   mysqli_select_db($handler,'users') or die("Cannot select DB");  

   $query=mysqli_query($handler,"SELECT Username,Email,Password 
    FROM person WHERE username='".$user."' OR email='".$user."'");  
    $numrows = mysqli_num_rows($query);  
    /**The old code is stated below here
    if ($result_of_login_check->num_rows == 1)
     */
     /**The Problem Starts here*/
     if ($numrows ==1){  
     if (password_verify($_POST['password']) {
     // write user data into PHP SESSION (a file on your 
     server)
     /**The Problem Starts here*/
     $_SESSION['user_name'] = $result_row->user_name;
     $_SESSION['user_email'] = $result_row->user_email;
     $_SESSION['user_login_status'] = 1;
     } else {
     $query->errors[] = "Wrong password or username. Try again.";
     }
     } 
     } 
     ?>

1 Ответ

0 голосов
/ 25 июня 2019

<?php session_start(); ?> попробуйте это наверху login.php и убедитесь, что у вас есть стартовый сеанс на каждой странице

<?php session_start();?>
<?php
$servername = "127.0.0.1";
$username = "root";
$password = "";
/** Define variable to perform connection to the server*/
$handler = mysqli_connect($servername, $username, $password);
$errors = array();

/** To perform authentication of login with the database*/
if(empty($_POST['username'])){
$this->errors[] = "Username field was empty.";
} elseif (empty($_POST['password'])) {
$this->errors[] = "Password field was empty.";
}
elseif(isset($_POST['username']) && isset($_POST['password'])){
$user=$_POST['username'];
$pass=$_POST['password'];
$handler or die(mysqli_error());
mysqli_select_db($handler,'users') or die("Cannot select DB");
$query=mysqli_query($handler,"SELECT Username,Email,Password
FROM person WHERE username='".$user."' OR email='".$user."'");
$numrows = mysqli_num_rows($query);
/**The old code is stated below here
if ($result_of_login_check->num_rows == 1)
*/
/**The Problem Starts here*/
if ($numrows ==1){
if (password_verify($_POST['password']) {
// write user data into PHP SESSION (a file on your
server)
/**The Problem Starts here*/
$_SESSION['user_name'] = $result_row->user_name;
$_SESSION['user_email'] = $result_row->user_email;
$_SESSION['user_login_status'] = 1;
} else {
$query->errors[] = "Wrong password or username. Try again.";
}
}
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...