Как получить почтовые данные после отправки формы

0

Я новичок в PHP, и я пытаюсь получить данные после того, как моя форма была отправлена. Проблема в том, что я могу получить данные сообщения на моей странице success.php, но если я уйду от этой страницы и перейду к другой, я больше не смогу получить значения. Поэтому мой вопрос в том, как я могу получить данные на другой странице?

Моя форма

<form name="message" method="post" action="success.php">
First Name: <input type="text" name="firstname" id="firstname"/>
<p>
Last Name: <input type="text" name="lastname" id="lastname"/>
<p>
Message:<br />
<textarea name="message" id="message" cols="45" rows="5"></textarea>
<br />
<input type="submit" name="submit" value="Submit"></input>
</form>

Success.php

<?php
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$message = $_POST['message'];
echo "Firstname: $firstname<br/>";
echo "Lastname: $lastname<br/>";
echo "Message $message";
?>
Теги:

3 ответа

0
Лучший ответ

Вы можете сохранить значения в сеансе после того, как ваша форма была отправлена в файле success.php.

<?php
if (isset($_POST['firstname'], $_POST['lastname'], $_POST['message'])) {
session_start();
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname']; 
$message = $_POST['message'];

// store session data
$_SESSION['firstname'] = $firstname;
$_SESSION['lastname'] = $lastname;
$_SESSION['message'] = $message;
}
?>

А затем, чтобы получить данные на другой странице, вы могли бы использовать.

<?php
if (!isset($_SESSION)) {
session_start();
}
if (isset($_SESSION['firstname']) &&($_SESSION['lastname']) &&($_SESSION['message'])){
$firstname = $_SESSION['firstname'];
$lastname = $_SESSION['lastname'];
$message = $_SESSION['message'];
echo $firstname;
echo $lastname;
echo $message;
}
?>
  • 0
    Я не -1, но я могу только догадываться, кто бы это ни сделал, потому что там, где вы получаете сессионные переменные, у вас есть потенциал для неопределенных переменных.
  • 1
    Это на самом деле работает. Однако у меня есть еще один вопрос: что если пользователь вернется на страницу, где находится форма, смогут ли они снова изменить значения, повторно отправив форму? Если так, есть ли способ остановить это?
0

В значительной степени поставил тот же ответ, но уточнил:

Эти значения можно сохранить в массиве сеансов.

$_SESSION['example'] = "testone";
$_SESSION['exampletwo'] = "testtwo";

а затем либо проверить конкретные переменные, либо пропустить их текущие:

$example;
if (isSet($_SESSION['example'])) {
    $example = $_SESSION['example'];
} else {
    $example = "default";
}
echo "example content: $example";

echo "Session array contents:";
echo "<pre>";
var_dump($_SESSION);
echo "</pre>";
echo "Session from for loop:"
for ($_SESSION as $name => $value) {
    echo "$name => $value";
}
-2

ЗАРЕГИСТРИРОВАННЫЕ ЗНАЧЕНИЯ НА СЕССИИ

    <?php
session_start();
    $firstname = $_SESSION['firstname'];
    $lastname = $_SESSION['lastname'];
    $message = $_SESSION['message'];
    ?>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню