2011-12-28 5 views
0

Добрый день,я не могу принести сеанс для конкретного пользователя

Я отправка электронной почты с PHP и я использую сеанс пользователя

, например:

$subject_user_name= $_SESSION['User']['User_Name'].' '.$_SESSION['User']['User_Surname']; 
$subject_baby_name= $profil['Baby_Name'].' '.$profil['Baby_Surname'];   
$subject = sprintf("%s added first for %s ",$subject_user_name,$subject_baby_name); 

Проблема : для всех $_SESSION работает, но для одного пользователя он не работает, и предмет моей почты будет следующим: «добавлен первый для Мартина»

Мне нужна ваша помощь. Возможно, это проблема с браузером.

+3

Невозможно ответить, не видя, как вы * заполняете * значения сеанса. Можете ли вы добавить эту информацию? –

+0

Вы пытались сделать print_r ($ _ SESSION) ....! –

+0

Да, я это сделал, и он работает нормально, я могу видеть User_Name и User_Surname, а также заполнять сессию непосредственно из одной таблицы, никаких условий для нее. –

ответ

0

У этого пользователя могут быть отключены cookies или установлены другие плотные меры безопасности. Вы можете «поймать» эту проблему путем проверки, если сеансовые ключи на самом деле имеют значения, как это:

if(isset($_SESSION['User']['User_Name']) 
    && isset($_SESSION['User']['User_Surname']) 
    && !empty($_SESSION['User']['User_Name']) 
    && !empty($_SESSION['User']['User_Surname']) 
) { 
    $subject_user_name = $_SESSION['User']['User_Name'] . ' ' . $_SESSION['User']['User_Surname']; 
} else { 
    $subject_user_name = 'Unknown user'; 
} 

В качестве альтернативы, можно проверить только первый или фамилии, а затем оба.

+0

Спасибо, я все еще не мог понять. Но я буду ждать, пока это произойдет снова, я видел эту проблему только для одного пользователя. Поэтому я буду ждать, если он/она напишет сообщение с другого компьютера. –

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