以下のプログラム(tset12.html,test12.php)で、test12.htmlに入力し「送信」ボタンをクリックした後
http://
ではなく
https://
というように表示させる事ができません。
https://*****.*****.***/test12.php?id%5B%5D=A&id%5B%5D=B.....
の様な表示です。
以下、tset12.html,test12.php を修正してください。
---test12.html
<html>
<head>
<title>form</title>
</head><body>
<p>お好きなモノをお選びください。</p>
<form name="form1" method="get" action="test12.php">
<INPUT type=checkbox value="A" name=id[] >A<BR>
<INPUT type=checkbox value="B" name=id[] >B<BR>
<INPUT type=test name="mail" ><BR>
<input type="submit" name="Submit" value="送信">
</form>
</body>
</html>
---test12.php
<?php
mb_internal_encoding("utf-8");
mb_language("ja");
$body = "";
$s_mail = $_GET['mail'];
echo $s_mail;
foreach ($_GET['id'] as $value) {
$value = mb_convert_encoding($value, 'utf-8', 'auto');
$body = $body . $value . "\n";
}
$s_mail = $_GET['mail'];
mb_send_mail($s_mail, "件名テスト12", $body, "From: k**@**.ne.jp");
?>
2度ほどコメント欄でご注意申し上げているのですがコメント欄は読んでいただけないようなので回答欄で失礼します
あなたは私の知る限りでも2度takntさんの誤った指導を受けています
(1)http://q.hatena.ne.jp/1288017292
test06.htmlに対するtakntさんの回答はセキュリティホールやバグの温床となる構文です
issetによって変数の存在を確認した後、変数の中身が正しいものかどうかを判別すべきなのです
(2)http://q.hatena.ne.jp/1288519101
test12.htmlに対するtakntさんの回答はまったくもって無関係な話です
fopenはサーバ内部で使われるためtest12.phpの中で使ってもブラウザのアドレス欄にはなんの影響も及ぼしません
対応としてはyocchan731さんの回答にありますようにtest12.htmlのFORMタグにあるACTIONにてhttpsから始まるアドレスを書くことです
<form name="form1" method="get" action="https://*****.*****.***/test12.php">
上記でうまくいかないとすればWEBサーバがhttpsでのアクセスに対応していないという可能性がありますので、
サーバ環境を明記して対応策を募集してみてください(環境によってはhttpsの利用が不可の場合もあります)
2度ほどコメント欄でご注意申し上げているのですがコメント欄は読んでいただけないようなので回答欄で失礼します
あなたは私の知る限りでも2度takntさんの誤った指導を受けています
(1)http://q.hatena.ne.jp/1288017292
test06.htmlに対するtakntさんの回答はセキュリティホールやバグの温床となる構文です
issetによって変数の存在を確認した後、変数の中身が正しいものかどうかを判別すべきなのです
(2)http://q.hatena.ne.jp/1288519101
test12.htmlに対するtakntさんの回答はまったくもって無関係な話です
fopenはサーバ内部で使われるためtest12.phpの中で使ってもブラウザのアドレス欄にはなんの影響も及ぼしません
対応としてはyocchan731さんの回答にありますようにtest12.htmlのFORMタグにあるACTIONにてhttpsから始まるアドレスを書くことです
<form name="form1" method="get" action="https://*****.*****.***/test12.php">
上記でうまくいかないとすればWEBサーバがhttpsでのアクセスに対応していないという可能性がありますので、
サーバ環境を明記して対応策を募集してみてください(環境によってはhttpsの利用が不可の場合もあります)
>コメント欄でご注意申し上げているのですがコメント欄は読んでいただけないようなので回答欄で失礼します
確かに読んでおりませんでした。
大変失礼いたしました。
>システムを作っていくのであればisset関数で変数が存在するかどうかをチェックするようにしましょう
まず、変数の存在確かめるわけですね。大変参考になります。
>fopenはサーバ内部で使われるためtest12.phpの中で使ってもブラウザのアドレス欄にはなんの影響も及ぼしません
おっしゃる通りでした。
>FORMタグにあるACTIONにてhttpsから始まるアドレスを書くことです
今、サーバ側のSSLの設定の所まで来ました。
長かったです。(まだ長いかな)
バッチのプログラム専門だったんで(VB)ご迷惑おかけして、すいません。
test12.htmlのみ、下記のように修正が必要です。
---test12.html <html> <head> <title>form</title> </head><body> <p>お好きなモノをお選びください。</p> <form name="form1" method="get" action="https://*****.*****.***/test12.php"> <INPUT type=checkbox value="A" name=id[] >A<BR> <INPUT type=checkbox value="B" name=id[] >B<BR> <INPUT type=test name="mail" ><BR> <input type="submit" name="Submit" value="送信"> </form> </body> </html>
action の部分に https:// で指定すれば可能です。
可能であるならば、 test12.html も https のところに置いたほうが良いです。
>コメント欄でご注意申し上げているのですがコメント欄は読んでいただけないようなので回答欄で失礼します
確かに読んでおりませんでした。
大変失礼いたしました。
>システムを作っていくのであればisset関数で変数が存在するかどうかをチェックするようにしましょう
まず、変数の存在確かめるわけですね。大変参考になります。
>fopenはサーバ内部で使われるためtest12.phpの中で使ってもブラウザのアドレス欄にはなんの影響も及ぼしません
おっしゃる通りでした。
>FORMタグにあるACTIONにてhttpsから始まるアドレスを書くことです
今、サーバ側のSSLの設定の所まで来ました。
長かったです。(まだ長いかな)
バッチのプログラム専門だったんで(VB)ご迷惑おかけして、すいません。