2012-04-18 2 views
0

У меня есть запрос, который работает нормально, если я вручную объявляю $ добавить, чтобы быть значением (например, 30), когда я пытаюсь установить его на сеанс user_id, запрос не выполняется.

// $add = 30; 
// The line above works 
$add = mysql_real_escape_string($_SESSION['user_id']); 
$query = "UPDATE mytable SET act=0, add=$add WHERE id=$selected_user"; 

Любые идеи, в которых я ошибаюсь.

+0

У вас есть значение, исходящее из сеанса – Shyju

+0

Да, я пишу сеанс на странице отлично – Tom

+0

Вы проверили, что $ _SESSION ['user_id'] имеет значение? –

ответ

1

При использовании сеансов всегда нужно указать это перед любым $_SESSION использования, как это:

session_start(); 
//now you are able to use this 
$_SESSION['user_id'] = 30; 

По другой стороны, у меня такая же проблема, как вы раньше и то, что вам нужно сделать, это положить $_SESSION['user_id'] в переменной, то вы сможете передать ее в mysql_real_escape_string без проблем.

$id = $_SESSION['user_id']; 
//now use this: 
$add = mysql_real_escape_string($id); 

Надеюсь, это поможет.

+0

Дох! Основная ошибка у меня (php newbie) ... Я забыл session_start() на странице, выполняющей запрос! Спасибо – Tom

+0

Нет проблем, также попробуйте сделать второе предложение, я получил некоторые сбои перед тем, как просто передать $ _SESSION и не забудьте проверить свой ответ, если решает вашу проблему :-) –

+0

Спасибо ... Я делаю это, но хотел избежать загромождения вопроса с помощью несвязанного кода. – Tom

1

В: Любые идеи, в которых я ошибаюсь?

A: Да. Сессия пуста.

SUGGESTIONS:

  1. Do "эхо", чтобы проверить, что $ _SESSION [ 'user_id'] пустой (я 99% уверен, что это будет)

  2. Убедитесь, что вы» повторно на самом деле установления сеанса (например, "session_start()")

  3. убедитесь, что ваш "session_start()" происходит перед ваш <html> тег.

  4. Debug код, который устанавливает $ _SESSION [ 'user_id']

Это хорошая ссылка:

http://www.w3schools.com/php/php_sessions.asp

0

Я могу почти гарантировать, что вы забыли session_start(); в в верхней части вашего скрипта. Если не попробовать повторить переменную сеанса, если ничего не было возвращено, вы ничего не задали.

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