我使用了$_SESSION['user']
,即用戶作爲變量來存儲用戶在SESSION數組中登錄的ID
。同時,我在其他地方用$_GET['user']
做了其他的事情。在PHP中使用兩個具有相同名稱的GLOBAL變量
但是,問題是,只要我使用GET數組來設置「用戶」值,我的SESSION數組的用戶值也會被覆蓋。我對此很驚訝。
代碼工作完全正常(無過寫作)在我的本地服務器,但同樣未能在自己的網站
雖然,我已經改變變量固定它,現在我很好奇,想知道的這背後的原因。
如果我不清楚我的問題,請發表評論。
這裏有代碼(根據要求發佈)。不過,我不認爲這是需要
if($_SESSION['user']!=""){
$user = $_GET['user'];
$q = "select * from some_table where username='$user' order by product";
$a = mysql_query($q);
$count = mysql_num_rows($a);
if($count==0){
die ("No such username exists. No credits will be deducted for wrong query.");
}
else {
$user_q = $_SESSION['user'];
$val = 10;
$query2 = "UPDATE some_table set user_balance=user_balance-'$val' where username='$user_q'";
mysql_query($query2);
echo "<table class='tablesorter' id='myTable' style='width:600px;align:center;'><thead><tr><th align='center'>Product</th><th align='center'>Time</th><th align='center'>Credit</th><th align='center'>Modified Credits</th></tr></thead><tbody>";
}
while($array = mysql_fetch_array($a)){
$p = $array['product_name'];
$c = $array['cost_incurred'];
$t = $array['timestamp_jkj'];
$m = $array['mod_balance_something'];
echo "<tr><td align='center'>$p</td><td align='center' >$t</td><td align='center'>$c</td><td align='center'>$m</td></tr>";
}
echo "</tbody></table>";
}
else {
echo "You need to login to see your details.";
}
謝謝:)
這不應該發生,你應該發佈你的代碼,所以我們可以嘗試和解決它爲什麼。 – DaveRandom 2012-01-04 13:30:41
但是,它爲什麼然後僅僅改變用戶到用戶1的變量名? – 2012-01-04 13:33:03
沒有看到你的代碼,我不知道。 – DaveRandom 2012-01-04 13:33:51