<?php
if(!isset($_SERVER["PHP_AUTH_USER"])){
header("WWW-Authenticate: Basic realm=\"realm\"");
header("HTTP/1.0 401 Unauthorized");
exit("401 Unauthorized");
}
else{
if($_SERVER["PHP_AUTH_USER"]!="admin"){
header("WWW-Authenticate: Basic realm=\"realm\"");
header("HTTP/1.0 401 Unauthorized");
exit("401 Unauthorized");
}
}
?>
<html>
<head>
<title>P365 10-17▶認証</title>
</head>
<body>
<?php
$city = array("東京","名古屋","京都","大阪","福岡");
?>
<h2>出発地ご案内</h2>
<form>
<select name="city">
<?php
foreach($city as $name => $value){
print "<option value={$value}>{$value}</option>";
}
?>
</select>
</form>
</body>
</html>
--------------------------------------------------------
mts10806 23時間前
念のため3回目。質問文のコードの見せ方です。ひとまず、質問編集画面でコード部分を選択し、<code>ボタンを押してください。
-----------------------------------------------------
以上2回目<code>~プログラムを貼り付けました。
まー1回目2回目同じとは思うのですが!
再度よろしくお願いします。
----------------------------------------------------
※以上コードはご指摘いただきましたので<code>~入力しました。
以上のプログラムですが著書の通りに入力したつもりです。
それで
プログラムがどう動くかの著書の説明を以下です。
-----------------------------------------------------------------------
ここではかんたんな認証手段として、ユーザ
ー名として「admin」を入力したときにのみ
ページを表示するようにしています。
「キャンセルボタンを押した場合」と「admin以外を入力した場合」には、
レスポンスとして「401(Unauthorized)」を送信して処理を終了するようにしています。
------------------------------------------------------------------------
以上ですが!著書のプログラムの通り入力しても
認証画面の「ユーザ名に」「admin以外を入力した場合」("401 Unauthorized")
とは出ずに、入力したも文字は消えますがあとは無反応で認証画面が出たままです。
それで!
elseのheader("WWW-Authenticate: Basic realm=¥"realm¥"");
をheader("¥"");すると著書の通りに動くようになります。
その他header("aaa¥"");と適当に文字と追加しても著書の通りに動きます。
なぜ著書の通りに入力しても著書の説明通りに動かないのでしょうか?
他のパソコンでは検証していないので私のパソコンだけなのか定かではな
いのですが?
よろしくお願いいたします。
--------------------------------------------------------------------
ソースコードは、ツールバーの <code> ボタンを利用して、マークダウンで見やすく記述していただけないでしょうか。 [ソースコードを書きましょう]( https://teratail.com/help/question-tips#questionTips3-5-1 )参考
読み直して通じる文章か一考いただければと。それにプログラムは指示した通りにしか動かないので「著書の通りに入力した"つもり"」になってると一生動きませんよ。htmlの間違いもあるしコードブロック囲われてないと実際はわかりませんが全角スペース使ってたりもあるのではないでしょうか。目的が写経になってるようではアドバイスは難しいです。円マークは実際はバックスラッシュですしコードブロックにすれば問題ありません。勝手に全角にしてる時点で著書の通りではありません。
質問は編集できるので適宜対応してください。コードが正しく提示されないと同じ現象が再現確認とれないと的確な回答ができません
どこかですか…。他の質問とか回答見て違うことに気づきませんか? ><codd>~入力しました。
mts10806 2018/12/01 06:05さんご回答くださいましてありがとうございます。プログラムは<codd>~入力し直しましたので私が使っているプログラムです。できれば貴様のパソコンで動作確認をしていただけましたら助かります。それと「htmlの間違いもあるしコードブロック囲われてない」了解です。手が空き次第調べます。しばらくお待ちください。
そういう話ではないです。質問文のコードの見せ方です。ひとまず、質問編集画面でコード部分を選択し、<code>ボタンを押してください。そうすると「コードブロック」となり質問に提示されたコードがインデントなどがあるはずの実際のコードにより近くなり、またコピペボタンが付帯するので回答者が再現確認しやすくなります。繰り返しますが、提示されたコードの中身の話ではなく質問に提示するコードの見せ方の指摘です。他の質問や回答でそのままベタでコードが提示されてますか?そのあたりをきちんと確認して「teratailにおけるソースコードの提示の仕方」にそってください。
日本語がアレなのはひとまず置いておいて、とりあえずCHERRY様が貼ってくださったリンクを参考にして今一度コードブロックを正しく使ってください。何を見ながらやっているかも追記してください。
2018/12/01 11:24に「プログラムは<code>~入力し直しましたので」その後バックスラッシュも\に代わりましたが?何がいけないのでしょうね? それで!気難しいので別のサイトからプログラムが閲覧できるようにしました。いかがでしょうか? http://afurieitohannei.la.coocan.jp/phpninnsyou.htm
どもすみません!お礼を言うのを忘れていました。ご回答くださいまして色々とありがとうございます。
少し長くなると読めないようなので、(2回目)質問文のコードの見せ方です。ひとまず、質問編集画面でコード部分を選択し、<code>ボタンを押してください。
あえて今まで突っ込まなかったけどcoddってなに?勝手に言葉を作らないように。
念のため3回目。質問文のコードの見せ方です。ひとまず、質問編集画面でコード部分を選択し、<code>ボタンを押してください。
解決策が見いだせないご回答 ではなく、質問の仕方が悪いです。大した問題でないようでも質問の仕方が悪いことでまともな回答を得られない状態になっています。しかもそれて質問内容を潰すとかやり方の不味さを加速させています。誰もあなたの質問に耳を傾けなくなりますよ。少なくとも今回関わったユーザーの印象は最悪ですね。せっかくついた回答も無駄になりました。