0

私が次のフォームを持っているとしましょう:

<form method="post" action="" autocomplete="off"><input name="checking2" type="submit" value="Name" class="ssd"></form>

ユーザーがフォームを送信すると、次の PHP コードが実行されます。

if(isset($_POST['checking2'])){
$xmla = new SimpleXMLElement('passwords/' . views . '.xml', 0, true);
$plus = $xmla->goodx;
$result = $plus + 1;
$xmla->goodx = $result;
$xmla->asXML('passwords/' . views . '.xml');
header( 'Location: http://google.com' ) ;
}

フォームをデザインするための次の CSS: コード:

.ssd {
border: none;
background-color: transparent;
padding: 0;
cursor: pointer;
font-size:89%;
display:inline;
text-decoration: underline; 
color: #00c;  
}

これで、ユーザーがフォームをクリックするたびに、Google にリダイレクトされます。PHPコードは、誰かがフォームを送信するたびに、xmlファイルの値に+1を追加することになっています(機能します)。私の問題は、誰かがフォームの値の上にマウスを置くたびに、表示される URL が、現在表示している現在のページの URL アドレスであり、実際にリダイレクトされる URL - Google ではないことです。私は URL アドレスを偽造しようとしているので、現在のページの URL アドレス (これは action="") ではなく、Google の URL アドレスが表示されます。いいえ、Google の URL アドレスを "action=" に配置することはお勧めしません。これを行うと、何らかの理由で PHP データが適切に更新されないためです。どんな助けでも大歓迎です。

4

1 に答える 1

0

私の理解が正しければ、フォームのアクション プロパティを変更したいと思いませんか?

その場合は、次の小さな JavaScript コードを使用します。

 <script>
function fake_action(){
    document.forms["myform"].action="http://example.com";
    document.forms["myform"].submit();
}
</script>
<form id="myform" action="http://google.com">
    <input type="text" placeholder="placehold.it"/>
    <input type="button" value="send" onclick="fake_action();"/>
</form>

簡単な説明: 送信ボタンを標準のボタンに置​​き換え、fake_action(); を指定しました。そのための onclick イベント ハンドラとして機能します。fake_action 関数は、フォームのアクションを変更して、後で送信するだけです。そのため、問題なく作業を行うことができます。

(ページの読み込み時に GET / POST パラメーターを確認し、最初のページで受け取った後、最終的に 2 番目のページに送信する必要があります;))

于 2013-01-22T04:00:55.143 に答える