2016-06-01 3 views
0
<?php 
    require_once("!cache.php"); 
    $connection = mysqli_connect ('localhost', 'twa137', 'twa137hu',  'westernhotel137'); 

    if(!$connection) { 
     die("connection failed: " . mysqli_connect_error()); 
    } 

    $username=""; 
    $password=""; 
    $usmg=""; 
    $pasmg=""; 
    $logincorrect = ""; 

    if (isset($_POST["submit"])) { 
     // Here we only validate that username and password are not empty. 

     $username = $_POST["username"]; 
     if (empty($username)) $usmg = '<span class="error"> This field is mandatory. Please enter staff ID.</span>'; 

     $password = $_POST["password"]; 
     if (empty($password)) $pasmg = '<span class="error"> This field is mandatory. Please enter password.</span>'; 

     if (strlen($usmg)==0 && strlen($pasmg)==0) { 
      // sanitize them before passing to database 
      $username = mysqli_real_escape_string($connection, $username); 
      $password = mysqli_real_escape_string($connection, $password); 
      $sql = "select username, password from customers where username = '$username' and password = '$password'"; 
      $rs = mysqli_query($connection, $sql) 
       or die("Error when looking up username and password" . mysqli_error($connection)); 

      if (mysqli_num_rows($rs) > 0) { 
       // username and password correct 
       session_start(); 
       $_SESSION["who1"] = $username; 

       $_SESSION["password"] = $password; 
       mysqli_close($connection); 
       $logincorrect = true; 

       header("location: browse.php"); 
      } 

      mysqli_close($connection); 
     } 
    } 
?> 

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8"> 
     <title>Login</title> 
     <style type="text/css"> 
      input[type="text"] { 
       border: 2px solid black; 
      } 
      .error { 
       color:red; 
      } 
     </style> 
    </head> 
    <body> 
     <h2>Login page </h2> 

     <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post"> 
      <p> 
      Admin name: <input type="text" name="username" value="<?php echo htmlspecialchars($username) ?>" /> 
      <?php echo $usmg; ?> 
      </p> 
      <p> 
      Password: <input type="password" name="password" value="<?php echo htmlspecialchars($password) ?>" /> 
      <?php echo $pasmg; ?> 
      </p> 
      <p> 
      <input type="submit" value="Submit" name="submit"/> 
      </p> 
      <p> 
      <input type="reset" value="Reset" name="reset"/> 
      </p> 
     </form> 

     <?php 
      if (isset($_POST['submit']) && !$logincorrect) { 
       echo "<p> <span class='error'>Login details incorrect. Please try again!</span></p>"; 
      } 
     ?> 
    </body> 
    </html> 

Мне нужно проверить, существует ли это значение, и если оно будет перенаправлено на другую страницу, но когда я попытаюсь проверить свой ввод он всегда показывает неверные данные для входа, даже если это значение существует в базе данныхпроверить, существует ли значение в базе данных, и если он перенаправляется на страницу с использованием php

+0

почему «введите код здесь» линии существует так много раз .... plz edit question –

+0

Ваш пароль для базы данных хэширован или в любых словах, зашифрован? – keziah

+0

Извините, что я новичок здесь @DrManishJoshi –

ответ

0
<?php 
session_start(); 
?><html> 
<head> 
<style type="text/css"> 
input{ 
border:1px solid olive; 
border-radius:5px; 
} 
h1{ 
    color:darkgreen; 
    font-size:22px; 
    text-align:center; 
} 
</style> 
</head> 
<body> 
<h1>Login<h1> 
<form action='' method='post'> 
<table cellspacing='5' align='center'> 
<tr><td>User name:</td><td><input type='text' name='username'/></td></tr> 
<tr><td>Password:</td><td><input type='password' name='password'/></td></tr> 
<tr><td></td><td><input type='submit' name='submit' value='Submit'/></td></tr> 
</table> 

</form> 
<?php 
if(isset($_POST['submit'])) 
{ 
$connection=mysqli_connect('localhost','twa137','twa137hu','westernhotel137'); 

$username=$_POST['username']; 
$password=$_POST['password']; 
if($username!=''&&$password!='') 
{ 
    $query=mysqli_query($connection,"select * from login where username='".$username."' and password='".$password."'"); 
    $res=mysqli_num_rows($query); 
    if($res>0) 
    { 
    $_SESSION["username"] = $username; 
    header('location:browse.php'); 
    } 
    else 
    { 
    echo'You entered username or password is incorrect'; 
    } 
} 
else 
{ 
    echo'Enter both username and password'; 
} 
} 
?> 
</body> 
</html> 
+0

его отображение ошибки "Warning: mysqli_num_rows() ожидает, что параметр 1 будет mysqli_result, boolean задан в I: \ twa \ twa137 \ assign1 \ adminlogin.php в строке 37 Вы ввели имя пользователя или пароль неверно » также где я должен начать сеанс? –

+0

Я изменил код для сеанса. проверьте соединение с базой данных, имена таблиц и полей верны. – Mani

+0

Спасибо, теперь его работа. –

0

Прежде чем сохранять имя пользователя и пароль в базе данных, вы можете это сделать. Это для обеспеченной формы подачи:

$username=$_POST['username']; 
$password=$_POST['password']; 

$username = stripslashes($username);// This prevents accidental sql injection 
$password = stripslashes($password); 
$username = mysqli_real_escape_string($username); 
$password = mysqli_real_escape_string($password); 
$password = md5($password); //Optional but secured as you are hashing the password 
//here add your SQL query to save into database 

Этот же метод вы можете использовать для входа и регистрации имени и пароля. В форме вы можете удалить значение, когда будете вводить значения. Я также предлагаю вам начать использовать PDO, поскольку он более защищен.

+0

его работая сейчас, спасибо, ребята. –