2013-05-11 5 views
1

양식에 아무 것도 쓰지 않고 입력 버튼을 클릭하면 오류는 발생하지 않지만 사용자 이름과 암호를 올바르게 입력하면 오류가 표시됩니다. "$ _POST [ 'username']"; // 사용자 이름이 일치하지 않으면 username을 출력 하시겠습니까?비밀번호와 사용자 이름이 DB에 일치하면 오류가 표시됩니까?

오류 :

공지 사항 : 정의되지 않은 인덱스 :에 이름 ..

공지 사항 : 정의되지 않은 인덱스 :에 비밀번호 ..

이 내 양식

<form action="2.php" method="post"> 


<table align="center"> 
    <tr> 
    <td>Username</td> 
    <td><input type="text" name="username" /></td> 
    </tr> 
    <tr> 
    <td>Password</td> 
    <td><input type="password" name="password" /></td> 
    </tr> 
    <tr> 
    <td colspan="2" align="center"><input type="submit" value="Enter" /> 
    </td> 
    </tr> 
</table> 
</form> 

이 내 제 2 페이지

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

    $connection = mysql_connect('localhost', 'root', ''); 
    if (!$connection){ 
     die('Could not connect'); 
     exit; 
    } 
    mysql_select_db('dbName') or die("Unable to select database"); 

    $query = "SELECT * FROM admin WHERE username = '$username'"; 

    $result = mysql_query($query) or die(mysql_error()); 

    $num = mysql_num_rows($result); // number of rows 

    if ($num > 0){ 
    $i = 0; 
    while ($i < $num){ 


     $row = mysql_fetch_array($result); 

     if (($password) == $row['password'] && ($username) == $row['username']){ 

      header('location:2.php'); 

      $_SESSION['sessionname'] = $username; 
      $_SESSION['sessionpass'] = $password; 
     } 

     elseif (($password) != $row['password'] && ($username) == $row['username']) { 
      echo "Wrong Password <a href='1.php' >Click Here</a>"; 

     } 

     $i++; 
     } 
    }else { 
     echo "Username <strong><u>$_POST[username]</u></strong> invalid ! <a href='1.php' >Click Here</a> "; 


     } 
    ?> 
+1

평문 대신 암호 해시를 저장하는 것이 좋습니다. –

+1

[tag : cakephp] 태그를 추가해야하는 이유는 무엇입니까? –

+0

"mysql_"함수는 이제 더 이상 사용되지 않습니다. 계속하기 전에 mysqli_ 또는 PDO로 전환하는 것이 좋습니다. – vijrox

답변

1

당신이했던 것처럼 사용자 이름과 암호 변수를 지정할 이유가 없습니다. 세션에서 평상시처럼 변수에 포스트 데이터를 지정하기 만하면됩니다.

+0

어떻게 말해주십시오? –

관련 문제