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

Форум PHP

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

 

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

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

тема: Потеря сессии
 
 автор: phpuser   (25.12.2007 в 06:06)   письмо автору
 
 

Понять не могу, в чем причина - между страницами сессия передается (используя переход по гиперсылке). Но когда я пытаюсь ввести данные в форму, передать их и выдернуть на следующей странице (проверить - работает ли сессия) - отображается лишь пустой экран.
isset($_SESSION['user']) также выдает результат об отсутствии значения

ЗЫ: 1) session_start() в начале файла использую
2) с сессиями работаю с $_SESSION

   
 
 автор: LordLeo   (25.12.2007 в 07:38)
 
   для: phpuser   (25.12.2007 в 06:06)
 

Возможно ты поставил тег </form> до тега <input type="submit" ...>

   
 
 автор: phpuser   (25.12.2007 в 07:44)   письмо автору
 
   для: LordLeo   (25.12.2007 в 07:38)
 

нет, там все в порядке
кажется, что проблема в настройках php.ini, но какая именно?

   
 
 автор: Genki   (25.12.2007 в 08:16)   письмо автору
 
   для: phpuser   (25.12.2007 в 07:44)
 

Возможно используется переадресация вроде header('location:site/page.php') тогда нужно передавать сессию вручную

   
 
 автор: phpuser   (25.12.2007 в 09:08)   письмо автору
 
   для: Genki   (25.12.2007 в 08:16)
 

>Возможно используется переадресация вроде header('location:site/page.php') тогда нужно передавать сессию вручную

В таком случае, как мне перебросить человека после успешной авторизации на закрытую часть сайта?

   
 
 автор: phpuser   (25.12.2007 в 09:04)   письмо автору
 
   для: phpuser   (25.12.2007 в 07:44)
 

Ребят, объясните мне, пожалуйста вот этот пример из книги "ПХП в примерах"


<?php
session_start
();
?>
<form method='post'>
Name: <input type='text' name='name' value='<?php echo $_SESSION['user']; ?>'  /><br/>
Password: <input type='password' name='password' value='<?php echo $_SESSION['password']; ?>'  /><br/>
<input type='submit' name='submit'  value='Submit' />
</form>

<?php
   
echo 'Здравствуйте, '.$_SESSION['user'];
?>


вопрос, где происходит инициализация $_SESSION['user']?
получается, что в value содержится пустое значение и переменная сессии никуда не передается

   
 
 автор: Faraon   (25.12.2007 в 09:14)   письмо автору
 
   для: phpuser   (25.12.2007 в 09:04)
 

Так переменной сессии сначала надо присвоить значение, например
$_SESSION['user']="Вася";
А так получается, что она у Вас пустая.

   
 
 автор: phpuser   (25.12.2007 в 09:53)   письмо автору
 
   для: Faraon   (25.12.2007 в 09:14)
 

Все, я разобрался

index.php

<?php
    
    
/* инициализируем сессию */
    
session_start();
    
/* файл перебросить */
    
$a "handler.php";

    
/* если кнопочка нажата, то*/
    
if($_POST['submit'])
    {
        
/* выхватываем значения из полей ввода*/
        /* и инициализируем ими значения переменных сессии */
        
$_SESSION['user'] = $_POST['name'];
        
$_SESSION['pass'] = sha1($_POST['send']);

        
/* пробная печать, что находится то, что нужно*/
        
echo $_SESSION['user'];
        echo 
"<br />";
        echo 
$_SESSION['pass'];

        
/* если значение сессии установленно, кидаем юзера на другой файл*/
        
if(isset($_SESSION['user']) && isset($_SESSION['pass']))
        {
            
header ("Location: "$a);
        }
        
/* иначе ошибка*/
        
else
        {
            exit(
'Any error has occured');
        }
    }
    
?>
<html>
<head></head>
<body>
    <form method='post'> 
        Name: <input type='text' name='name'><br />
        Password: <input type='password' name='send' ><br />
        <input type='hidden' name='session_id' value='<?php echo session_id();?>'>
        <input type="submit" name="submit" value="Submit" />
    </form>
</body>
</html>


handler.php

<?php

        session_start
();

        echo 
$_SESSION['user'];
        echo 
'<br />';
        echo 
$_SESSION['pass'];
        
?>

   
 
 автор: vitali   (25.12.2007 в 10:57)   письмо автору
 
   для: phpuser   (25.12.2007 в 09:53)
 

В строке <input type='hidden' name='session_id' value='<?php echo session_id();?>'>
в атрибуте value значение лучше указать в двойных кавычках.

   
Rambler's Top100
вверх

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