サードパーティのログイン用ログインフォームを開発中です(例:login.php
)。私はPHPが全く新しいです。私は、サードパーティからの当社のウェブサイトに来てデータ保存する必要があるので、私はPHP内部の非表示フィールドにそれらのデータを保存し、login.php
にログインフォームを送信している間、私は私のStrutsアクションでフォームデータを取得することができていますJSP/struts1.xアクションからフォームデータをPHPに渡します
request.getParameter("data");
彼/彼女が成功した私は元気ですログインしている場合、私のlogin.php
は
<form id="externalloginform" name="externalloginform" action="/login.do" method="POST">
<input id="username" type="text" name="userid"/>
<input id="password" type="password" name="password"/>
<input id="data" type="hidden" name="data"/>
</form>
以下のように見えます。しかし、ログイン失敗の場合、同じ
login.php
にリダイレクトする必要があります。エラーメッセージが表示され、アクションクラスの保存されたフォームデータが
login.php
になります。私は私がJSPに
get
としてフォームメソッドを設定している間、私は
login.php
で、この隠しフィールドを取得することができ、以下のように私たちのポータル内のjspに
<body onload="document.getElementById('custom-login-form').submit();">
<form id="custom-login-form" name ="custom-login-form" action="/login.php" method ="post">
<input type="hidden" name="loginerr" value="request.getAttribute("loginerr")" />
<input type="hidden" name="data" value="request.getAttribute("data")" />
</form>
このアクションメソッドを転送し、
request.setAttribute("loginerr",loginerr);
request.setAttribute("data",data);
を設定しています使用して、
$_GET['loginerr'];
$_GET['data'];
が、JSPでpost
方法の場合には、私はエラー
未定義のインデックス:
login.php
でloginerr
。私は両方を使用しました
$_POST['loginerr']; & $_REQUEST['loginerr'];
$_POST['data']; & $_REQUEST['data'];
助けが必要ですか?私は真剣にこれを行うために一日中座っています。投票しないでください。 Googleをたくさん検索して解決策を見つけることができませんでした。あなたは、単にチェックするだけで$_REQUEST
http://php.net/manual/en/reserved.variables.request.php
使用isset()
を使用することができます
感謝を!!。私の理解は、phpで使用する前に設定されているかどうかをチェックしてほしいということです。定義されていないエラーを防ぐ。しかし、私の質問は、データが "post"メソッドのjspからphpに来ない理由ですが、同じことが "get"の場合に来ています。私が避けたい "get"メソッドの場合、データはURLに明示的に表示されます。 – user8235599
@ user8235599私が見る限り、あなたのコードはフォームを投稿する必要があります。しかし、 'value =" request.getAttribute( "data") "は間違っています。 'value =" <%= request.getAttribute( "data")%> "' JSPで実際にリクエストデータをエコーアウトする必要はありませんか? 'request.getAttribute(" data ")' –
@ user8235599そして、キーを使用しようとする前に、キーが設定されているかどうかを常にチェックし、それに応じてそれを処理する必要があります。 –