2010-12-21 6 views
0

この終わりのURLで登録フォームを入力したとします:registration.php?accountType=a フォームは同じページ(registration.php)で解析されます。ユーザーがフォームの検証に合格しなかった場合は、エラーメッセージとともにregistration.phpに送られます。だからあなたは私の変数accountType = aを失ったことが分かります。私の質問:フォームの有効性を失う変数

妥当性確認のためにフォームを提出し、accountType変数を保持できますか?私はこれが簡単にクッキーを使用して行うことができることを知っています。私はちょっとだけ理解しておきたい。

ソリューション:以下の回答のすべてが有効であったが、私は、などのセッション変数と<form action="registration.php?<?php print 'accountType=' . $_SESSION['accountType']; ?>"で助けてくれてありがとうを行ってきました。

答えて

0

あなたの形でこれを使用する必要があります:あなたはあなたのphpでこれを使用する必要があります

<form action="registration.php?accountType=a"> 

if ($validation_success) { 
    header('sucess.php') 
} else { 
    // don't do anything. The page(registration.php?accountType=a) loads 
} 

私はちょうどあなたのアイデアを与えています。

+0

+1、あなたの問題におそらく最も簡単な修正 – Starx

0

することができます簡単にPHPのセッションを使用して、3つの方法...

  1. インチ単純に次のようにしてください。

    session_start(); $ _SESSION ['namespace'] =配列( 'post' => $ _POST、 'get' => $ _GET);

  2. クッキーの使用(セッションはもっと優雅に思えます)

  3. Ajaxリクエストを使用する。それはあなたの仕事をより簡単にします。

0

httpを前方にすると、 "accountType = $ accountType"をURLの最後に追加して、正しいページに戻すべきだと思います。

私はあなたのコードを参照してくださいいけない、多分このような:

if(auth()) 
{ 
    //do something... 
} 
else 
{ 
    header("Location: /registration.php?somerror=true&accountType=" . $accountType); 
} 
関連する問題