PHP проблемы сеанса:как передать текущие переменные через сессию в PHP
Я использую сеанс пройти несколько varaiables из одной страницы (index.php) на другую страницу (result.php). Значения запрашиваются пользователем для ввода и после нажатия кнопки нажимается страница result.php, которая должна открываться и показывать сводку входных данных.
'//index.php
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" enctype="multipart/form-data" id="form" name="form" onsubmit="window.open('result.php', '_blank');return true;" >
Enter Your Email Here: <input name="email" id="email" type="text" placeholder="[email protected]" pattern="[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?" required title="must be [email protected]" />
Input file: <input type="file" name="file" id= "file" maxlength="90" required/>
cutoff: <input type="text" name="cutoff" placeholder="0.005" maxlength="60" />
<input type="submit" name = "submit" id="submit" value="Submit"/> </form>'
Полученная информация - адрес электронной почты, файл и разрез, также используются для запуска Perl-скрипта с использованием shell_exec. Чтобы запустить полную программу, эти значки должны присутствовать на странице result.php. Для передачи переменной я использовал сеансы php.
<?php
//session name in index.php
session_id('testsession');
session_start();
//pass variables email; file and cutoff
$_SESSION["email"] = $_POST['email'];
$_SESSION["file1"] = $filename;
$_SESSION["cutoff"] = $cutoff;
?>
И result.php значения мь как:
<?php
//start sesstion
session_id('testsession');
session_start();
echo session_id();
//values recieved by session parameter
echo '<br> email : '.$_SESSION["email"];
echo '<br> File : '.$_SESSION["file1"];
echo '<br> cutoff : '.$_SESSION["cutoff"];
?>
Вопросы и проблемы
- есть лучший способ справиться с передачи переменных на другую страницу?
- Основная проблема в этом скрипте заключается в том, что каждый раз значения сеанса, полученные методом result.php, относятся к предыдущему сеансу. , например: в файле index.php:
электронная почта - [email protected]
файл - "test.txt"
отсечка - 0,002
затем в result.php получит
электронной почты - 0
файл - 0
отсечка - 0
но в следующий раз, если я обновить снова
в index.php
электронной почты - [email protected]
файл - " 95test.txt "
cutoff - 0.52
result.php покажет
электронная почта - [email protected]
файл - "test.txt"
отсечка - 0,002
Как заботиться о сессии значения? Возможно, эта проблема связана с перенаправлением страницы на result.php, любая помощь или предложение приветствуются.
Спасибо!
Рассматривали ли вы просто отправку этих значений в URL-адрес? – OllyBarca
Вы устанавливаете идентификатор сеанса перед началом сеанса. Для ясности обрабатываемых данных мне легче отключить переменные сеанса, как только я закончил с ними. Это предотвращает запутывание данных. Если вы перенаправляете страницу в любом случае, не проще ли указать форму на result.php и обрабатывать данные там? –
Спасибо за предложения, я попробовал session_id после запуска и отключил переменные сеанса, также я попытался перенаправить страницу на result.php. но ничего не работает. он просто не передает текущее значение. есть ли другой способ справиться с этой проблемой? – nikki