Использование двух глобальных переменных с одинаковым именем в PHP - PullRequest
0 голосов
/ 04 января 2012

Я использовал $_SESSION['user'], то есть user как переменную для хранения зарегистрированного пользователя ID в массиве SESSION.В то же время я использовал в каком-то другом месте $_GET['user'] для выполнения некоторых других вещей.

Однако проблема в том, что как только я использую массив GET для установки значения "user", мое пользовательское значениеМассив 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.";
}

Спасибо:)

Ответы [ 2 ]

5 голосов
/ 04 января 2012

Полагаю, ваш параметр register_globals включен. Подробнее об этом здесь: http://en.wikibooks.org/wiki/PHP_Programming/Register_Globals

3 голосов
/ 04 января 2012

Мне очень понравился ваш комментарий "Я добавил код. Find OUT" @ DaveRandom

Проверьте ваши настройки register_globals.

Спасибо:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...