Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Не могу разобраться с сессией


Автор: Falcon 17.10.2008, 12:43
я создаю сессию на стартовой странице, сохраняю в переменную сессии логин, почему то на этой же странице переменная сессии инициализированна и равна логину, а на следующей странице она не инициализированна.
страница 1 стартовая
Код

<?
session_start();
if(isset($_POST['login'])){
$login1 = $_POST['login'];
$_SESSION['login']=$login1;
$login1=$_SESSION['login'];
echo " $login1";
}
//...
//тут идет графика в основном
//...
echo "<a href = '1.php'>ссылка</a>";
 выводит пароль, но как только перехожу на другую старницу там этой переменной нет.

страница 2 
Код

<?
if (isset($_SESSION['login']))
{ 
echo "<html>";
 echo "<head>";
 echo "</head>";
 echo "<body>";
//...
  echo "$pass";
 echo "</body>";
echo "</html>";
 
} echo "Нет прав";
$l = $_SESSION['login'];
echo "$l";
?>
 последние две строки - попробовать есть там что или нет

Автор: bars80080 17.10.2008, 13:08
а в начале второй страницы стоит session_start(); ?

Автор: krundetz 17.10.2008, 14:04
Falcon, да уж как сказал bars80080, нужно стартовать сесию прежде чем работать с её переменными.

обясни мне пожалуйста логику работы вот этого куска кода
Код

$login1 = $_POST['login'];
$_SESSION['login']=$login1;
$login1=$_SESSION['login'];


не проше ли так?

Код

$_SESSION['login'] = $_POST['login'];
$login1 = $_SESSION['login'];


или даже так?

Код

$login1 = $_SESSION['login'] = $_POST['login'];

Автор: HackMan 18.10.2008, 15:58
Цитата(krundetz @  17.10.2008,  14:04 Найти цитируемый пост)
не проше ли так...

и то, как-то сомневаюсь в необходимости переменной $login1

Автор: Falcon 20.10.2008, 09:40
а ясно я не открывал сессию во второй страничке, я думал она запускается один раз. а на переменную $login1 не обращайте внимания я эксперементировал долго то проверял передается ли переменная через POST, потом проверял есть ли переменная в SESSION а потом не стал убирать их, все равно не мешают. Суть все равно в другом.

Автор: krundetz 20.10.2008, 19:24
Falcon, здесь у тебя листинг маленький и все видно но когда листинг большой старайся убирать все ненужные переменные и самому будет понятьнее что к чему и другим легче разобраться и помочь если чче.

Автор: Falcon 21.10.2008, 11:47
опять не получается 
это стартовая страница:
Код

<?
session_start();
$_SESSION['login'] = Админ;
$pass = $_SESSION['login'];
echo "<html>";
 echo "<head>";
 echo "</head>";
 echo "<body>";
echo "<a href = '1.php'>ссылка </a>";
  echo "$pass";
 echo "</body>";
echo "</html>";
?>


а во второй так и не появилась переменная login, хотя я открыл сессию:
Код

<?
session_start();

echo "<html>";
 echo "<head>";
 echo "</head>";
 echo "<body>";

  echo "$pass";
 echo "</body>";
echo "</html>";
 

$l = $_SESSION['login'];
echo = "$l";

?>

Автор: bars80080 21.10.2008, 13:38
а что это такое: echo = "$l"; ?

Автор: Falcon 21.10.2008, 14:09
это переменная "Л" по нашему

Автор: skyboy 21.10.2008, 14:27
Falcon, что ты чему присваиваешь? оператору echo присваиваешь значение переменной $l?

Автор: krundetz 21.10.2008, 22:26
Falcon, могу посоветовать быть немного внимательние, а также набивать и набивать руку чтобы вот такое:
Код

echo = "$l";

не могло возникнуть по определению.

Интересует так же вот что зачем ты создаешь новую переменную если в дальнейшем ты ее используешь только в одном месте?

Ище обрати внимание на 9 строчку во втором листенги где у тебя используется неинициированая переменная.

Автор: Falcon 22.10.2008, 15:20
да, что то я пропустил это. Исправил, но все равно не работает

Добавлено через 14 минут и 21 секунду
у меня еще один вопрос возник по этой теме, я начал делать стартовую страницу index.php, уже почти доделал. на ней общая информация и формочка авторизации. А там куда я хотел поместить сайт стартовая страница должна быть с расширением html. 1. есть такие сайты бесплатных хостингов где можно использовать стартовую страницу PHP ? 2. У меня на странице после авторизации форма передает данные о логине и пароле методом POST этой же странице, т.е. форма находится на странице Index.php и передает данные в нее же. Если я сделаю стартовую страницу в формате html, и вставлю в нее кусочки php то можно будет так же передавать данные этой же страничке?

Автор: bars80080 22.10.2008, 15:45
Цитата(Falcon @  22.10.2008,  15:20 Найти цитируемый пост)
у меня еще один вопрос возник по этой теме, я начал делать стартовую страницу index.php, уже почти доделал. на ней общая информация и формочка авторизации. А там куда я хотел поместить сайт стартовая страница должна быть с расширением html. 1. есть такие сайты бесплатных хостингов где можно использовать стартовую страницу PHP ? 2. У меня на странице после авторизации форма передает данные о логине и пароле методом POST этой же странице, т.е. форма находится на странице Index.php и передает данные в нее же. Если я сделаю стартовую страницу в формате html, и вставлю в нее кусочки php то можно будет так же передавать данные этой же страничке? 


это всё выясняется на хостинге, поддерживает ли он пхп?
этот да http://www.eomy.net/


Цитата(Falcon @  22.10.2008,  15:20 Найти цитируемый пост)
Исправил, но все равно не работает

во второй странице всё удали и напиши:
Код

<?php
error_reporting(E_ALL);
session_start();
var_dump($_SESSION);

?>
что получится?

Автор: Falcon 22.10.2008, 15:53
bars80080, сделал, вот что написал:

Warning: session_start() [function.session-start]: open(E:\PHP\sessiondata\sess_2c664c3aca6eed2b47be150f44945f5a, O_RDWR) failed: Permission denied (13) in c:\web5\www\1\1.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at c:\web5\www\1\1.php:3) in c:\web5\www\1\1.php on line 3

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\web5\www\1\1.php:3) in c:\web5\www\1\1.php on line 3
array(0) { } 
Warning: Unknown: open(E:\PHP\sessiondata\sess_2c664c3aca6eed2b47be150f44945f5a, O_RDWR) failed: Permission denied (13) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (E:\PHP\sessiondata) in Unknown on line 0

Добавлено через 47 секунд
у меня со страницы 2.php переходит на страницу 1.php 

Автор: Falcon 23.10.2008, 09:51
все я сделал, у меня была ошибка в файле php.ini там путь был на диск Е а у меня такого диска нет, я качал по учебнику готовый ини файл, вот он и  заточен был не под меня.

Добавлено через 7 минут и 20 секунд
bars80080, там уже не дают бесплатные хостинги

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)