2016-05-01 3 views
11

Baffling!
У меня есть страница, на которой должны храниться некоторые сеансы, но когда я пытаюсь напечатать их, ничего не появляется.
Там должны быть сеансы, потому что на первой странице есть ссылка, которая выводит меня на вторую страницу, и на этой второй странице я могу успешно отображать сеансы!Сессии не отображаются, но, безусловно, там, как показано на следующей странице

<? 
    session_start(); 
    include "frontend/header.php"; 
?> 
</head> 

<body> 
    <div id="header"> 
     <? include "frontend/menu.php";?> 
     <div class="clear"></div> 
    </div> 
    <div id="green_bg" style="display:block"> 

<? 
    echo "1"; 
    echo "<pre>";print_r($_SESSION); echo"</pre>"; 
?> 

<div class="main thank-you"> 
<a class="thank_you">Thank You</a> 
<p>Your phone number will be refilled in a moment. <br/> 
    Please check your emails for confirmation. 
</p> 

<div class="signUp4MonthlyRefills" style="background-color: #f7931e; padding: 20px;"> 

    <h3>Do you want to save time and effort?</h3> 
    <br/> 
    Then leave the refills to us!! 
    <br/> 
    <br/><i>Introducing</i>... Auto Monthly Refills!! 
    <p>Sign up for automatic monthly refills and you'll never have to worry about your phone running out of credit! 

    <h1 align="center"><a href="auto-monthly-refills-form.php" style="font-size: 30px">Click Here To Sign Up.</a></h1></p> 
    </div> 
<br /> 

</div> 
</div> 
<? include "frontend/footer.php";?> 

Когда код требует сессий, страница просто отображает «1», а затем пустой массив (т.е. он печатает «массив()»).

Тогда при нажатии на ссылку, чтобы "auto-ежемесячно-refills-form.php" отображает все сессии! Файл "auto-monthly-refills-form.php" выглядит просто так:

<? 
    session_start(); 
    echo "<pre>";print_r($_SESSION); die(); 

И теперь отображаются сеансы (много данных) !!
Если у кого есть какие-либо идеи, что может быть проблема ...

UPDATE:
Даже после удаления session_start() на обеих страницах он по-прежнему работает в обычном режиме! Как это могло произойти?

+0

И какое значение оно показало на вашей второй странице? –

+0

Любые изменения, если вы удалите session_start(); с главной страницы? Поскольку она существует на странице с включенным доступом. – Mihai

+0

@ Множество данных (много разных переменных), хранящихся в сеансе ... – Ben

ответ

2

Хорошо ... Сортировано это ... Пожалуйста, прочитайте ...

Несмотря на то, что это новая страница, код рода отрываясь слои других файлов ...

I не думал, что это должно было быть проблемой ...

(Я думал, что каждая страница нуждается в собственном session_start(), но по какой-то причине они этого не делают, и все они, по-видимому, основаны на одной странице ... бит сложно объяснить - достаточно сказать, что я пытаюсь разобраться в чужом коде: -P)

В любом случае, я просмотрел все файлы, которые подключены к этому, удалил все из них session_start() s из них, кроме того, для основного. Теперь он работает нормально.

Данные теперь отлично отображаются!

Вопрос:
Кто-нибудь есть объяснение этому?
Почему возникает слишком много session_starts()?

+1

Технически, несколько session_start() должны работать, хотя и медленны. E_NOTICE генерируется, может быть, это привинчило его. Во всяком случае, лучше всего вызвать его только один раз или проверить, задано ли значение $ _SESSION до его вызова. Рад, что у вас это работает .... –

+0

@ChristianCerri Спасибо за помощь :-). Странно подумал, что это закручивается в первом файле, а не во втором ... Во всяком случае, все должно было быть наоборот ...? – Ben

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

  • Нет связанных вопросов^_^