質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

2011閲覧

著書通りでは動かないのですが!?

1981225

総合スコア67

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

2クリップ

投稿2018/11/30 08:27

編集2018/12/07 01:16
<?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¥"");と適当に文字と追加しても著書の通りに動きます。  なぜ著書の通りに入力しても著書の説明通りに動かないのでしょうか? 他のパソコンでは検証していないので私のパソコンだけなのか定かではな いのですが? よろしくお願いいたします。 --------------------------------------------------------------------

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/11/30 21:05

読み直して通じる文章か一考いただければと。それにプログラムは指示した通りにしか動かないので「著書の通りに入力した"つもり"」になってると一生動きませんよ。htmlの間違いもあるしコードブロック囲われてないと実際はわかりませんが全角スペース使ってたりもあるのではないでしょうか。目的が写経になってるようではアドバイスは難しいです。円マークは実際はバックスラッシュですしコードブロックにすれば問題ありません。勝手に全角にしてる時点で著書の通りではありません。
m.ts10806

2018/11/30 21:06

質問は編集できるので適宜対応してください。コードが正しく提示されないと同じ現象が再現確認とれないと的確な回答ができません
m.ts10806

2018/11/30 23:54

どこかですか…。他の質問とか回答見て違うことに気づきませんか? ><codd>~入力しました。
1981225

2018/12/01 02:24

mts10806 2018/12/01 06:05さんご回答くださいましてありがとうございます。プログラムは<codd>~入力し直しましたので私が使っているプログラムです。できれば貴様のパソコンで動作確認をしていただけましたら助かります。それと「htmlの間違いもあるしコードブロック囲われてない」了解です。手が空き次第調べます。しばらくお待ちください。
m.ts10806

2018/12/01 02:46

そういう話ではないです。質問文のコードの見せ方です。ひとまず、質問編集画面でコード部分を選択し、<code>ボタンを押してください。そうすると「コードブロック」となり質問に提示されたコードがインデントなどがあるはずの実際のコードにより近くなり、またコピペボタンが付帯するので回答者が再現確認しやすくなります。繰り返しますが、提示されたコードの中身の話ではなく質問に提示するコードの見せ方の指摘です。他の質問や回答でそのままベタでコードが提示されてますか?そのあたりをきちんと確認して「teratailにおけるソースコードの提示の仕方」にそってください。
dice142

2018/12/01 02:55

日本語がアレなのはひとまず置いておいて、とりあえずCHERRY様が貼ってくださったリンクを参考にして今一度コードブロックを正しく使ってください。何を見ながらやっているかも追記してください。
1981225

2018/12/06 08:22 編集

2018/12/01 11:24に「プログラムは<code>~入力し直しましたので」その後バックスラッシュも\に代わりましたが?何がいけないのでしょうね? それで!気難しいので別のサイトからプログラムが閲覧できるようにしました。いかがでしょうか? http://afurieitohannei.la.coocan.jp/phpninnsyou.htm
1981225

2018/12/02 09:20

どもすみません!お礼を言うのを忘れていました。ご回答くださいまして色々とありがとうございます。
m.ts10806

2018/12/02 09:50 編集

少し長くなると読めないようなので、(2回目)質問文のコードの見せ方です。ひとまず、質問編集画面でコード部分を選択し、<code>ボタンを押してください。
m.ts10806

2018/12/02 09:49

あえて今まで突っ込まなかったけどcoddってなに?勝手に言葉を作らないように。
m.ts10806

2018/12/02 09:50

念のため3回目。質問文のコードの見せ方です。ひとまず、質問編集画面でコード部分を選択し、<code>ボタンを押してください。
m.ts10806

2018/12/06 09:19

解決策が見いだせないご回答 ではなく、質問の仕方が悪いです。大した問題でないようでも質問の仕方が悪いことでまともな回答を得られない状態になっています。しかもそれて質問内容を潰すとかやり方の不味さを加速させています。誰もあなたの質問に耳を傾けなくなりますよ。少なくとも今回関わったユーザーの印象は最悪ですね。せっかくついた回答も無駄になりました。
guest

回答1

0

元にされている書籍が何かわかりませんが、書籍のソースコードに間違いがあるのはよくあることです。
著者によっては敢えて間違いを入れ、自分で考えることをしない限り動かないようにしておくこともあるくらいです。

まずはその書籍の出版社の、書籍紹介のページあたりに正誤表が公開されていないか探してみてはいかがでしょうか。

もちろん、公開されていないとしても、書籍通りで動かず、自分が間違いと思う箇所を直すことで動くならば直した後のものが「動作するソースコード」です。


追記・修正依頼で何度も指摘がある事項は、

  • teratail の質問入力欄は Markdown書式で書くことができます
  • Markdown 書式には「ソースコードを書くための書式」が定められており、 teratail ではソースコードにはその書式を利用することが推奨されています
  • その「ソースコードを書くための書式」は、質問入力欄の上にあるアイコンの <code> となっているアイコンをクリックすることで補完されます

ということの指摘であり、ソースコードの前後をバックスラッシュ3つずつで囲んでくれ、という依頼と思います。

詳しくはCHERRYさんのコメントにある ソースコードを書きましょう や、 対応しているMarkdownの機能を知りたい をご覧ください。

投稿2018/12/03 10:02

kaz.Suenaga

総合スコア2037

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問