2012-05-01 8 views
2

私の説明が少し漠然としているので、ごめんなさい、ここで問題を診断するのはちょっと難しいです。私はかなり標準的なログインシステムとその大部分のためにうまく動作しています。今日私はブラウザを再起動したときに問題が発生したことに気付きました。まずadmin2.phpにアクセスしてadmin1.phpに戻るまでadmin1.phpにログインしません。PHPログインシステム/セッションが最初に動作していません

その後、すべてが完全に機能します。私はログアウトして、うまくログオンできます。 CSS前へ:ここ

は、私が持っている二つのファイル...

admin1.php

<style> 
#form_contain { 
    text-align: center; 
} 

form { 
    display: inline-block; 
    margin: 100px 0 0 !important; 
} 

label { 
    display: table-cell !important; 
    vertical-align: middle; 
} 

input[type='text'], input[type="password"] { 
    float: left; 
    display: table-cell !important; 
    margin: 0 0 10px; 
    height: 25px; 
    width: 260px !important; 
} 
</style> 

<?php 
session_start(); 
include "lib/head.php"; 

function protect($string) 
{ 
$string = mysql_real_escape_string($string); 
return $string; 
} 

$user = $_SESSION['username']; 

if(!$_POST['submit']) 
{ 
    if ($_SESSION['logged'] == true) { 
     include_once("admin_main.php"); 
     } 
    else { 

?> 

<div id="form_contain"> 
    <form method="post" action="<?=$_SERVER['PHP_SELF']; ?>"> 
     <label>Username:</label> 
     <input type="text" name="username" maxlength="16"> 
     <br> 
     <label>Password:</label> 
     <input type="password" name="password" maxlength="16"> 
     <br> 
     <br> 
     <br> 
     <input type="submit" name="submit" value="Login" class="btn"> 
    </form> 
    <p id="alert"></p> 
</div> 


<?php 
    } 
} 
else 
{ 
    $user = protect($_POST['username']); 
    $pass = protect($_POST['password']); 

if($user && $pass) 
{ 
    $sql="SELECT id,username FROM catalog_users WHERE username='$user' AND password='$pass'"; 
    $query=mysql_query($sql) or die(mysql_error()); 

     if(mysql_num_rows($query) == 1) 
     { 
      $row = mysql_fetch_assoc($query); // mysql_fetch_assoc gets the value for each field in the row 
      $_SESSION['id'] = $row['id']; //creates the first session var 
      $_SESSION['username'] = $row['username']; // second session var 
      $_SESSION['logged'] = true; 

      echo ' 
       <script language="javascript"> 
        window.location = "admin1.php"; 
       </script>"; 

      '; 

     } 
     else 
     { 
      echo ' 
       <script language="javascript"> 
        window.location="admin_wrong.php";  
       </script> 
      '; 
     } 
} 
else 
{   
    echo ' 
     <script language="javascript"> 
      window.location="admin_wrong.php";  
     </script> 
    '; 
} 
} 
?> 

admin2.php

<?php 
session_start(); 
include('lib/head.php'); 


if (isset($_SESSION['logged']) && $_SESSION['logged'] == true) { 
    echo " 
     This is a secured page, welcome <b>".$_SESSION['username']."</b> 
     <br> 
     <br> 
     <a href='admin1.php'>Back</a> 
     <a href='logout.php'>Logout</a> 

     "; 
    } 
else { 
    echo "<b>Sorry, you cannot access this page</b>"; 
} 


?> 

が更新されています私のコードの最上部にある<?php session_start()が原因でしたg問題

+1

古くからの新しいmysql_ *関数を使って、新しいコードを書いてください。彼らはもはや維持されておらず、コミュニティは[非推奨プロセス](http://news.php.net/php.internals/53799)を始めました。代わりに[prepared statement](http://en.wikipedia.org/wiki/Prepared_statement)について学び、[PDO](http://php.net/pdo)または[MySQLi](http:// php.net/mysqli)。あなたが学びたい人は[ここではPDO関連の非常に良いチュートリアルです](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers)。 –

+0

もあります。 '

  • 11. OnClientClickが動作していません初めての場合
  • 12. タッチスタートイベントが当初隠しボタンで動作していません
  • 13. PHP SESSION変数が最初に動作しない
  • 14. 最初にAntが削除されてから動作しません
  • 15. @page:最初にCSSで作業していません
  • 16. php isset()関数が正常に動作していません
  • 17. PHPのインクルードが正常に動作していません
  • 18. PHP Laravel authが正常に動作していません
  • 19. セッションが正常に動作していませんPHP
  • 20. PHP 5.3.29では動作しませんが、5.6.7で動作しています。
  • 21. PHPはICSファイルが正しく動作していません
  • 22. php mb_ereg()が正しく動作していませんアラビア語
  • 23. 初めての読書ではPHPのクッキーが動作しません
  • 24. 最初の実行時にjqueryアニメーションが正しく動作しません
  • 25. php gcalクラスが動作しません
  • 26. PHPが動作しません
  • 27. PHPリンクが動作しません
  • 28. AJAXが動作しませんPHP
  • 29. mysqli_queryがPHPで動作しません
  • 30. file_get_contents( 'php:// input')が動作しません