プロが教える店舗&オフィスのセキュリティ対策術

Promptの入力値をphpの変数として取込む方法がわかりません。
以下の様にPromptの入力値をphpの変数として取込み、所定の処理を行いたいと考えています。しかしPromptの入力値"pw"をphpに取込む事が出来ません。ご教授ください。
※File名=test_prompt.php
<HTML>
<HEAD>
</HEAD>
<BODY>
<FORM action="test_prompt.php" method="POST">
<INPUT type="image" value="pasword" onclick="pw=prompt('パスワードを入力して下さい');" src="img/del.gif">
</FORM>
<br><br>
<?php
$pw=$_POST['pw'];
echo "PW=".$pw;
?>
</BODY>
</HTML>

A 回答 (3件)

PHPというよりJavaScriptだと思いますが、


こんな感じで↓
<HTML>
<HEAD></HEAD>
<BODY>
<FORM action="test_prompt.php" method="POST" name="f1">
<input type=hidden name="pw">
<INPUT type="image" value="pasword" onclick="f1.pw.value=prompt('パスワードを入力して下さい');" src="img/del.gif">
</FORM>
<br><br>
<?php
$pw=$_POST['pw'];
echo "PW=".$pw."<br>";
print_r($_POST);
?>
</BODY>
</HTML>
    • good
    • 0

プロンプトを出しているのは、JavaScriptです。

これは、ページがブラウザに読み込まれた後で、ブラウザの中で実行されます。

一方、PHPのスクリプトは、サーバで実行され、実行済みの結果がブラウザに送信され表示されます。つまり、ページがブラウザに表示されたときには、既にPHPのスクリプトは実行された後なのです。ですから、既に実行が終わっているものに値は設定できません。

やるとしたら、JavaScriptでプロンプトを出したら、その値を<input type="hidden">などに設定してからサーバに再びフォームを送信し、サーバ側で受け取った値を使って処理をし、また表示させる、というような形になります。あるいは、単純にPHPを使わずJavaScriptだけで表示させるという方法もあります。
    • good
    • 0
この回答へのお礼

アドバイス有難うございます。
<input type="hidden">などに設定してからサーバに再びフォームを送信する件ですが、具体的にどこを修正すればいいのかお教えいただけませんか。
どうしても入力ダイアログで入力されたpasswordを認証してphpでmySQLを操作したいとの思いです。
宜しくお願いします。

お礼日時:2007/12/15 14:15

promptはjavascriptなので、


PHPで処理をするのではなくjavascriptで表示すればいいのでは?
例えば、下のように。
<SCRIPT TYPE="text/javascript">
<!--
window.alert(pw);
-->

PHPで処理をしたいなら、onclickを使わないですれば良いだけです
    • good
    • 1
この回答へのお礼

そうなんです。
onclickを使用せず、<form>・・・・・</hurm>にINPUT文で処理する方法がコーディング的には簡単なのですが、入力ダイアログにパスワードを入力してもらい、認証後Mysqlを操作したいものでムリな相談をさせていただきました。
何とかなりませんでしょうか?

お礼日時:2007/12/15 14:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!