2014-02-16 4 views
0

Я хочу сделать значение $_SESSION, он делает это, но только на обычной странице. Если я использую switch/case, я не могу получить значение. Может кто-нибудь мне помочь?

Выключатель/корпус:

switch($_GET['act']) 
    { 
     case 'login':      
       include('./include/login.php'); break; 
     case 'logout':      
       include('./include/logout.php'); break;  
     case 'help': 
       include('./include/help.php'); break; 
     case 'help2': 
       include('./include/help.php'); break;              
     case 'contact': 
       include('./include/contat.php'); break; 
     case 'admin': 
       include('./include/admin.php'); break; 
     case 'moderate': 
       include('./include/moderate.php'); break;     
     case 'check': 
       include('./include/check.php'); break;    
     case 'belevki': 
       include('./include/belevki.php'); break; 
     case 'register': 
       include('./include/register.php'); break;    
     case 'ls': 
       include('./include/ls.php'); break;  
     case 'los': 
       include('./include/los.php'); break; 
     case 'profile': 
       include('./include/profile.php'); break;   
     case 'srok': 
       include('./include/check1visrok.php'); break; 
     default: // разглеждане на index-a 
       include('./include/index.php'); 
    }   

это код, который я хочу сделать ссылку от создания сессии

$egn = $_POST['student']; 
    validegn($egn); 
$_SESSION['favcolor'] = $egn; 
header("location:../index.php"); 

и это последняя страница, в которой я хочу для отображения значения

$egn = $_SESSION['favcolor']; 
echo $_SESSION['favcolor']; 
+1

Возможно, вам нужно начать сеанс перед доступом к var? @session_start(); – Vygandas

+0

У меня есть session_start(); везде – user3315719

ответ

0

Когда вы делаете редирект через header('location: ../index.php), вы удаляете все $ _GET v alues. Это отдельно от значений $ _SESSION и session_start(), он работает таким образом, даже если вы вообще не используете сеансы.

На первой странице, сделайте вместо этого:

header("location:../index.php?act=help");' 

, например. Это позволит сохранить параметры GET, и ваш коммутатор будет работать. Возможно, вам захочется написать функцию, которая динамически создает адрес перенаправления.

На второй странице (которая имеет switch($_GET['act']), вы затем получить параметр act

Упрощая и подведение итогов:.

  • $_SESSION доступна после session_start()
  • $_GET будет содержать значения, которые предыдущая страница прошла через URL-адрес, например http://foo.com?firstParam=1&secondParam=2
  • $_POST будет содержать значения, отправленные через <form method='post'>...</form>.

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

+0

Куда я должен положить его на странице, которая генерирует значение или страницу с помощью переключателя или последней страницы, которая должна использовать значение? – user3315719

+0

Привет, я обновил свой ответ. Если вам нужно что-нибудь еще, просто напишите мне. – PeerBr

+0

Это проблема для вас, чтобы дать мне пример, как я должен положить их на место? Извините, если это проблема. :( – user3315719

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