2017-03-13 3 views
0

私は、ログインするためのユーザー名とパスワードを入力する必要があるPHPベースのログインシステムを構築しています。私の質問は、 'どのように同じページに'無効なユーザー名またはパスワード 'エラーメッセージを表示できますか?私は、クエリ文字列(/?エラー= 1)を使用しようとすることを含め、多くのことを試しました。それは同じページにエラーメッセージを表示することで私の問題を解決しましたが、すべてのCSSはただページから消えてしまいました。私はそれを修正する方法を見つけることができませんでした。だから私は、明らかに、うまくいかない簡単な方法を試してみることにしました。 どうすれば修正できますか? 私のPHPコードは次のとおりです。PHPベースのシステムで同じページにログインエラーメッセージを表示する方法は?

<?php 
session_start(); 
$db = mysqli_connect("localhost","root","","combination"); 
if(isset($_POST['login_btn'])){ 

    $username = mysql_real_escape_string($_POST['username']); 
    $password = mysql_real_escape_string($_POST['password']); 

    $password=md5($password); 
    $sqlquery="SELECT * FROM registration WHERE username='$username' AND password='$password'"; 
    $result = mysqli_query($db,$sqlquery); 


    if(mysqli_num_rows($result)==1){ 

     $_SESSION['message']="You are now logged in."; 
     $_SESSION['username'] = $username; 
     $_SESSION['password'] = $password; 

     header("location:loginhome.php"); 
    } 
    else{ 
     $_SESSION['message']="Incorrect Username or Password."; 
     header("location:login.php"); 
     echo '<h3>Invalid username or password</h3>'; 
    } 

} 
?> 
+0

手始めに、あなたは、ヘッダーを使用して、一緒にエコーすることはできません。 –

+0

あなたはまた別のmysql apisを混在させています。そのコードは実際の環境では安全ではありません –

+0

とhtmlフォームは不明です。あなたがエラーをチェックし、公式のマニュアルを読むこと –

答えて

2

ここは簡単な例です。変数$_SESSIONを使用する必要があります。

login.php:

<?php 
session_start(); 
?> 

<!DOCTYPE html> 

<html> 

    <head> 
     <title>Login</title> 
     <link rel="stylesheet" type="text/css" href="style.css"> 
    </head> 

    <body> 
     <form action="check.php" method="POST"> 
      <input type="text" class="input" name="username" placeholder="username"> 
      <input type="password" class="input" name="pass" placeholder="pass"> 
      <input class="button" type="submit" id="login" name="login" value="login"> 
       <?php 
        if(isset($_SESSION["error"])){ 
         $error = $_SESSION["error"]; 
         echo "<span>$error</span>"; 
        } 
       ?> 
     </form> 
    </body> 
</html> 

<?php 
    unset($_SESSION["error"]); 
?> 

check.php:

<?php 

session_start(); 

$username = $_POST["username"]; 
$error = "username/password incorrect"; 

if($username == "admin"){ 
    $_SESSION["username"] = $username; 
    header("location: homepage.php"); //send user to homepage, for example. 
}else{ 
    $_SESSION["error"] = $error; 
    header("location: login.php"); //send user back to the login page. 
} 

?> 
+0

ありがとうございました!出来た。 :) – avi

関連する問題