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

Форум PHP

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

 

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

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

тема: Сессии...
 
 автор: Unkind™   (23.06.2006 в 13:23)   письмо автору
 
 

Хочу сделать так, чтобы пользователь ввел число и проверялось, правильно ли он это сделал...Например, такая форма (WML):


<?php
session_start
();
$code rand(10009999);
session_register($code);

header ("Content-type:text/vnd.wap.wml; charset=utf-8");
header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-relative");

echo 
'<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd"><wml>';

echo 
'<card title="Регистрация">
<p align="left">
<small>Введите число: '
.$code.'</small><br/>
<input type="text" name="chh" maxlength="5" format="*N"/><br/>

<anchor>Регистрировать
<go href="reg.php" method="post">
<postfield name="im" value="'
.session_id().'"/> //Идентификатор сессии
<postfield name="chh" value="$(chh)"/> //Число, введенное пользователем
</go></anchor><br/><small>

<a href="index.php">Главная</a><br/>
</small></p></card></wml>'
;
?>


Но как потом достать значение $code из сессии? Просто я не понимаю, что нужно с идентификатором сессии делать...После SUBMIT'а, обработчик выдает ошибку, что "$_SESSION['code'] не объявлена..."

   
 
 автор: Axxil   (23.06.2006 в 13:30)   письмо автору
 
   для: Unkind™   (23.06.2006 в 13:23)
 

Идентификатор сессии можно достать с помощью session_id()
А вообще регистрировать сессионные переменные можно просто занося их в массив

$_SESSION['code'] = session_id();

А вообще идентификатор сессии можно

   
 
 автор: Unkind™   (23.06.2006 в 13:31)   письмо автору
 
   для: Axxil   (23.06.2006 в 13:30)
 

Идентификатор сессии можно достать с помощью session_id()
Ну так когда на обработчик захожу, у меня получается создается еще одна сессия...

$_SESSION['code'] = session_id();
$_SESSION['code'] - код, введенный пользователем...Отношения к идентификатору не имеет...

Вот такой у меня обработчик:

<?php

session_id
($_POST['im']);
session_start();

header ("Content-type:text/vnd.wap.wml; charset=utf-8");
header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-cache, must-relative");

echo 
'<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.3//EN" "http://www.wapforum.org/DTD/wml13.dtd"><wml>
<card title="Регистрация">
<p align="left"><small>'
;

if(
$_POST['chh'] != $_SESSION['code'])
{
echo 
'<b>Вы ввели неверное проверочное число!</b></small></card></wml>';
exit();
}

session_destroy();
?>


Error: Notice: Undefined index: code in z:\home\localhost\www\banners\reg.php on line ...

   
 
 автор: valenok   (23.06.2006 в 13:56)   письмо автору
 
   для: Unkind™   (23.06.2006 в 13:31)
 


session_destroy();

Превратить в

$_SESSION=array();
session_destroy();


Если пользователь потом войдёт опять на страницу где есть сессион старт - у него сессия вознобновится..

   
 
 автор: Unkind™   (23.06.2006 в 13:59)   письмо автору
 
   для: valenok   (23.06.2006 в 13:56)
 

А все OK...=)

   
 
 автор: valenok   (23.06.2006 в 14:09)   письмо автору
 
   для: Unkind™   (23.06.2006 в 13:59)
 

Хотя поидее прав..
С этим session_register($code); такого быть не должно.

   
 
 автор: RV   (23.06.2006 в 14:33)   письмо автору
 
   для: valenok   (23.06.2006 в 14:09)
 

session_register($code); это вчерашний день. нынче просто $_SESSION['code'] = $code;

   
 
 автор: Unkind™   (23.06.2006 в 15:29)   письмо автору
 
   для: valenok   (23.06.2006 в 14:09)
 

А вот еще проблема: после вызова сессии в обработчике все ссылки становятся вида
http://site.ru/index.php?PHPSESSID=... Как исправить? Пробовал перед этими ссылками уничтожать сессию..Не вышло...

Похоже из-за настроек php.ini...

   
Rambler's Top100
вверх

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