mike_pmk
23.04.2015 - 17:40
Есть код:
<?php
/* создаем сессию */
session_start();
/* проверяем отправлена ли форма методом POST */
if($_SERVER['REQUEST_METHOD'] == POST){
/* если форма отправлена, получаем данные */
$firstName = $_POST['firstName'];
/* записываем полученные данные в сессию */
$_SESSION['firstName'] = $firstName;
}else{
/* когда возвращаемся на эту страницу методом GET, записываем данные из сессии в переменные */
$firstName = $_SESSION['firstName'];
}
?>
<!-- обычная форма отправки данных -->
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
Введите ответственного менеджера:<br>
<input type="text" name = "firstName"><br>
<input type="submit">
</form>
<a href='http://oliva.x7p.ru/session_2.php'><img id='event' src="http://oliva.x7p.ru/next.png" /></a>
По первой кнопке происходит запись в сессии, по второй переход на следующую страницу
Требуется объединить 2 кнокпи в одну, то есть записать и перейти.
Мучаюсь третий день. Знаний не хватает. Просьба помочь
inpost
23.04.2015 - 17:45
mike_pmk
$firstName = $_POST['firstName'];
$_SESSION['firstName'] = $firstName;
Ты будешь крайне удивлён, то первая строчка не получает данные, а данные УЖЕ есть, просто ты создаёшь ещё одну переменную с таким же значением, как и первая переменная.
А дальше, что значит перейти на другую страницу? Ты имеешь ввиду кнопку NEXT нажатЬ? Ну её нажимать не надо, сделай переадресацию через функцию
header();
Об этом есть в документации на php.net
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
mike_pmk
23.04.2015 - 18:53
Спасибо за ответ, но:
насколько я понимаю, тут есть проверка есть ли данные или нет, и если их нет их надо ввести в форме, либо заменить в той же форме.
В любом случае пользователь сначала отправляет данные в сессию по кнопке отправить, далее я искусственно сделал кнопку next для перехода
По хорошему надо сделать сразу по кнопке "отправить" и перезапись(запись) и переход.
header(); не подходит, он сразу перенаправляет в любом случае, а надо, если что-то введено вновь и нажато "отправить".
inpost
23.04.2015 - 20:01
mike_pmkНа этом сайте при написании сообщения используется header.
if(сообщение отправлено) {
сообщение добавляется в БД;
header();
}
Делай так же.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
mike_pmk
24.04.2015 - 13:47
написал следующее:
<?php
if(isset($firstName))
{
echo "Переменная сущeствует";
header('Refresh: 10; URL=http://newcoder.ru/cat/web/');
echo 'Данная страница переехала на новое место, через 10 сек. вы автоматически будете перенаправленны на нее.';
exit;
}
else
{
echo "Переменная не существует";
}
?>
не работает ошибка
Warning: Cannot modify header information - headers already sent by
Снова нужна помощь!
Игорь_Vasinsky
24.04.2015 - 13:49
Цитата |
echo "Переменная сущeствует"; header('Refresh: 10; URL=http://newcoder.ru/cat/web/'); |
убери нафиг вывод перед отправкой заголовка. там даже пустой строки не должно быть.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker