2017-05-16 1 views
1

이것은 내 로그인 페이지입니다. 관련 사용자 이름과 암호를 입력하면 로그인 할 수 있으며 일치하지 않으면 로그인 할 수 없습니다. 하지만 문제는 아직 사용자 이름, 비밀번호를 입력하지 않고 로그인 버튼을 클릭하면 로그인 할 수있는 권한이 있다는 것입니다. 로그인 페이지 오류

이 당신이 사용자 이름과 암호 비어있는 행을 데 의미합니다 login.php

<?php 

    //get values passe from form in login.php file 
    $username = $_POST['user']; 
    $password = $_POST['pass']; 

    //to prevent sql injection 
    $username = stripslashes($username); 
    $password = stripslashes($password); 
    $username = mysql_real_escape_string($username); 
    $password = mysql_real_escape_string($password); 

    //connect to the server and select database 
    mysql_connect("localhost","root",""); 
    mysql_select_db('laboursalary'); 

    //query the database for user 
    $result = mysql_query("SELECT * FROM login WHERE username= '$username' and password='$password'") 
       or die("Failed to query database" .mysql_error()); 
    $row = mysql_fetch_array($result); 
    if ($row['username']==$username && $row['password']==$password) { 
     header("Location: ../projectdetails/index.php"); 

    } elseif ($row['username']=="" && $row['password']==""){ 
     echo "Failed to login"; 
    } else { 
     echo "Failed to login"; 
    } 


?> 
+0

경고 mysql_query, mysql_fetch_array, mysql_connect 등의 경고는 PHP 5.5.0에서 더 이상 사용되지 않으며 PHP 7.0.0에서 제거되었습니다. 대신 MySQLi 또는 PDO_MySQL 확장을 사용해야합니다. – Melchizedek

답변

3
<?php 
if(isset($_POST['submit'])) 
{ 
    //get values passe from form in login.php file 
    $username = mysql_real_escape_string($_POST['user']); 
    $password = mysql_real_escape_string($_POST['pass']); 


    //connect to the server and select database 
    mysql_connect("localhost","root",""); 
    mysql_select_db('laboursalary'); 

    //query the database for user 
    $result = mysql_query("SELECT * FROM login WHERE username= '$username' and password='$password'"); 
    $row = mysql_num_rows($result);   
    if($row == 1) 
    { 
     header("Location: ../projectdetails/index.php"); 

    } else { 
     echo "Failed to login"; 
    } 
} 

?> 
+0

고마워요. 괜찮아요 :) – Lisa234

+0

welcome @ Lisa234 –

2

에게있는 인덱스 페이지

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

<body> 
<div class="login-page"> 
    <form method="post" class="form" action="login.php"> 

     <input type="text" id="user" name="user" placeholder="username"/> 
     <input type="password" id="pass" name="pass" placeholder="password"/> 
     <button type="submit" name="submit" id="btn">login</button> 

    </form> 
</div> 
</body> 
</html> 

입니다. 표의 해당 행을 삭제하고 아래 코드도 업데이트하십시오.

if ($username != "" && $password !=""){ 
//query the database for user 
    $result = mysql_query("SELECT * FROM login WHERE username= '$username' and password='$password'") 
       or die("Failed to query database" .mysql_error()); 
    $row = mysql_fetch_array($result); 
    if ($row['username']==$username && $row['password']==$password) { 
     header("Location: ../projectdetails/index.php"); 

    } else { 
     echo "Failed to login"; 
    } 
} else 
     echo "Failed to login"; 
    } 

참고 :는 또한 mysqli 또는 PDO 귀하의 MySQL의 연결을 변경합니다. 왜냐하면 최신 PHP 버전에서는 더 이상 사용되지 않기 때문입니다.