2017-07-28 20 views
-3

Helo、私はログインしました。ユーザー名が間違っていたらパスワードを入力し、ユーザー名が間違っていれば警告を表示し、ユーザー名とパスワードが間違っていればパスワードが間違っているユーザ名とパスワードが一致した場合、これは私のスクリプトユーザー名の確認とパスワードの確認がPHPで行われる

<?php 
    if(isset($_GET['log'])){ 
    session_start(); 
    session_destroy(); 
    } 
    $conn = mysqli_connect("localhost","root","","mydb"); 
    $username = isset($_POST["username"]) ? $_POST["username"] : ''; 
    $password = isset($_POST["password"]) ? $_POST["password"] : ''; 
    $password = md5($password); 



    if($username!='' and $password!=''){ 

    $sql = mysqli_query($conn, "SELECT * from user WHERE username = '$username' AND password = '$password' limit 1"); 
    $data = mysqli_fetch_assoc($sql); 

    if($data){ 
     session_start(); 
     $_SESSION['username']  = $data['username']; 
     $_SESSION['password']  = $data['password']; 
    } 

    if(isset($_SESSION["username"])){ 
     header('Location: index.php'); 
    } 

    else { 
     echo "<script type='text/javascript'> 
     alert('wrong username and password..!!!'); 
     </script>"; 
    } 
    } 

?> 
<body class="" style="background: #fff"> 
<br><br><br> <br><br><br>  
    <center></center><br>  
    <div class="form-box" id="login-box" style="width: 430px;margin-top: -0px;border-radius: 0"> 
     <div class="header" style="background: #2880d7;border-radius: 0">KOPKAR Manunggal Perkasa</div> 
     <form action="#" method="post"> 
      <div class="body bg-gray"> 
       <div class="form-group"> 
        <input type="text" name="username" class="form-control" placeholder="Username"/> 
       </div> 
       <div class="form-group"> 
        <input type="password" name="password" class="form-control" placeholder="Password"/> 
       </div> 
      </div> 
      <div class="footer text-center" style="background: #dbdbe0;border-radius: 0"> 
       <button type="submit" name="login" class="btn btn-lg" style="background: #2880d7;color: white;width: 30%">Login</button> 


      </div> 
     </form> 

    </div> 

</body> 

+0

を使用していないお勧めします? –

+1

あなたはこれでライブに行くつもりはありませんか? –

+0

私はエラーは表示されませんが、ユーザ名が間違っているかどうかをチェックし、ユーザ名が間違っている場合は警告を表示し、ユーザ名とパスワードが間違っている場合は警告を表示し、 to index.php –

答えて

0
<?php 

if (isset($_GET['log'])) { 
    session_start(); 
    session_destroy(); 
} 
$conn = mysqli_connect("localhost", "root", "", "mydb"); 
$username = isset($_POST["username"]) ? $_POST["username"] : ''; 
$password = isset($_POST["password"]) ? $_POST["password"] : ''; 
$password = md5($password); 
$msg = ""; 
$status = 0; 

if ($username != '' and $password != '') { 

    $sql = mysqli_query($conn, "SELECT * from user WHERE username = '$username' OR password = '$password' limit 1"); 
    $data = mysqli_fetch_assoc($sql); 

    if ($data) { 
     $status = 1; 
     session_start(); 
     if ($data['username'] == $username && $data['password'] == $password) { 
      $_SESSION['username'] = $data['username']; 
      $_SESSION['password'] = $data['password']; 
     } else if ($data['username'] != $username) { 
      $status = 0; 
      $msg = "username is wrong"; 
     } else if ($data['password'] != $password) { 
      $status = 0; 
      $msg = " password is wrong"; 
     } 
    } else { 
     $status = 0; 
     $msg = "username and password is wrong"; 
    } 
    $alert = "<script type='text/javascript'> 
     alert('" . $msg . "'); 
     </script>"; 
    if (!$status) { 
     echo $alert; 
    } 
    if (isset($_SESSION["username"])) { 
     header('Location: index.php'); 
    } 
} 
?> 
+0

ここでエラーが発生しました: if(!status){ echo $ alert; } 注意:定義されていない定数ステータスの使用 - D:\ RIFQI_FILE \ xampp \ htdocs \ final \ login.phpの44行目で 'status'と仮定しました –

+0

更新コード$が逃しました。 –

+0

コードは動作しますが、ユーザ名またはパスワードだけが間違っている場合、ユーザ名とパスワードは間違っていますが、 –

0

ありがとうEDIある

をindex.phpにリダイレクト空のパスワードのTED) MD5この生成:私はあなたのコードを変更

d41d8cd98f00b204e9800998ecf8427e 

を:

<?php 

if(isset($_GET['log'])) 
{ 
    session_start(); 
    session_destroy(); 
} 
$conn = mysqli_connect("localhost","root","","mydb"); 
$username = isset($_POST["username"]) ? $_POST["username"] : ''; 
$password = isset($_POST["password"]) ? $_POST["password"] : ''; 
// Control attempt variable 
$attempt = FALSE; 

if($username != '' && $password != '') 
{ 
    // ESCAPE!!! SQL INYECTION 
    $query = sprintf(
     "SELECT * FROM user WHERE username = '%s' AND password = '%s' LIMIT 1;", 
     mysqli_real_escape_string($username), 
     md5($password) 
    ); 
    $result = mysqli_query($conn, $query); 

    if($result) 
    { 
     $data = mysqli_fetch_assoc($result); 
     // 
     session_start(); 
     // 
     $_SESSION['username'] = $data['username']; 
     $_SESSION['password'] = $data['password']; 

     header('Location: index.php'); 
    } 
    $attempt = TRUE; 
} 
?> 
<html> 
<thead></thead> 
<body class="" style="background: #fff"> 
    <br><br><br> <br><br><br>  
    <center></center><br>  
    <div class="form-box" id="login-box" style="width: 430px;margin-top: -0px;border-radius: 0"> 
     <div class="header" style="background: #2880d7;border-radius: 0">KOPKAR Manunggal Perkasa</div> 
     <form action="#" method="post"> 
      <div class="body bg-gray"> 
       <div class="form-group"> 
        <input type="text" name="username" class="form-control" placeholder="Username"/> 
       </div> 
       <div class="form-group"> 
        <input type="password" name="password" class="form-control" placeholder="Password"/> 
       </div> 
      </div> 
      <div class="footer text-center" style="background: #dbdbe0;border-radius: 0"> 
       <button type="submit" name="login" class="btn btn-lg" style="background: #2880d7;color: white;width: 30%">Login</button> 
      </div> 
     </form> 

    </div> 
    <?php if($attempt): ?> 
    <script type="text/javascript"> 
     alert('wrong username and password..!!!'); 
    </script> 
    <?php endif; ?> 
</body> 
</html> 

私はあなたが今、あなたはすべてのエラーを取得したMD5

+0

mysqli'ライブラリで利用できる[完全に適切なプリペアドステートメント](http://php.net/manual/en/mysqli.prepare.php)がある場合は、 'mysql_real_escape_string()'を使用しないでください。特にパスワードで実行すると、実際に 'md5()'によって生成されたハッシュが変更されます。 – Phylogenesis

+0

あなたは準備された方法を見ていますか?この関数をクエリに適用する必要があります。 – MikeSouto

関連する問題