duddeniska
Освоившийся
Дата регистрации:
22.06.2013 22:04:04
Сообщений: 20
Доброй ночи. Делаю задание по редиректу. Кратко о задании
Есть два поля, мы их заполняем, нажимаем кнопку отправить, в файле script.php считается это сумма и делаем редирект обратно на index.php где и выводим сумму их.
Как можно передать файлы вычисленные в одном файле в другой? Точнее я сделал это через сессии, но мы их еще не проходили с вами поэтому жутко интересно как это сделать без сессий? ниже код
index.php----------------------
<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>111</title>
</head>
<body>
<form name="myForm" action="script.php" method = "get">
<table>
<tr>
<td><input type="text" name="n_1" value=""/></td>
</tr>
<tr>
<td><input type="text" name="n_2" value=""/></td>
</tr>
<tr>
<td><input type="text" name="n_3" value=""/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="calc" value="ОТПРАВИТЬ"/></td>
</tr>
</table>
</form>
<?php
echo 'number = ' . $_SESSION['var'];
?>
</body>
</html>
script.php--------------------------
<?php
session_start();
unset($_SESSION['var']);
$n_1=$_GET[n_1];
$n_2=$_GET[n_2];
$var=$n_1+$n_2;
$_SESSION['var'] = $var;
header("Location: index.php"
exit;
?>
Подскажите подробно как сделать без сессий,! Понимаю что методом post или get но не догоняю! Спасибо Михаил!
ilyadenisovid
Мастер
Дата регистрации:
28.01.2013 18:32:29
Сообщений: 213
Это очень легко
Файл index.php:
<?php
session_start();
?>
<form action = "script.php" method = "post">
<input type = "text" name = "n_1" />
<br />
<input type = "text" name = "n_2" />
<br />
<input type = "submit" name = "sum" value = "Готово" />
</form>
<br />
Результат: <?php echo $_SESSION["sum"];?>
Файл script.php:
<?php
session_start();
$_SESSION["sum"] = $_POST["n_1"] + $_POST["n_2"];
header("Location: index.php"
?>
duddeniska
Освоившийся
Дата регистрации:
22.06.2013 22:04:04
Сообщений: 20
Если бы ты посмотрел мой скрипт то ты бы понял что я сделал это через сессии. Вопрос как можно сделать это не через сессии.?
ilyadenisovid
Мастер
Дата регистрации:
28.01.2013 18:32:29
Сообщений: 213
Вот через JS
<html>
<head>
<title>Страница</title>
<script>
function summa(form) {
var num1 = parseInt(form.n_1.value);
var num2 = parseInt(form.n_2.value);
var sum = num1 + num2;
if(sum) {
alert(sum);
return true;
}
else {
return false;
}
}
</script>
</head>
<body>
<form method = "post" action = "" name = "form_test" onsubmit = "return summa(this);">
<input id = "n1" type = "text" name = "n_1" />
<br />
<input id = "n2" type = "text" name = "n_2" />
<br />
<input type = "submit" name = "sum" value = "Готово" />
</form>
</body>
</html>
RussianPro
Эксперт
Дата регистрации:
14.07.2011 01:32:38
Сообщений: 114
Можно сделать не через сессии, а через GET и POST запросы.
<?php
if (isset($_GET['result'])) {
echo 'Результат: '.$_GET['result'];
}
?>
<form action = "script.php" method = "post">
<input type = "text" name = "n_1" />
<br />
<input type = "text" name = "n_2" />
<br />
<input type = "submit" name = "sum" value = "Готово" />
</form>
В script.php пишем
<?php
$result = $_POST['n_1'] + $_POST['n_2'];
headers("Location: ".$_SERVER['HTTP_REFERER']."&result=$result"
?>
duddeniska
Освоившийся
Дата регистрации:
22.06.2013 22:04:04
Сообщений: 20
Ты крут!) не знал что у headers можно 3 параметром передать глобальную ! Спасибо!
evolution10121987
Новичок
Дата регистрации:
24.09.2014 18:19:56
Сообщений: 2
а ошибка не смущает?
Fatal error: Call to undefined function headers() in C:\OpenServer\domains\test.local\script.php on line 3
dan
Новичок
Дата регистрации:
30.01.2016 10:39:45
Сообщений: 5
функция header, а не headers
header("Location: ".$_SERVER['HTTP_REFERER']."?result=$result"