[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вытащить значения формы из ...
alchemyst
Помогите, как можно сделать такую форму, чтобы данные сохранялись чуть дольше, чем до следующей страницы, но не в файл? Сформулировать вопрос лаконично сложно, постараюсь обяснить на примере:
Юзер вводит в форму данные (1я страница), например $email, $address, $tel ---- эти данные отправляются мне на мыло, после этого юзер перенаправляется на 2ю страницу, которая к форме отношения не имеет (до этого этапа я сделал), после чего, он кликает на 2й странице на ссылку, и переходит на 3ю страницу, где ему на экран выводятся $email, $address, $tel.

Или еще лучше, после перехода на 3ю стр., он вводит еще данные, скажем $user, а уже на 4й стр. ему выдает и $email, $address, $tel. и $user... я понимаю, что принцип одинаковый в любом случае, но какой именно принцип blink.gif

Если можно на примере, спасибо всем, кто откликнется.



Спустя 1 час, 5 минут, 55 секунд (12.07.2009 - 21:55) Nikitian написал(а):

Спустя 10 минут, 6 секунд (12.07.2009 - 22:05) stepan написал(а):
$_SESSION[]
либо через скрытые поля на форме <input type="hidden">

Спустя 18 минут, 14 секунд (12.07.2009 - 22:24) alchemyst написал(а):
Спасибо, подскажите, пожалуйста в скрипте имею сейчас:

PHP
<?php
if 
(isset ($name))
{
$name = substr($name,0,30); //Не может быть более 30 символов
if (empty($name))
{
header( 'Location: http://site.com/err1.html' ) ;
exit;
}
}
$to = "2@2.com";
$subject = "Subject";
$message = "Имя: $name"
mail ($to,$subject,$message) or print "Не могу отправить письмо !!!";
header( 'Location: http://site.com/page2.html'  ) ;

если я правильно понял, изменить надо
PHP
<?php 
session_start
();
if (isset ($_SESSION['name']))
{
$_SESSION['name'] = substr($name,0,30); //Не может быть более 30 символов
if (empty($_SESSION['name']))
{
header( 'Location: http://site.com/err1.html') ;
exit;
}
}
$to = "2@2.com";
$subject = "Subject";
$message = "Имя: $_SESSION['name']"
mail ($to,$subject,$message) or print "Не могу отправить письмо !!!";
header( 'Location: [URL=http://site.com/page2.html']http://site.com/page2.html'[/URL]  ) ;

а на той странице, где нам эти данные надо вывести на экран вставляем код
PHP
<?php 
session_start
();
форматирование и в тексте $_SESSION['name'] верно?


Спасибо за помощь.

Спустя 8 минут, 27 секунд (12.07.2009 - 22:32) Nikitian написал(а):
Неверно. У вас логическая ошибка. Если сессия пуста, то она никогда и не заполнится. Когда получаете данные, заполняйте сессию.
Скорее всего это
PHP
if (isset ($_SESSION['name']))

надо заменить на
PHP
if (isset ($name))
или на
PHP
if (!empty($name))
что в вашем случае даже предпочтительнее

Спустя 7 минут, 32 секунды (12.07.2009 - 22:39) alchemyst написал(а):
брррр что-то я совсем запутался, где надо указывать $name, a где $_SESSION['name']?, если не сложно, пожалуйста, исправьте мой код.... на готовом примере понятнее

Спустя 4 минуты, 46 секунд (12.07.2009 - 22:44) Nikitian написал(а):
PHP
<?php
if(isset($_POST['name']))$name=$_POST['name'];
elseif(isset(
$_GET['name']))$name=$_GET['name'];
elseif(isset(
$_COOKIE['name']))$name=$_COOKIE['name'];
else unset($name);
/*
Ибо способ передачи параметра неизвестен,
а register_globals off, т.к. это может стать частью
большого и пересекаться со случайными параметрами не хочется
*/
session_start();
if (!empty($name))
{
$_SESSION['name'] = substr($name,0,30); //Не может быть более 30 символов
}
if (empty($_SESSION['name']))
{
header( 'Location: http://site.com/err1.html' ) ;
exit;
}
$to = "2@2.com";
$subject = "Subject";
$message = "Имя: $_SESSION['name']"
mail ($to,$subject,$message) or print "Не могу отправить письмо !!!";
header( 'Location: http://site.com/page2.html' ) ;

Спустя 3 минуты, 1 секунда (12.07.2009 - 22:47) alchemyst написал(а):
спасибо огромное, завтра буду пробовать, сейчас к фтп сервера доступа нет обязательно отпишу! Еще раз спасибо!

Спустя 3 минуты, 37 секунд (12.07.2009 - 22:51) twin написал(а):
Вот к вопросу о стиле кода. Не делаете отступов и ляпы по этому. Вот так то на много виднее, что второе условие никогда выполнено не будет:
PHP
if (!empty($name))
{
$_SESSION['name'] = substr($name,0,30); //Не может быть более 30 символов

    
if (empty($_SESSION['name']))
    {
    
header'Location: http://site.com/err1.html' ) ;
    exit;
    }

}
Быстрый ответ:

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