2013-06-10 2 views
1

lo-gin 페이지를 만들고 있는데, 여기서 lo-gin을 위해 user_name과 암호를 사용해야합니다. 로그인하기 전에 이름으로 계정을 등록해야합니다. 이 로깅에 대한 내 코드가 페이지에 : 내가 로그인에 때 단지로 이동 사용 잘못된 정보로Loggin 페이지가 작동하지 않습니다.

<?php 
     // if already logged in 
     if(isset($_SESSION['username']) && isset($_SESSION['password'])) { 
      if(isset($_POST['logout'])) { 
       session_destroy(); 
       echo 'Logged Out!'; 
       showloginform(); 
      } 
      else { 
       print("<p>Dear $_SESSION[username]</p>"); 
       print "<p>only a logged in user can see this</p>"; 
      } 
     } 
     //not logged in: 
     else { 
      //have login request: 
      if(isset($_POST['username']) && isset($_POST['password'])) { 
       include 'opendb.php'; 
       $username = $_POST['username']; 
       $password = $_POST['password']; 
       $sql = "SELECT Name, password FROM Restaurant_table WHERE Name = '$username' AND password = '$password'"; 
       $result = mysql_query($sql) or die('Query failed. ' . mysql_error()); 
       //found username/password combination: 
       if (mysql_num_rows($result) == 1) { 
        $_SESSION['logged'] = true; 
        $_SESSION['username'] = $_POST['username']; 
        $_SESSION['password'] = $_POST['password']; 
        echo 'logged in'; 
        //exit; 
       } 
       else { 
       echo 'Sorry, wrong user_id or password.'; 
       } 
      } 
      //have no login request: 
      else { 
      showloginform(); 
      } 
     } 

     function showloginform() { 
      echo "\r\n please enter your login information to proceed with our site <br/><br/>"; 
      echo '<form action="start.html" method="post">'; 
      echo '<div class="input-group">'; 
      echo '<input type="text" placeholder="User ID" name="username" class="input-transparent" id="email" />'; 
      echo '<input type="password" placeholder="password" name="password" class="input-transparent"/>'; 
      echo '</div>'; 
      echo '<button id="login-submit" type="submit" class="login-button">Manager Login</button>'; 
      echo '</form>'; 
     } 

     function checkpass() { 
      include 'opendb'; 
      $sql = "select * from Restaurant_table where Name='$_POST[username]' and password='$_POST[password]'"; 
      $result = mysql_query($sql,$conn) or die(mysql_error()); 
      return mysql_num_rows($result); 
     } 
     ?> 

하지만이 작업을 나던 것 같다, 우선은 나에게 오류를 제공 나던 다음 페이지. 나에게 실수 나 구식을 주려고하면, 나는 무엇이 잘못되고 있는지 확신하지 못한다.

답변

4

귀하의 <form>에 대해 start.html 페이지로 작업을 사용 중입니다. 이로 인해 start.php 대신 start.html으로 리디렉션됩니다. 죄수하여이

echo '<form action="start.html" method="post">'; 

echo '<form action="start.php" method="post">'; 

또는 견적을 변경

echo '<form action="" method="post">'; 
+0

그가 동일한 페이지에 게시하는 것을 보면 그는'action = "" – Prisoner

3

예를 먼저 HTML 페이지가 아닌 PHP 페이지에서 값을 게시해야합니다.

echo '<form action="<?php echo $_SERVER[\'PHP_SELF\']?>" method="post">'; 

두 번째 실수는 그것이 있어야이의 대신

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

입니다.

if (mysql_num_rows($result)> 0) { 
관련 문제