2011-07-21 17 views
1

ユーザーがセッションのユーザー名の下にあるページに移動するたびに変更されます。誰かが私に理由を教えてくれますか?私は非常に感謝されます。私はセッションを開始した後に宣言するwhileループと関係があるかもしれないと感じています。PHPユーザーのログインが変更されました!

ここにユーザー名が変更されたページがあります。 (leaderboard.php)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<?php 
session_start(); 

if ($_SESSION['username']) 

    $user = "Welcome, ".$_SESSION['username']."!<br><a href='logout.php'>Logout</a>"; 
else 
    die("You must be logged in!"); 

$connect = //CONNECT TO DATABASE 


$query = "SELECT @rank:= @rank + 1 as rank, s.* FROM (SELECT username, score, wins, games FROM stats, (SELECT @rank:=0) r ORDER BY score DESC LIMIT 10) s"; 

if ($query_run = mysql_query($query)) 
{ 
//begin table 
echo "<div class='container'> 
     <table class='tableposition' border='1' width='600' cellpadding='3' cellspacing='0'> 
     <caption>OVERALL RANKINGS</caption> 
     <tr class='tablehead'> 
     <th>RANK</th> 
     <th> USERNAME</th> 
     <th>OVERALL SCORE</th> 
     <th>WIN%</th> 
     </tr>"; 
//begin loop 
    while ($query_row = mysql_fetch_assoc($query_run)) 
    { 
    $rank = $query_row['rank']; 
    $username = $query_row['username']; 
    $score = $query_row['score']; 
    $wins = $query_row['wins']; 
    $games = $query_row['games']; 
    $winpere = $wins/$games * 100; 
    $winper = number_format($winpere,1); 

    echo "<tr class='tablecontents'> 
      <td>$rank</td> 
      <td>$username</td> 
      <td>$score</td> 
      <td>$winper %</td> 
     </tr> 
     "; 
    } 
//end loop 
//close table 
echo "</table> 
     </div>"; 


}else{ 
echo mysql_error(); 
} 

//superbox file 
include('superbox.php'); 
?> 
+0

コードを最小限に絞り、あなたのランクの名前が何であるかを知る必要はほとんどありません。トラフを見やすくするとより魅力的です。 – Wrikken

+0

整数を文字列に変換しないでください( '1235') – Fredrik

答えて

5

私は直ちに修正が必要な問題を発見しました。 session_startは、ブラウザによってレンダリングされるはずのコンテンツの前に呼び出されなければならないメソッドの1つです。これは、あなたがする必要があることを意味:

<?php 
session_start(); 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<?php 

// everything else. 

私はそれがあなたの問題の原因であることを保証することはできませんが、それは間違いなく必要とされています。

+0

これでコードに変更を加えます。 – user830593

関連する問題