2016-07-13 6 views
0

Ниже приведена урезанная версия моего кода.Невозможно прочитать данные сеанса

Я установил сеанс в функции search и распечатал его, чтобы проверить его набор. Распечатайте наши работы.

Я затем попытаться прочитать сессию в search_results и ниже ошибки отображается:

Undefined индекс: members_search

Я не могу за жизнь мне работать, что я» я делаю неправильно.

Любая помощь будет оценена по достоинству.

<?php 

session_start(); 

class Cdwd_members { 

    public function search() 
    { 
     $results = '.........' 

     $_SESSION['members_search'] = $results; 

     print_r($_SESSION['members_search']); 
    } 

    public function search_results() 
    { 
     print_r($_SESSION['members_search']); 
    } 

} 
+0

Вы удаляете session_start(); и вставьте session_start(); на главной странице php –

+0

Завершите свои заявления? Вам не хватает полуколонок. – Jay

+0

вы можете показать код того, как вы используете свой класс? – Martin

ответ

0

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

Положите это сразу после метки <?php.

+0

Спасибо.Я сделал это, но та же ошибка отображается. – ccdavies

0

Попробуйте это. session_start(); shlould быть в верхней части страницы

<?php 
    session_start(); 
    class Cdwd_members { 

     public function search() 
     { 
      $results = 'my';   

      $_SESSION['members_search'] = $results; 

      print_r($_SESSION['members_search']); 
     } 

     public function search_results() 
     { 
      print_r($_SESSION['members_search']); 
     } 

    } 
    $n = new Cdwd_members; 
    $n->search(); 
    $n->search_results(); 
0

Попробуйте разместить

start_session

перед включением класса, или просто поместить его как первое, что ваш код будет делать ,

Вы также можете использовать конструктор, если этот класс является единственным местом, где вы используете гонг для использования сеансов. Конструктор - это первое, что класс делает автоматически при создании экземпляра.

function __construct(){ 
    session_start(); 
} 

Constructor & destructors PHP Docs

0

Я не делаю много ООП, но вы можете попробовать это и посмотреть, если он работает. В function search(), вместо print_r($_SESSION['members_search']), попробуйте вместо return $_SESSION['members_search'], а затем в function search_results(), замените print_r с этим print_r(search());

0
$n = new Cdwd_members; 
$n->search_results(); 

You сессии, записанным при метод поиска называется, возможно, вы должны называть «поиск» до "search_results?

0
  1. Если:; отсутствует в строке 9 в вашем коде, а затем добавьте его.
  2. Перед вызовом search_results() убедитесь, что вы вызываете функцию поиска(). Или вы можете вызвать search_results() внутри search(), чтобы установить сеанс.
Смежные вопросы