Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сессия теряется после редиректа
 
 автор: winflip   (25.01.2008 в 16:33)   письмо автору
 
 

Здравствуйте форумчане. Вот такая проблема. Есть форма которая передаёт методом гет 3 параметра nik, pas и stat. Вот обработчик с головой
 <?php
 session_start
();
 switch(
$_GET['stat']){
  case 
"":  
   include 
"config.php";
  break;
  case 
"1":
   include 
"probauser.php";
  echo 
"<HTML><head><META HTTP-EQUIV='refresh' CONTENT='0; URL=index.html'>";
  break;
 }
?>

<HTML><HEAD><TITLE>Форум php | mysql| html+css+javascript| delphi| C/C++| регулярные выражения| болталка</TITLE>
<META http-equiv=Content-Type content="text/html"><LINK 
href="style.css" 
type=text/css rel=stylesheet>
</HEAD>
  

probauser.php создаёт $SESSION[nik] и $_SESSION[pas]. И это видно на странице, но после редиректа, сессии как не бывало. Обработчик тот же.

   
 
 автор: Loki   (25.01.2008 в 16:59)   письмо автору
 
   для: winflip   (25.01.2008 в 16:33)
 

Суперглобальный массив называется $_SESSION, а не $SESSION. Именно поэтому ваш массив теряется после перезагрузки.

   
 
 автор: winflip   (25.01.2008 в 17:05)   письмо автору
 
   для: Loki   (25.01.2008 в 16:59)
 

это я здесь опечатался. там все нормально

   
 
 автор: winflip   (25.01.2008 в 17:07)   письмо автору
 
   для: winflip   (25.01.2008 в 17:05)
 

и еще. дома все работает, а вот на юниксе не работает.

   
 
 автор: Loki   (25.01.2008 в 17:14)   письмо автору
 
   для: winflip   (25.01.2008 в 17:07)
 

Под юниксом
<?php
 session_start
();
 switch(
$_GET['stat']){
  case 
"":  

  break;
  case 
"1":
   
$_SESSION['nik']='nik'
   
$_SESSION['pas']='pas';
   echo 
"<HTML><head><META HTTP-EQUIV='refresh' CONTENT='0; URL=test.php'>";
  break;
 }
print_r($_SESSION);
?>


Array ( [nik] => nik [pas] => pas )

   
 
 автор: winflip   (25.01.2008 в 17:21)   письмо автору
 
   для: Loki   (25.01.2008 в 17:14)
 

в чем разница? кроме инклюда и вывода массива?

   
 
 автор: Loki   (25.01.2008 в 17:39)   письмо автору
 
   для: winflip   (25.01.2008 в 17:21)
 

ни в чем... этот код рабочий. ищите где вы в подключаемых файлах накосячили.
И кстати неплохо бы проверить что сессия у вас вообще стартовала.

   
 
 автор: Faraon   (25.01.2008 в 20:05)   письмо автору
 
   для: Loki   (25.01.2008 в 17:14)
 

>Под юниксом

Не обязательно, и под Windows все это также будет работать.

   
 
 автор: winflip   (25.01.2008 в 23:45)   письмо автору
 
   для: Faraon   (25.01.2008 в 20:05)
 

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

   
 
 автор: Snich   (25.01.2008 в 17:08)   письмо автору
 
   для: Loki   (25.01.2008 в 16:59)
 

з

   
 
 автор: winflip   (25.01.2008 в 17:39)   письмо автору
 
   для: Snich   (25.01.2008 в 17:08)
 

Что вы предлагаете???

   
 
 автор: winflip   (26.01.2008 в 20:15)   письмо автору
 
   для: winflip   (25.01.2008 в 17:39)
 

Я нашёл причину неработоспособности сессий. Она проявляется в расширении файла. Расширение html. Чтобы php скрипты выполнялись я вписал в htaccess строку
RemoveHandler .html
AddType application/x-httpd-php .php .html
. Что мне сделать чтобы работали сессии в html файлах????

   
 
 автор: Faraon   (26.01.2008 в 20:22)   письмо автору
 
   для: winflip   (26.01.2008 в 20:15)
 

>Что мне сделать чтобы работали сессии в html файлах????

Интересно, что бы это могло значить?

   
 
 автор: winflip   (26.01.2008 в 20:27)   письмо автору
 
   для: Faraon   (26.01.2008 в 20:22)
 

Посмотрите пост предыдущий полностью. Я написал что сессия не отображается только в html файле

   
 
 автор: winflip   (26.01.2008 в 20:29)   письмо автору
 
   для: winflip   (26.01.2008 в 20:27)
 

В остальных файлах она отображается. А запинается на index.html

   
 
 автор: Faraon   (26.01.2008 в 20:48)   письмо автору
 
   для: winflip   (26.01.2008 в 20:27)
 

А как сессия по Вашему будет определяться в HTML-Файле?
Собственно чем она будет приниматься?

   
 
 автор: winflip   (26.01.2008 в 20:51)   письмо автору
 
   для: Faraon   (26.01.2008 в 20:48)
 

Что то я не пойму. Можете поподробнее????

   
 
 автор: Faraon   (26.01.2008 в 20:59)   письмо автору
 
   для: winflip   (26.01.2008 в 20:51)
 

Могу.
К примеру у Вас страница чисто Html.
Чем будет обрабатываться в этой странице прием сессии, скажем передача из php сценария другой страницы, к примеру $_SESSION['nik']='nik'; ?

   
 
 автор: winflip   (26.01.2008 в 21:05)   письмо автору
 
   для: Faraon   (26.01.2008 в 20:59)
 

Я привёл фрагмент моего .htaccessa выше. Php скрипты свободно работают у меня в HTML файлах

   
 
 автор: AVS   (26.01.2008 в 22:35)   письмо автору
 
   для: winflip   (26.01.2008 в 21:05)
 

Ищите ошибку в своем куске кода, который у Вас включается. Или покажите его. Апач тут не при чем. PHP строит страницу HTML. HTML - язык РАЗМЕТКИ гипертекста и с сессиями он никак не связан.

   
 
 автор: winflip   (27.01.2008 в 10:53)   письмо автору
 
   для: AVS   (26.01.2008 в 22:35)
 

Я вам ещё раз повторяю. php файлы с ТАКИМ ЖЕ КОДОМ работают. А html С ЭТИМ ЖЕ КОДОМ запинается. Кстати для проверки сделаю сейчас тест

   
 
 автор: winflip   (27.01.2008 в 11:11)   письмо автору
 
   для: winflip   (27.01.2008 в 10:53)
 

И ещё: сессия СОЗДАЁТСЯ. Она видна до редиректа. Возможно не передаётся сессион айди. И вообще можете проверить сами.

   
 
 автор: winflip   (27.01.2008 в 11:48)   письмо автору
 
   для: winflip   (27.01.2008 в 11:11)
 

Всё надоело. Сделал файл index.phtml вместо index.html. Всё работает

   
 
 автор: AVS   (27.01.2008 в 12:42)   письмо автору
 
   для: winflip   (27.01.2008 в 11:48)
 

Наконец-то дошло, что есть разница между PHP(PHTML) и HTML. Для того, чтобы писать на PHP разберитесь что такое HTML и с чем его едят.

   
 
 автор: Loki   (27.01.2008 в 21:43)   письмо автору
 
   для: AVS   (27.01.2008 в 12:42)
 

>чтобы писать на PHP разберитесь
вам та же самая рекомендация в отношении апача

   
 
 автор: winflip   (27.01.2008 в 22:41)   письмо автору
 
   для: Loki   (27.01.2008 в 21:43)
 

Loki, полностью с вами согласен:-)

   
 
 автор: winflip   (27.01.2008 в 22:45)   письмо автору
 
   для: winflip   (27.01.2008 в 22:41)
 

AVS, обратите внимание на мой htaccess файл и поймете, что у меня файл html интерпретируется

   
 
 автор: winflip   (28.01.2008 в 14:45)   письмо автору
 
   для: winflip   (27.01.2008 в 22:45)
 

все же мне интересно почему один код не работает на разных расширениях, подерживвящих php

   
 
 автор: Loki   (28.01.2008 в 15:29)   письмо автору
 
   для: winflip   (28.01.2008 в 14:45)
 

Дело может оказаться в кэшировании. html файлы довольно злобно кэшируются на всех этапах следования. Опять же, имеет смысл проверить какие заголовки отправляют броузеры. Может это подлянка с их стороны.

   
 
 автор: winflip   (28.01.2008 в 20:18)   письмо автору
 
   для: Loki   (28.01.2008 в 15:29)
 

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

   
 
 автор: Faraon   (28.01.2008 в 21:12)   письмо автору
 
   для: winflip   (27.01.2008 в 22:45)
 

Кстати, а что у Вас в этом файле HTML?
Как там идет прием сессии и обработка?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования