0

私はすべてのphpプロジェクトで問題に直面しました.OOPを使用したので、フォームを送信するユーザーがいる場合

処理中にエラーが発生した場合は、セッションにメッセージを保存して同じページにリダイレクトします

これはサンプルであり、もちろんリダイレクトすると、そこにあったすべてのフィールドが消去されます

たとえば、登録フォームがあるとしましょう

<?php if(!empty($message)) { echo $message } ?>
<form action ="forms/register.php">
first name: <input type="text" name="first_name" />
username:<input type="text" name="username" />
<input type="submit" value = "submit" />
</form>

これがforms/register.phpのコードです

  if(isset($_POST['submit'])) {
    $first_name = $_POST['first_name'];
    $username = $_POST['username'];

 if(empty($first_name) || empty($username) {
    $session -> message("please fill in all the fields");
    redirect("../register.php");
 } else {
    // do something else like insert query
 }

 }

私の問題は、first_name または user_name が空で、register.php にリダイレクトされる場合です。

エラーメッセージが表示されますが、問題はありません

ただし、フィールドは空です first_name と user_name は空です

そのため、ユーザーはすべてをもう一度入力する必要があります

だから私の友人の一人がセッションか何かでそれを保存することを提案しました

だから私はそれが可能かどうかを知りたいのですが、どのように、そしてどのように私が意味するのかを知りたいので、誰もそれを間違えないようにします。つまり、コードをコピーして貼り付ける方法ではありません

前もって感謝します

そして長くて迷惑かけてごめんなさい

4

3 に答える 3

2

ページがセッション変数にリダイレクトされた後、保持したい値をフォームに保存し、フォーム ページでそれらの値を取得してvalue、フォーム要素の属性にエコーすることができます。

于 2012-04-18T22:37:46.307 に答える
1
session_start(); $_SESSION['nick'] = $_GET['nick'];

より多くの/より良い例:

http://php.net/manual/en/function.session-start.php

于 2012-04-18T22:33:35.087 に答える
1

正確に直面している問題がわからない (また、ワークフロー内の $session は何ですか?)。ただし、PHP インビルド セッション サポートを使用することをお勧めします。 http://php.net/manual/en/features.sessions.php

上記のリンク自体から:

<?php
session_start();

if(isset($_SESSION['views']))
{
    $_SESSION['views']=$_SESSION['views']+1;
}
else
{
    $_SESSION['views']=1;
    echo "Views=". $_SESSION['views'];
}
?>

上記のコードは、ページ ビューを追跡するだけです。$_SESSION 変数はページの読み込み間で保持され、すべてのセッション要件に対して同じものを使用する必要があります。

于 2012-04-18T22:37:02.687 に答える