Передать переменные между двумя страницами PHP без использования формы или URL-адреса страницы
Я хочу передать пару переменных со страницы PHP на другую. У меня нет формы, переменные - это некоторые сообщения, которые целевая страница хочет отобразить, если что-то пойдет не так. Как передать эти переменные на другую страницу PHP, сохраняя при этом невидимый?
например. скажем, что у меня есть эти две переменные:
//Original page
$message1 = "A message";
$message2 = "Another message";
и я хочу передать их с page1.php на страницу2.php. Я не хочу передавать их через URL.
//I don't want that
'page2.php?message='.$message1.'&message2='.$message2
Есть ли способ (возможно, через $_POST?)? Если кто-то задается вопросом, почему я хочу, чтобы они были невосприимчивы, я просто не хочу иметь большой URL-адрес с такими параметрами, как "& message = Problem при загрузке вашего файла. Это недействительный .zip файл", и у меня нет много времени, чтобы изменить перенаправления моей страницы, чтобы избежать этой проблемы.
Ответы
Ответ 1
Сессии будут хорошим выбором для вас. Взгляните на эти два примера из Руководство PHP:
Код страницы1.php
<?php
// page1.php
session_start();
echo 'Welcome to page #1';
$_SESSION['favcolor'] = 'green';
$_SESSION['animal'] = 'cat';
$_SESSION['time'] = time();
// Works if session cookie was accepted
echo '<br /><a href="page2.php">page 2</a>';
// Or maybe pass along the session id, if needed
echo '<br /><a href="page2.php?' . SID . '">page 2</a>';
?>
Код страницы 2.php
<?php
// page2.php
session_start();
echo 'Welcome to page #2<br />';
echo $_SESSION['favcolor']; // green
echo $_SESSION['animal']; // cat
echo date('Y m d H:i:s', $_SESSION['time']);
// You may want to use SID here, like we did in page1.php
echo '<br /><a href="page1.php">page 1</a>';
?>
Чтобы очистить вещи - SID - это предопределенная константа PHP, которая содержит имя сеанса и его идентификатор. Пример значения SID:
PHPSESSID=d78d0851898450eb6aa1e6b1d2a484f1
Ответ 2
Вот краткий список:
-
JQuery с JSON. (http://www.w3schools.com/xml/xml_http.asp)
-
$_ СЕССИЯ - возможно, лучший способ
-
Пользовательский cookie - не будет * всегда * работать.
-
HTTP-заголовки - некоторый прокси-сервер может блокировать его.
-
база данных, такая MySQL, Postgres или что-то еще такое Redis или Memcached (например, аналогичное домашнему сеансу, "заблокировано" по IP-адресу)
-
APC - аналогично базе данных, не будет * всегда * работать.
-
HTTP_REFERRER
-
URL-адрес хеш-параметра, например. http://domain.com/page.php#param - вам понадобится JavaScript для сбора хэша. - gmail сильно использует это.
Ответ 3
<?php
session_start();
$message1 = "A message";
$message2 = "Another message";
$_SESSION['firstMessage'] = $message1;
$_SESSION['secondMessage'] = $message2;
?>
Сохраняет сеансы на странице 1, затем на стр. 2 do
<?php
session_start();
echo $_SESSION['firstMessage'];
echo $_SESSION['secondMessage'];
?>
Ответ 4
Вы пытались добавить оба значения в $_SESSION
?
Затем в верхней части страницы page2.php просто добавьте:
<?php
session_start();
Ответ 5
Используйте сеансы.
Page1:
session_start();
$_SESSION['message'] = "Some message"
Стр .2:
session_start();
var_dump($_SESSION['message']);
Ответ 6
Просто используйте переменные сеанса.
http://www.w3schools.com/php/php_sessions.asp