Просмотр полной версии : Передача значений между страницами
programming
29.08.2009, 19:45
Есть две страницы - index1.php и index2.php.
Со страницы index1.php идёт редирект на страницу index2.php. Задача: переслать значения переменных(например, $a и $b) со страницы index1.php на страницу index2.php.
Один вариант я знаю, но он меня не совсем устраивает - это методом гет - то есть в адресной строке прописать урл с переменными. Это не подходит.. Ещё есть вариант через форму - но у меня же выполняется редирект и пользователь никакие действия не производит.. Есть ли какой-то другой вариант передачи значений? Конечно, лучше всего было бы методом пост передавать..
скрытая форма не катит? ,пробуй через сессии.
Pashkela
29.08.2009, 20:08
два скрипта - test.php и test1.php:
1. test.php:
<?php
$a = "test"';
if (strpos($_SERVER['PHP_SELF'],"test.php")) header("Location:http://путь_до_второго_скрипта/test1.php");
?>
2. test1.php:
<?php
include "test.php";
echo $a;
?>
programming
29.08.2009, 20:15
два скрипта - test.php и test1.php:
1. test.php:
<?php
$a = "test"';
header("Location:http://путь_до_второго_скрипта/test1.php");
?>
2. test1.php:
<?php
include "user.php";
echo $a;
?>
Вы уверены, что такое будет работать?
Pashkela
29.08.2009, 20:23
в смысле? Да, уверен:)
Deathdreams
29.08.2009, 20:24
2 Pashkela
почему include "user.php"; ?
index1.php
<?php
session_start();
$_SESSION['a'] = $a;
$_SESSION['b'] = $b;
?>
index2.php
<?php
session_start();
$a = $_SESSION['a'];
$b = $_SESSION['b'];
session_destroy();
?>
Pashkela, проверяй скрипты перед тем, как выкладывать...
Банально с помощью яваскрипта решается так:
<html><body>
<form id='frm' action='script2.php' method='post' style='display:none;'>
<!-- передаем тут параметры в полях -->
<input type='hidden' name='param1' value='значение'>
</form>
<script language='JavaScript'>
document.getElementById('frm').submit();
</script>
</body></html>
Соответственно, для управляемого редиректа нужно сделать функцию и вызывать ее, вроде такой:
<html><body>
<form id='frm' action='script2.php' method='post' style='display:none;'>
<!-- передаем тут параметры в полях -->
<input type='hidden' name='param1' id='param1'>
</form>
<script language='JavaScript'>
function redirect(param)
{
document.getElementById('param1').value=param;
document.getElementById('frm').submit();
}
//вызываем так:
redirect(123);
//при этом будет передан параметр param1=123 скрипту script2.php
</script>
...
Pashkela
29.08.2009, 20:34
2 Pashkela
почему include "user.php"; ?
Ошибся децл, исправил первый пост
ЗЫЖ ту Егорыч+++:
в скрипте нет ошибки, если нажать на quote или edit, однако при отображении куда-то кавычка потерялась
сколько способов для простой "задачки" :)
Можно ещё писать значения в файл и брать их от туда, а ещё лучше в БД :D
Deathdreams
29.08.2009, 20:59
Конечно, лучше всего использовать сессии.
Имхо, безопаснее.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot