[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Header() Убивает сессию?
zebulun
после редиректа на другую страницу через headear('Location ...') сессия перестает существовать? это так? или я где-то ошибся?



Спустя 6 минут, 26 секунд (7.03.2012 - 22:35) johniek_comp написал(а):
а на другой странице session_start() прописал?

Спустя 1 минута, 4 секунды (7.03.2012 - 22:37) EvilDev написал(а):
zebulun
Ошибся скорее всего, если же хидер на этот сайт. Возможно не стартуется. Иши ошибку в коде

Спустя 1 минута, 39 секунд (7.03.2012 - 22:38) m4a1fox написал(а):
header вроде и правда убивает сессию.

Спустя 4 минуты, 26 секунд (7.03.2012 - 22:43) zebulun написал(а):
через ссылку все работает...

Спустя 39 секунд (7.03.2012 - 22:43) Guest написал(а):
session_start() прописал

Спустя 2 минуты, 18 секунд (7.03.2012 - 22:46) johniek_comp написал(а):
m4a1fox
так должна ошибка вылезти, сейчас попробую...

Свернутый текст
<?php
session_start();

$_SESSION['johniek'] = 1;

header('Location: http://css/start.php');

?>


Свернутый текст
<?php
session_start();

echo isset($_SESSION['johniek']) ? $_SESSION['johniek'] : 'Сессия упала';

?>


все работает. я почему то тоже думал что хидер убирает сессию...

Спустя 6 минут, 9 секунд (7.03.2012 - 22:52) Guest написал(а):
header('Location: http://www.test1.ru/users/id'.$id.'.php');

id93.php:

<? session_start();
if(isset($_SESSION['id']) && isset($_SESSION['email'])){ ...

Спустя 23 секунды (7.03.2012 - 22:52) zebulun написал(а):
это у меня так

Спустя 1 минута, 49 секунд (7.03.2012 - 22:54) johniek_comp написал(а):
zebulun
ну как видишь у меня все заработало, значить ошибка у тебя в коде, выкладывай полный код

Спустя 47 секунд (7.03.2012 - 22:55) killer8080 написал(а):
Цитата (zebulun @ 7.03.2012 - 21:29)
после редиректа на другую страницу через headear('Location ...') сессия перестает существовать? это так?

только если не работают куки.

Спустя 5 минут, 36 секунд (7.03.2012 - 23:00) zebulun написал(а):
login.php:
$new_user->SessionStart();
$new_user->GetInfoById();
$new_user->GetProfilePage();
exit();



function SessionStart()
{
$_SESSION['id'] = $this->id;
$_SESSION['email'] = $this->email;
}

function GetProfilePage()
{
$id=$this->id;
header('Location: http://www.test1.ru/users/id'.$id.'.php');
}




id93.php:

<?php
session_start();
if(isset($_SESSION['id']) && isset($_SESSION['email'])){

Спустя 13 минут, 53 секунды (7.03.2012 - 23:14) johniek_comp написал(а):
killer8080
Цитата
только если не работают куки.

почему? объясни...

Спустя 12 минут (7.03.2012 - 23:26) zebulun написал(а):
а как можно, не использую хедер автоматом перейти на другую страницу?

Спустя 24 секунды (7.03.2012 - 23:27) Barh написал(а):
Всё работает, часто ипользую перенаправление с помощью Header. Сессия у пользователей сохраняется. Никаких проблем никогда не было.

Спустя 2 минуты, 50 секунд (7.03.2012 - 23:29) Barh написал(а):
Цитата (zebulun @ 8.03.2012 - 00:26)
а как можно, не использую хедер автоматом перейти на другую страницу?

например JavaScript.. Но это не лучший вариант, но можно осуществить с помощью него.

Спустя 38 секунд (7.03.2012 - 23:30) zebulun написал(а):
посмотрите код выше, что не так?

Спустя 2 минуты, 3 секунды (7.03.2012 - 23:32) zebulun написал(а):
согласен что не лучший, я не профи поэтому возможны глупые ошибки, посмотрите на код может что-то заметите

Спустя 10 минут (7.03.2012 - 23:42) zebulun написал(а):
походу что-то в настройках надо что-то изменить

Спустя 2 минуты, 44 секунды (7.03.2012 - 23:45) inpost написал(а):
Может код выложишь полностью?

Спустя 6 минут, 38 секунд (7.03.2012 - 23:51) zebulun написал(а):
Я вылаживал выше, если надо что-то еще скажите.

Спустя 1 минута, 19 секунд (7.03.2012 - 23:53) inpost написал(а):
Я не вижу полных кодов, какие-то огрызки.

Спустя 6 минут, 41 секунда (7.03.2012 - 23:59) Guest написал(а):
login.php:

<?php
session_start();
include 'classes/class_user.php';
DBCONNECT;
mysql_select_db(DATA_BASE_NAME, DBCONNECT);
if (!DBCONNECT) {die(mysql_error(DBCONNECT).' '.CONNECTION_DB_ERROR);}


if (isset($_POST['email']) && isset($_POST['password']))
{

$email = mysql_real_escape_string($_POST['email']);
$password = mysql_real_escape_string( $_POST['password']);
$new_user=new user($email);
if($new_user->CheckEmailPass($password))
{
$new_user->SessionStart();
$new_user->GetInfoById();
$new_user->GetProfilePage();
exit();
}
}
mysql_close(DBCONNECT);
?>



id93.php:

<?php
session_start();
if(isset($_SESSION['id']) && isset($_SESSION['email'])){
include '../classes/class_user.php';
$email = $_SESSION['email'];
$id = $_SESSION['id'];
DBCONNECT;
mysql_select_db(DATA_BASE_NAME, DBCONNECT);
if (!DBCONNECT) {die(mysql_error(DBCONNECT).' '.CONNECTION_DB_ERROR);}
$new_user = new User($email);
$new_user->SetId($id);
$new_user->GetInfoById();}
else echo (NOT_LOG_NOTICE);
//print_r($_SERVER)
?>
<h2><p style="color:#993344">Hello,<?$new_user->ShowName()?></p></h2>
<table align='right' bgcolor='#DDDDDD' bordercolor='darkblue'>
<tr>
<td>Name</td><td>Email</td><td>Country</td><td>Region</t d><td>City</td>
</tr>
<tr>
<td><?$new_user->ShowName()?></td><td><?$new_user->ShowEmail()?></td><td><?$new_user->ShowCountry()?></td><td><?$new_user->ShowRegion()?></td><td><?$new_user->ShowCity()?></td>
</tr>
</table>
<a href='../edit.php'>Edit</a>

Спустя 7 минут, 32 секунды (8.03.2012 - 00:07) inpost написал(а):
error_reporting(E_ALL); // в самое начало
+ код оформляй:
[php][/php]

Спустя 1 минута, 40 секунд (8.03.2012 - 00:09) inpost написал(а):
+ покажу строчку, где у тебя сессионная переменная создаётся.
Я в твоём коде её не вижу.

Спустя 2 минуты, 33 секунды (8.03.2012 - 00:11) Guest написал(а):
function SessionStart()
{
$_SESSION['id'] = $this->id;
$_SESSION['email'] = $this->email;
}

Спустя 2 минуты, 21 секунда (8.03.2012 - 00:14) killer8080 написал(а):
Цитата (johniek_comp @ 7.03.2012 - 22:14)
killer8080
Цитата
только если не работают куки.

почему? объясни...

johniek_comp
стандартные сессии php могут передавать идентификатор 2-мя способами.
1-й основной - через куки
2-й - (если не работает первый и включена опция session.use_transid) через GET и POST запросы. В этом случае sessio_start() запускает буферизацию вывода, и ко всем местным ссылкам дописывает идентификатор сессии. Так же ко всем формам добавляется скрытый инпут с идентификатором. Плюс модифицируются остальные теги, перечисленные в опции url_rewriter.tags. При переходах по ссылкам или сабмите форм, идентификатор сессий будет передаваться, при редиректе через header он автоматически дописываться естественно не будет, об этом уже должен заботится разработчик.

Спустя 2 минуты, 34 секунды (8.03.2012 - 00:16) johniek_comp написал(а):
Если речь зашла о js, то переадресацию вроде можно сделать так:
 window.location.href = "http://www.phpforum.ru"


Спустя 2 минуты, 58 секунд (8.03.2012 - 00:19) inpost написал(а):
Опять какие-то огрызки.
Ты можешь код написать на белом листе.
Создать в 3 строчки формочку, в 3 строчки запись сессии + переадресация. А на новой странице проверить, есть ли она....

Спустя 17 минут, 20 секунд (8.03.2012 - 00:36) zebulun написал(а):
проверял, ее нет,
а код я написал весь, как просили, только без подключаемого
class_user.php

но описания методов из него я вылаживал тоже,

вообщем после хедера сессии у меня нет,
куки , я не понял , как они не работают , ну в браузере они включены, или что не так , где они могут работать можете объяснить

Спустя 3 минуты, 57 секунд (8.03.2012 - 00:40) inpost написал(а):
Ну так сделай простой файл и покажи, как проверяешь.

Спустя 9 минут, 6 секунд (8.03.2012 - 00:49) zebulun написал(а):
error_reporting(E_ALL); я тоже добавил, но где там искать ошибку?там много Notice

Спустя 3 минуты, 34 секунды (8.03.2012 - 00:53) Guest написал(а):
я проверял так же как и m4a1fox на первой странице, тоже самое сессия не работает

Спустя 1 минута, 52 секунды (8.03.2012 - 00:55) Winston написал(а):
Цитата (zebulun @ 7.03.2012 - 23:49)
там много Notice

В этих нотисах возможно и зарыта собака.

Спустя 1 минута, 5 секунд (8.03.2012 - 00:56) zebulun написал(а):
туда тоже вставил error_reporting(E_ALL); - ничего не показывает!!!

Спустя 2 минуты, 32 секунды (8.03.2012 - 00:59) killer8080 написал(а):
Цитата (zebulun @ 7.03.2012 - 23:49)
error_reporting(E_ALL); я тоже добавил, но где там искать ошибку?там много Notice

ну так наверно у тебя был вывод ошибок перед session_start(), потому сессии и не работают.
Покажи что там в нотисах.

Спустя 2 минуты, 27 секунд (8.03.2012 - 01:01) zebulun написал(а):
нотисы о моих константах не определенных, в этом файле, это не важно, в простейшем коде от m4a1fox (на 1-й странице было дело) вставил error_reporting(E_ALL);
ничего не пишет, СОБАКА, и сессия не пашет,

Спустя 1 минута (8.03.2012 - 01:02) inpost написал(а):
Если много нотайсов, то надо переписывать сайт sad.gif

Не вставляй код m4a1fox, сделай свой, как я описал...

Спустя 7 минут, 37 секунд (8.03.2012 - 01:10) johniek_comp написал(а):
zebulun
inpost
а где собственно код m4a1foxа?

Спустя 3 минуты, 47 секунд (8.03.2012 - 01:13) zebulun написал(а):
я не понял как, но код заработал, всем большое спс
вставлял error_reporting(E_ALL); в оба файла, потом в первом закомментил, и заработало - чудеса,если кому интересно завтра отпишусь, в любом случае всем спасибо за помощь!!

Спустя 1 минута, 51 секунда (8.03.2012 - 01:15) Guest написал(а):
johniek_comp, извиняюсь я о вашем коде вел речь

Спустя 10 минут, 18 секунд (8.03.2012 - 01:26) inpost написал(а):
johniek_comp
Все тебя ругают, а тут впервые твой код стал реально кому-то полезным... и на тебе, слава ушла другим... печалька laugh.gif laugh.gif laugh.gif

Спустя 3 минуты, 11 секунд (8.03.2012 - 01:29) johniek_comp написал(а):
inpost
Угу, я уже и привыкаю потихоньку sad.gif

Спустя 1 минута, 2 секунды (8.03.2012 - 01:30) zebulun написал(а):
НЕ, СПАСИБО ТЕБЕ! Я виноват, сам не понял, что случилось, код заработал, но я ничего не менял, вроде!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.