2013-06-14 2 views
0

Итак, я начинаю с php, и у меня очень простая настройка. У меня 2 страницы. Одна страница - это зарегистрированная страница, другая - страница входа в систему. моя проблема прямо сейчас, когда я вхожу в систему успешно, вторая страница все еще думает, что я не вошел в систему. Вот мой код:Не могу сообщить странице, что пользователь зарегистрировался

Я знаю, что я loggin правильно, потому что он не печатает «неправильно», и я вижу «получил здесь», прежде чем он перейдет на следующую страницу. журнала в странице:

<!DOCTYPE html> 
<html> 
    <head> 
     <?php 
     session_start(); 
     ?> 
     <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> 
     <meta content="utf-8" http-equiv="encoding"> 
     <?php 
     if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true) { 
      ?> 
      <script language="Javascript"> window.location.href="show.php";</script> 
      <?php 
     }?> 
    </head> 
    <body> 
      <form method="post"> 
       Username: <input type="text" name="username" size="15" /><br /> 
       Password: <input type="password" name="pass" size="15" /><br /> 
       <input type="submit" name ="submit1" value="Login"/> 
      </form> 
     <?php 
      if (isset($_POST['submit1'])) { 
       if (LOGGEDIN) { 
        print "GOT HERE"; 
        $_SESSION['loggedin'] = true; 
        $_SESSION['user'] = $username; 
        ?> 
        <script language="Javascript"> window.location.href="show.php";</script> 
        <?php 
       } 
       else { 
        print "WRONG!"; 
       } 
      } 

     ?> 
    </body> 
</html> 

авторизовался страницы:

<!DOCTYPE html> 
<html> 
    <head> 
     <?php session_start();?> 
     <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> 
     <meta content="utf-8" http-equiv="encoding"> 
     <?php 
     if (!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] == false) { 
      ?> 
      <script language="Javascript"> window.location.href="index.php";</script> 
      <?php 
     }?> 
    </head> 
    <body>WELCOME 
    </body> 
</html> 
+1

Вы не можете использовать 'session_start()' после того, как вы начали вывод. – Marty

+0

'if (LOGGEDIN) {' Как вы думаете, что это делает? –

+0

, что не является оператором if. У меня есть проверки mysql, которые получают информацию для входа из моей базы данных, которую я вынул из-за паролей. Проверка входа в систему работает нормально. – LiverpoolFTW

ответ

5

вы не должны поставить session_start() перед любым другим кодом?

<?php session_start(); ?> 
<!DOCTYPE html> 
<html> 
... 
+1

wowoww. вот и все. Я думал, пока это было до тела, это сработало. но опять же это моя первая ночь с php. – LiverpoolFTW

+1

с проверкой ошибок, чтобы вы получили предупреждение –

Смежные вопросы