2013-06-10 2 views
1

Я создаю страницу лоджина, где вы должны использовать user_name и пароль для lo-gin. перед входом в систему вам необходимо зарегистрировать учетную запись с вашим именем. Это мой код для входа в систему на странице:Страница 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

Вы используете действие как start.html страница для вашего <form>. Из-за этого он перенаправляется на start.html, а не start.php. Изменение этого

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

в

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

ИЛИ котировку Заключенный

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

Увидев, что он отправляет его на ту же страницу, он также может использовать 'action =" "' – Prisoner

3

Да сначала вы должны размещать значения на странице PHP не HTML-страницы.

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

Вторая ошибка состоит в том

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

вместо этого оно должно быть.

if (mysql_num_rows($result)> 0) { 
Смежные вопросы