Я хочу передать пару переменных со страницы PHP на другую. У меня нет формы, переменные – это некоторые сообщения, которые целевая страница хочет отобразить, если что-то пойдет не так. Как передать эти переменные на другую страницу PHP, сохраняя их невидимыми ?
например, допустим, что у меня есть эти две переменные:
//Original page $message1 = "A message"; $message2 = "Another message";
и я хочу передать их с page1.php на page2.php. Я не хочу передавать их через URL.
//I don't want that 'page2.php?message='.$message1.'&message2='.$message2
Есть ли способ (возможно, через $ _POST?)? Если кто-то задается вопросом, почему я хочу, чтобы они были невосприимчивы, мне просто не нужен большой URL-адрес с такими параметрами, как «& message = Проблема при загрузке файла. Это недействительный .zip-файл», и у меня мало времени для изменения перенаправления моей страницы, чтобы избежать этой проблемы.
Сессии будут хорошим выбором для вас. Взгляните на эти два примера из руководства 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 md 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
Вот краткий список:
JQuery с JSON. ( http://www.w3schools.com/xml/xml_http.asp )
$ _SESSION – возможно, лучший способ
Пользовательский cookie – не будет * всегда * работать.
HTTP-заголовки – некоторый прокси-сервер может блокировать его.
базы данных, такие как MySQL, Postgres или что-то еще такое Redis или Memcached (например, похоже на домашний сеанс, «заблокирован» по IP-адресу)
APC – похоже на базу данных, не будет * всегда * работать.
HTTP_REFERRER
URL-адрес хеш-параметра, например http://domain.com/page.php#param – вам понадобится JavaScript для сбора хэша. – Gmail сильно использует это.
<?php session_start(); $message1 = "A message"; $message2 = "Another message"; $_SESSION['firstMessage'] = $message1; $_SESSION['secondMessage'] = $message2; ?>
Сохраняет сеансы на стр. 1, затем на стр. 2
<?php session_start(); echo $_SESSION['firstMessage']; echo $_SESSION['secondMessage']; ?>
Вы пытались добавить оба в $_SESSION
?
Затем в верхней части страницы page2.php просто добавьте:
<?php session_start();
Используйте сеансы .
Страница 1:
session_start(); $_SESSION['message'] = "Some message"
Страница 2:
session_start(); var_dump($_SESSION['message']);
Просто используйте переменные сеанса.