|
|
|
| В рнр-файле х.рнр формируется переменная $x, а в конце всех действий выполняется код
echo "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0; URL=admm.php;'></HEAD></HTML>";
|
Как в файле х.рнр записать переменную $x в глобальные переменные с тем, что бы затем извлечь её в файле admm.php? | |
|
|
|
|
|
|
|
для: Владимир55
(31.01.2008 в 10:59)
| | Вообще рефреш обычно как раз и используют для того, чтобы обнулить массив POST.
Может, если подробнее изложить задачу, то появятся другие пути решения? | |
|
|
|
|
|
|
|
для: Владимир55
(31.01.2008 в 10:59)
| | Использовать GET:
echo "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0; URL=admm.php?x=".$x.";'></HEAD></HTML>";
|
Или сессии. | |
|
|
|
|
|
|
|
для: Thrasher
(31.01.2008 в 11:09)
| | Через GET, сессии и текстовые файлы я уже научился. А вот подумал, нельзя ли это же сделать через POST? Ведь когда я использую форму (типа <form method="POST" >), то значения уходят в глобальные переменные. А нет ли такого оператора, который загнал бы их туда принудительно,без формы? | |
|
|
|
|
|
|
|
для: Владимир55
(31.01.2008 в 11:16)
| | Запросто. Вот только каковы цели? | |
|
|
|
|
|
|
|
для: Loki
(31.01.2008 в 11:48)
| | - | |
|
|
|
|
|
|
|
для: Владимир55
(31.01.2008 в 10:59)
| | Только в сессию или куку. иначе никак. ну разве только что записать в файл, но это муторно и долго. а зачем делается рефреш? | |
|
|
|
|
|
|
|
для: Петр
(31.01.2008 в 11:13)
| | Loki
Запросто. Вот только каковы цели?
Просто хочу этому научиться, освоить еще один способ передачи данных между файлами.
На будущее.
Как это делается через POST? | |
|
|
|
|
|
|
|
для: Владимир55
(31.01.2008 в 13:24)
| | Параметры POST передаются броузером в теле запроса. Находясь на сервере вы не сможете заставить броузер клиента отправить подобные параметры. Вы можете только с помощью скрипта прикинуться броузером, отдав другому скрипту заголовки, которые бы отправил настоящий броузер.
Так что сделать это можно. Но в пределах одного сервера нецелесообразно. | |
|
|
|
|
|
|
|
для: Владимир55
(31.01.2008 в 13:24)
| | Sockets | |
|
|
|
|
|
|
|
для: Владимир55
(31.01.2008 в 13:24)
| | Если не использовать форм, то передать значение методом POST можно через сокеты, такой способ подробнее описывается в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=1879. | |
|
|
|
|
|
|
|
для: cheops
(31.01.2008 в 15:03)
| | Более-менее проясняется дело...
Скажите, а что же за способ, предложенный mihdan?
У меня он что-то не заработал... | |
|
|
|
|
|
|
|
для: Владимир55
(31.01.2008 в 15:40)
| | >У меня он что-то не заработал...
Неудивительно. К передаче данных между скриптами он не имеет никакого отношения. | |
|
|
|
|
|
|
|
для: Владимир55
(31.01.2008 в 15:40)
| | >записать переменную $x в глобальные переменные
код был дан для этого | |
|
|
|
|
|
|
|
для: Владимир55
(31.01.2008 в 10:59)
| | | |
|
|
|
|
|
|
|
для: mihdan
(31.01.2008 в 13:27)
| | Если данные через пост используй вот кусочек :
<?
var_dump($_POST); // вывести на экран все переданные переменные
?>
|
Если нада потом их использовать, то все просто как и с любым массивом:
<?
$name = $_POST['name'];
echo 'HELLO WORLD! My name is '. $name;
?>
|
| |
|
|
|
|
|
|
|
для: divbyzero
(01.02.2008 в 01:25)
| | Я в одном файле писал
$x = "Проба";
$GLOBALS['test'] = $x;
echo "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0; URL=admm.php;'></HEAD></HTML>";
| а в другом, на который осуществляется переход, было
$test = $_POST['test'];
echo $test;
|
И ничего не выводилось. | |
|
|
|
|
|
|
|
для: Владимир55
(01.02.2008 в 11:30)
| |
Если нужен ПОСТ - используй СОКЕТЫ
<?
// Я в одном файле писал
session_start();
$x = "Проба";
$_SESSION['test'] = $x;
echo "<HTML><HEAD><META HTTP-EQUIV='Refresh' CONTENT='0; URL=admm.php;'></HEAD></HTML>";
//а в другом, на который осуществляется переход, было
session_start();
$test = $_SESSION['test'];
echo $test;
//И все выводилось.
?>
|
| |
|
|
|
|
|
|
|
для: mihdan
(01.02.2008 в 11:34)
| | И не получилось!
На первой странице пишу такой код:
session_start();
$x = "Проба";
$_SESSION['test'] = $x;
|
Получаю диагностическое сообщение:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at w:\home\lucky\www\999.php:9) in w:\home\lucky\www\999.php on line 11
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at w:\home\lucky\www\999.php:9) in w:\home\lucky\www\999.php on line 11
В строке 11 - session_start();
Пробовал и на Денвере, и на сервере. | |
|
|
|
|
|
|
|
для: Владимир55
(01.02.2008 в 14:26)
| | Значит у вас что-то выводится на экран до session_start(); | |
|
|
|
|
|
|
|
для: Владимир55
(01.02.2008 в 14:26)
| | Куки, сессии, отправка заголовков должны происходить до отправки любой информации в окно браузера, т.е. до любого вывода echo, print или непосредственного вывода вне тэгов <?php и ?>. Это связано с тем, что HTTP-заголовки передаются перед всеми данными и когда происходит вывод в окно браузера PHP вынужден их пред этим отослать клиенту. Поэтому повторно, после вывода информации в браузер он не может работать с куками, сессиями и отправлять заголовки.
Если вывод текста до отправки заголовков необходим следует воспользоваться функциями управления вывода, позволяющих задерживать вывод информации в браузер.
http://www.softtime.ru/group/id_group=12 | |
|
|
|
|
|
|
|
для: cheops
(01.02.2008 в 15:02)
| | Понятно, теперь работает.
В свое время я с куками также барахтался, и это очень неудобно. Надеялся, что сессии лишены этого недостатка, ан нет...
А для сокетов тоже такое требование - отсутствие предшествующих обращений к броузеру? В Самоучителе я что-то не нашел информации по сокетам. Где об этом можно прочесть попроще? | |
|
|
|
|
|
|
|
для: Владимир55
(01.02.2008 в 15:21)
| | >В свое время я с куками также барахтался, и это очень неудобно. Надеялся, что сессии лишены этого недостатка, ан нет...
Попробуй первой строкой в файле написать ob_start(); избавишься от этого - можешь заголовки посылать в любое время
>
>А для сокетов тоже такое требование - ?
Нет | |
|
|
|
|
|
|
|
для: mihdan
(01.02.2008 в 18:00)
| | Но где то придется вставить и ob_end_flush() ?
Так? | |
|
|
|
|
|
|
|
для: Владимир55
(01.02.2008 в 18:33)
| | зачем? вы пробуйте - вопросов меньше будет | |
|
|
|