• 締切済み

.htmlで.phpの動作について(xサーバ)

何故かif文の処理がされなくて困っています。なぜ制御部分が動作しないのでしょうか?原因がわからないので、わかる方お願いします。 ファイル1 kounyuu.html <!DOCTYPE html> <html lang ="ja"> <head> <meta charset="UTF-8"> <title>ジュースの購入 </title> </head> <body> <form action ="result.php" method='post'> <p>120円のジュースを販売<br> 1000円までのお金をいれてください。<p> <p>お金を<input type="text" name="money" size="5">円入れます。</p> <p><input type='submit' value="購入"></p> </form> </body> </html> ファイル2 result.php <!DOCTYPE html> <html lang ="ja"> <head> <meta charset="UTF-8"> <title>おつり</title> </head> <body> <?php $m = $_POST['money']; $r = $m -120; $kouka = array{500,100,50,10,0}; if($r < 0){ print "<P>お金がありません</p>\n"; } elseif($m > 1000){ print "<p>1000円お願いします</p>\n"; } elseif($r == 0){ print "<p>ちょうどお預かりします。ありがとうございました。<p>\n"; } else{ print "<p>ありがとうございました。おつりは &r 円になります。</p>\n"; print "<p>硬貨の枚数は次のとおりです。<br>\n"; $i = 0; while($kouka[$i]>0){ print $kouka[$i]."円玉".(int)($r / $kouka[$i])."枚<br>"; $r = $r % $kouka[i]; $i++; } } print "</p>"; ?> <p><a href="kounyuu.html">お金を入れなおす</a> </p> </body> </html> フォームに1000と入力した結果↓ お金がありません \n"; } elseif($m > 1000){ print " 1000円お願いします \n"; } elseif($r == 0){ print " ちょうどお預かりします。ありがとうございました。 \n"; } else{ print " ありがとうございました。おつりは &r 円になります。 \n"; print " 硬貨の枚数は次のとおりです。 \n"; $i = 0; while($kouka[$i]>0){ print $kouka[$i]."円玉".(int)($r / $kouka[$i])."枚 "; $r = $r % $kouka[i]; $i++; } } print " "; ?> お金を入れなおす

  • HTML
  • 回答数2
  • ありがとう数2

みんなの回答

回答No.2

(1) 12行目 $kouka = array{500,100,50,10,0}; は $kouka = array(500,100,50,10,0); の誤りです。  (2) 21行目 おつりは &r 円になります。 は おつりは $r 円になります。 の間違いです。( &r でなく $r ) (3) 27行目 $r = $r % $kouka[i]; は $r = $r % $kouka[$i]; の誤りです。( [i]でなく [$i] ) (4) "1000"と入力したのに 「お金がありません」 が出るのは、フォームで、"1000"のように全角(漢字)で入力していませんか。 全角に対応するなら、intとの比較に使う前に 全角→半角変換が必要です。 (5) 「お金がありません」でprint文が終わるはずなのに その後の 「\n"; } elseif($m > 1000){ print " 1000円お願いします ~」 とその後のプログラム命令がそのままprintされてしまっているのは 入力したコード中のprint "~"; の閉じる"が 全角になっていて  閉じ損ねていてその後に継続する行は、まだ" "のなかだと認識させていませんか。 また、表示されないはずの \n(改行コード)がそのまま表示されるのは \n を 全角で入力してしまっていませんか。 (6) 自動販売機で 120円の商品を買うときに 小銭が増えるのを嫌がって 1020円を 投入することもありますが、そういうの考慮しないのですか

  • agehage
  • ベストアンサー率22% (2552/11346)
回答No.1

} elseif($m > 1000){ この部分がよくわからない } elseif($r > 1000){ とか } elseif($m >= 1000){ とか } elseif($r >= 1000){ でないですかね?

ayukkkkk
質問者

補足

elseif($m>1000){}の部分は、1000円以下の入力のみ受け付けます という意味です。記述では 1000円お願いします ってなっている点は申し訳ないです。なので1000円以上の時にこの処理がされるようにするためにこの記述にしています。

関連するQ&A

  • 連番を書き出すなどの単純処理をするこのコードを採点願えませんか

    Excel-VBAについて下記のような質問をしたのですが http://oshiete1.goo.ne.jp/kotaeru.php3?q=2285679 この質問で実現したい処理をPHPで例示してみて、もっとシンプルに かけるに違いない!と思っています。 実際、いかがなものでしょうか。 <?php  for($i=20001;$i<=24000;$i++){   for ($j=1; $j<=12;$j++){    if ($j==1){     $body .= $i . "&nbsp;200412&nbsp;" . $i . "200412<br>\n";    } elseif ( $j == 2 ) {     $body .= $i . "&nbsp;200501&nbsp;" . $i . "200501<br>\n";    } elseif ( $j == 3 ) {     $body .= $i . "&nbsp;200502&nbsp;" . $i . "200502<br>\n";    } elseif ( $j == 4 ) {     $body .= $i . "&nbsp;200503&nbsp;" . $i . "200503<br>\n";    } elseif ( $j == 5 ) {     $body .= $i . "&nbsp;200504&nbsp;" . $i . "200504<br>\n";    } elseif ( $j == 6 ) {     $body .= $i . "&nbsp;200505&nbsp;" . $i . "200505<br>\n";    } elseif ( $j == 7 ) {     $body .= $i . "&nbsp;200506&nbsp;" . $i . "200506<br>\n";    } elseif ( $j == 8 ) {     $body .= $i . "&nbsp;200507&nbsp;" . $i . "200507<br>\n";    } elseif ( $j == 9 ) {     $body .= $i . "&nbsp;200508&nbsp;" . $i . "200508<br>\n";    } elseif ( $j == 10 ) {     $body .= $i . "&nbsp;200509&nbsp;" . $i . "200509<br>\n";    } elseif ( $j == 11 ) {     $body .= $i . "&nbsp;200510&nbsp;" . $i . "200510<br>\n";    } else {     $body .= $i . "&nbsp;200511&nbsp;" . $i . "200511<br>\n";    }   } } ?> <html> <body> <?= $body ?> </body> </html>

    • ベストアンサー
    • PHP
  • PHPのWarningとは?

    PHP超初心者です。 参考本に書いてあるとおり、以下のアクセスログを作りました。 <html> <head><title>Access Log</title></head> <body> <?php print(date("Y/m/d H:i:s")."<br/>\n"); print("<p> access log:</p>\n"); $filepointer=fopen("./log/php-accesslog","a+"); flock($filepointer,LOCK_EX); fputs($filepointer,date("Y/m/d H:i:s").$_SERVER["REMOTE_ADDR"]."\n"); flock($filepointer,LOCK_UN); rewind($filepointer); while(!feof($filepointer)){ $fileline=fgets($filepointer); print($fileline."<br/>"); } fclose($filepointer); ?> </body> </html> で、開いてみると、 2007/01/24 12:51:00 access log: というふうにアクセスログが出るのですが、そのあとに Warning: fopen(./log/php-accesslog) [function.fopen]: failed to open stream: No such file or directory in C:\Program Files\Apache Group\Apache2\htdocs\php10\accesslog.php on line 7 のような、warningがとめどなくズラーっと表示されてしまいます。 この意味と対処法がありましたらおしえてください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpプログラムの書き方について

    phpは<html>~</html>の中に記載するものなのでしょうか? それともphpプログラムの中にhtmlを記載するのでしょうか? ラジオボタンを10個表示するプログラムを書いたのですが、 実際にブラウザに表示されたものは以下の様な状態になってしまいました。 ------------------------------------------------------------- 該当する年齢を選んでください。 ?php> $i=1; while($i==10){ print "$i "; $i++; } ?> 送信 --------------------------------------------------------------- ソースコード radio.php <html> <head> <title>年齢確認</title> </head> <body> 該当する年齢を選んでください。 <br> <hr> <form method="post" action="radio_uke.php"> ?php> $i=1; while($i==10){ print "<input type='radio' name='r' value'$i'>$i "; $i++; } ?> <input type="submit" value="送信"> </form> </body> </html>

    • ベストアンサー
    • PHP
  • PHPについて質問です。

    PHPの掲示板の仕組みが知りたくてhttp://www.phpbook.jp/appli/keijiban/index1.htmlのサイトの、 <html> <head><title>PHP TEST</title></head> <body> <p>掲示板</p> <form method="POST" action="<?php print($_SERVER['PHP_SELF']) ?>"> <input type="text" name="personal_name"><br><br> <textarea name="contents" rows="8" cols="40"> </textarea><br><br> <input type="submit" name="btn1" value="投稿する"> </form> <?php $personal_name = $_POST['personal_name']; $contents = $_POST['contents']; print('<p>投稿者:'.$personal_name.'</p>'); print('<p>内容:</p>'); print('<p>'.$contents.'</p>'); ?> </body> </html> のソースをコピペしてテキストエディタに貼り付けてPHPで実行してみたら、このような画像になります。 そして投稿するをクリックするとNot Foundが表示されます。 どのようにすればテスト用の掲示板がうまくいきますか? OSはubuntu 13.10 32bit版です。 apache2導入済みです。 画像はこちらですhttp://www.dotup.org/uploda/www.dotup.org4980559.png

    • ベストアンサー
    • PHP
  • コードの何が間違っているのか分からない(PHP)

    ●質問の主旨 コードの何が間違っているのかよくわからない。 (check.php)のファイルで、 print'<input type="hidden" name="nickname" value="'$nickname.'">'; の行がsyntaxerrorとして、返されるがなぜそうなるのか分からない (マニュアル本に記述して、スペルミスもチェックしているのですが) 何かお気づきのかた、ご教示願います。 ●質問の補足 添付の画像のように名前、メールアドレス、ご意見を入力してもらう フォームをとして作りました(index.html) すべてのフォームに入力がされているかどうかチェックし、 (check.php) サンクスページを返すようにしました (thanks.php) ●環境 Windows8 XAMMP(ローカル開発環境) ●コード (index.html) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHPの基礎</title> </head> <body> <form method="post" action="check.php"> <p>あなたの名前を入力してください</p> <input name="nickname" type="text" style="width:100px"> <p>メールアドレスを入力してください</p> <input name="email" type="text" style="width:200px"> <p>ご意見をお聞かせください</p> <input name="goiken" type="text" style="width:300px"><br/> <input type="submit" value="送信"> </form> </body> </html> (check.php) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHPの基礎</title> </head> <body> <?php $nickname = $_POST['nickname']; $email = $_POST['email']; $goiken = $_POST['goiken']; $nickname = htmlspecialchars($nickname); $email = htmlspecialchars($email); $goiken = htmlspecialchars($goiken); if ($nickname == '') { print '名前が入力されてません!<br/>'; } else { print 'ようこそ!'; print $nickname; print 'さま'; print '<br/>'; } if ($email == '') { print 'emailが入力されてません!<br/>'; } else { print 'メールアドレス'; print $email; print '<br/>'; } if ($goiken == '') { print 'ご意見が入力されてません!<br/>'; } else { print 'ご意見'; print $goiken; print '<br/>'; } if($nickname == '' || $email == '' || $goiken == '') { print'<form>'; print'<input type="button" onclick="history.back()" value="戻る">'; print'</form>'; } else { print'<form method="post" action="thanks.php">';   print'<input type="hidden" name="nickname" value="'$nickname.'">'; print'<input type="hidden" name="email" value="'.$email.'">'; print'<input type="hidden" name="goiken" value="'.$goiken.'">'; print'<input type="button" onclick="history.back()" value="戻る">'; print'<input type="submit" value="OK!">'; print'</form>'; } ?> </body> </html> (thanks.php) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHPの基礎</title> </head> <body> <?php $nickname=$_POST['nickname']; $email=$_POST['email']; $goiken=$_POST['goiken']; print 'ご意見ありがとうございました!'; print $nickname; print '様<br/>'; print 'ご意見ありがとうございました<br/>'; print '頂いたご意見『'; print $goiken; print '』<br/>'; print $email; ?> </body> </html>

    • ベストアンサー
    • PHP
  • phpの掲示板で新しい順に表示したい

    php初心者です。 phpで掲示板を作っています。 新しい順に表示したいのですが、やり方がわかりません。 古い順に表示するやり方はわかるのですが、どうやったらよいでしょうか。 古い順のソースです <html> <head> <title>一行掲示板</title> </head> <body> <h2>一行掲示板</h2> 書き込む内容を入力してください。<hr color="black"> <form name="form" action="./sample01.php" method="POST"> タイトル      <input type=text name="title" action="./sample01.php" size="30" method="POST"><br><br> 名前          <input type=text name="namae" action="./sample01.php" size="30" method="POST"><br><br> メッセージ  <textarea name="body" rows="5" cols="50"></textarea> <input name="write" type="submit" value="書込"> <input name="write" type="reset" value="リセット"><hr> </form> <?php $data = file("../php/test1.txt"); for($i=0; $i<sizeof($data); $i++){ print "タイトル.${i}:<br>\n名前.${i}:<br>\n記事NO.${i}:${data[$i]}<br>\n<hr>"; } ?> <br> <a href="../phpcollect/index.html">トップページへ</a> </body> </html> どうかわかる方おりましたらご教授お願いします。

    • 締切済み
    • PHP
  • PHPが動作しません

    DebianにApache2とPHP5をインストールしました。 初期設定のまま何も設定していない状態です。 w3m http://localhost にてテストページが表示されることは確認できました。 しかし、index.htmlと同じ場所に入れたテストファイル(hello.php)が うまく表示されず、ファイルのダウンロードになってしまいます。 コマンドは w3m http://localhost/hello.php です。 Linuxは初心者で、右も左もわかりません。 (今回も勉強のためです) 設定を確認しようにも、どこをチェックしたらよいのかもわからず、 他のホームページを見てもPHPはデフォルトで動作するように記載があります。 hello.phpの内容です。 <html>  <head>  <title>PHP Test</title>  </head>  <body>  <?php echo '<p>Hello World</p>'; ?>   </body> </html> 少し気になるところは、apach2-mpm-workerというものが、aptitude searchで pになっています。 PHPをインストールする際にiになっていないといけないような記載をみつけたのですが、 PHPと競合してしまい、両方をインストールすることができません。 これが関係しているのでしょうか・・・? ちなみに、それぞれの細かいバージョンは確認の方法がわかりませんので、 「バージョンがわからなけれ答えようがない!」ということであれば、確認方法を お教えください。

    • ベストアンサー
    • PHP
  • php アンケートについての質問

    htmlのフォームから送信 phpでアンケート結果を受け取る ようなものを書きましたがphpの受け取る処理でエラーが起きてしまうので@を書いて何とか動くようにしました。@を使わずにエラーを修正したいのですがうまくいきません。どなたか助けてさい <html> <p> </p> <h3>アンケート</h3> <form name="form" action="upload1.php" method="GET"> <body bgcolor="#f40fff" text="#ffffff"> <p> お名前を入力して下さい:<br> <input type="text" name="simei"> </p> <p> 性別を選んで下さい。<br> <input type="radio" name="gender" value="男性">男性です<br> <input type="radio" name="gender" value="女性">女性です<br> </p> <p> この大学を何で知りましたか?<br> <input type="checkbox" name="check1" value="メディア媒体"/> メディア媒体で<br> <input type="checkbox" name="check2" value="イラスト"/> イラストで<br> <input type="checkbox" name="check3" value="その他"/> その他<br> </p> <p> 最近ハマっていることは?<br> <input type="checkbox" name="check4" value="サークル、部活"/> サークル部活など<br> <input type="checkbox" name="check5" value="得にない"/> 得にない<br> <input type="checkbox" name="check6" value="その他"/> その他<br> </p> <p> 今やりたいことは?<br> <input type="checkbox" name="check7" value="課題"/> 課題など<br> <input type="checkbox" name="check8" value="得にない"/> 得にない<br> <input type="checkbox" name="check9" value="その他"/> その他<br> </p> <p> <input type="submit" name="submit" value="送信"> </p> </body> </html> php <html> <body bgcolor="#f40fff" text="#ffffff"> <p> </p> <h3>アンケート</h3> <p> <?php print(date('A:g時i分s秒').'<br>'); ?> <b>お名前:</b><br> <?php print( @$_REQUEST["simei"] ); ?> </p> <p> <b>性別:</b><br> <?php print( @$_REQUEST["gender"] ); ?> </p> <p> <b>この大学を何で知りましたか:</b><br> <?php print( @$_REQUEST["check1"] ); ?><br> <?php print( @$_REQUEST["check2"] ); ?><br> <?php print( @$_REQUEST["check3"] ); ?><br> </p> <p> <b>最近ハマっていることは:</b><br> <?php print( @$_REQUEST["check4"] ); ?><br> <?php print( @$_REQUEST["check5"] ); ?><br> <?php print( @$_REQUEST["check6"] ); ?><br> </p> <p> <b>今やりたいことは:</b><br> <?php print( @$_REQUEST["check7"] ); ?><br> <?php print( @$_REQUEST["check8"] ); ?><br> <?php print( @$_REQUEST["check9"] ); ?><br> </p> <p> <?php $life = 60 * 60 * 24 * 30; if(isset($_COOKIE["count"])) { $count = $_COOKIE["count"] + 1; } else { $count = 1; } setcookie("count", $count, time() + $life); ?> <?php echo $count, "回目の訪問です。\n"; ?> </body>

    • ベストアンサー
    • PHP
  • PHPの勉強中の初心者です。

    PHPの勉強中の初心者です。 PHPに詳しい人に教えてもらいながら以下のPHPを組みました。 内容はlist.cgiというテキストファイルをPHPで出力することです。 一応出力はできたのですが、出力するデータをテーブル内に埋め込みたいと思いますが、 PHPのファイルにどのようにtableタグを埋め込むべきかが分かりません。 (例)1,AAA BBB CCC<br /> DDD を tdのセルに埋め込みたく。 どなかたご教授いただけませんでしょうか?どうぞ、よろしくお願いいたします。 list.cgi 1,AAA BBB CCC<br /> DDD 2,AAA BBB CCC<br /> DDD 3,AAA BBB CCC<br /> DDD <?php $datafile = "list.cgi"; //ファイルの読み込み $fr = fopen ( $datafile, "r" ); $alldata = fread ( $fr, filesize ( $datafile ) ); fclose ( $fr ); $alldata = str_replace ( "\r", "\n", $alldata ); $alldata = str_replace ( "\n\n", "\n", $alldata ); $alldata = explode ( "\n", $alldata ); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> <title>サンプル</title> </head> <body> <div style="width:240px"> <?php if($_GET["n"]){ for($i=0;$i<count($alldata);$i++){ $buff=explode(",",$alldata[$i]); if($buff[0]==$_GET["n"]){ print $buff[1]; print "<br />"; } } } ?> </div> </body> </html>

    • 締切済み
    • PHP
  • PHP初心者です。困ってます。どなたかご教示を!

    ホームページに商品の自動計算機能をつけようとして困ってます。 作成途中までですが、今のところこんな具合です。 (ここから) <html> <head> <title>form</title> </head><body> <p>ご検討いただいている商品にチェックを入れ、「送信」ボタンを押して下さい。</p> <form name="form1" method="post" action="ninshou.php"> <input type="checkbox" name="chk[]" value="バラ">バラ<br> <input type="checkbox" name="chk[]" value="ユリ">ユリ<br> <input type="checkbox" name="chk[]" value="ラン">ラン<br> <input type="submit" name="Submit" value="送信"> </form> </body> </html> <?php $checkbox = $_REQUEST["chk"]; ?><html> <head> <title>sample04</title> </head> <body> <p>この金額は</p> <?php for($i=0; $i<sizeof($checkbox); $i++){ print "${checkbox[$i]}<br>"; } ?> <p>をお求めいただいた場合の総額です。<br /> 計算をやり直す場合は再度チェックを入れ「送信」ボタンを押して下さい。</p> <p><a href="form5.html">戻る</a></p> </body> </html> (ここまで) やりたいことは以下のとおりです。 1.最終的に配列$checkboxに入っている値を他でも使いたい(それぞれの単価をかけて種類別に料金を求めるとか・・・) 2.「この金額は」以降を「送信」ボタンを押した後に初めて表示されるようにしたい 以上、どなたか宜しくお願い致します。

    • ベストアンサー
    • PHP

専門家に質問してみよう