• ベストアンサー

何故unexpected ';'が出るのでしょうか

お尋ねします。以下のスクリプトを書いてブラウザで表示しようとすると Parse error: syntax error, unexpected ';' in C:\xxx om\test.php on line 11   とエラーが出ます。 11行目は ?> と書いてあります。 <?php ~ ?> の対応関係も合っていると思います。 何故、unexpected ';' エラーが出るのでしょうか? どこが間違っているのでしょうか? 不具合修正はどのようにすれば良いか、ご教示いただければ有難いです。よろしくお願いいたします。 <html> <body> <?php if ( $_REQUEST[ "SUBMIT" ] != "" ){ $month=$_POST['month']; $day=$_POST['day']; $memo=$_POST['memo']; if( ($month=='') | ($day=='')){ echo                  ?>      ←ここでsyntax エラー <HTML><BODY> <FONT COLOR="RED"><B>空欄です</B><BR><BR> </FONT><BR></BODY></HTML> <?php exit(); } } ?> </body></html>

  • PHP
  • 回答数2
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

とりあえず、echo の終了が見つからないと言っているので echo "***"; という感じに何か出力するか echoを消せば直ると思います。 処理的にいろいろと突っ込み所はあるんですが、 エラー原因は上記となります。 *******以下サンプル******* <html> <body> <?php if ( $_REQUEST[ "SUBMIT" ] != "" ){ $month=$_POST['month']; $day=$_POST['day']; $memo=$_POST['memo']; if( ($month=='') || ($day=='')){ ?> <FONT COLOR="RED"><B>空欄です</B><BR><BR></FONT><BR> <?php } else { ?> <FONT COLOR="BLUE"><B>空欄ではありません</B><BR><BR></FONT><BR> <?php } } else { ?> <FONT COLOR="GREEN"><B>実行されていません</B><BR><BR></FONT><BR> <?php } ?> </body></html>

spindle
質問者

お礼

なるほど、そういうことだったのですね・・・・。 納得しました。ありがとうございました。

その他の回答 (1)

  • neko-ten
  • ベストアンサー率55% (1287/2335)
回答No.1

echoいらない

spindle
質問者

お礼

そういうことだったのですね。良くわかりました。 ありがとうございました。

関連するQ&A

  • ?> で終わっているのにunexpected $end

     以下のようなスクリプトを作成したのですが、 Parse error: syntax error, unexpected $end in (アドレス) on line 61 とエラーが出てしまいます。色々といじってみましたが、ちゃんと表示されません。どこがおかしいのでしょうか? <html> <head> <title></title> <?php if(empty($_POST[sentpass])){ setcookie("pass"); print <<<_DRK_ </head><body> <p align="center"> パスワードを入力してください。<br><br> <form name="sentpass" action="index.php" method="post" target="_self"> <input></form></p> _DRK_; } else { setcookie("pass","$_POST[sentpass]"); print("<META http-equiv=\"refresh\" content=\"0; URL=index.php\"></head><body>"); } $password = "sample"; if($_COOKIE = $password){ print <<<_EOT_ <em><font size="6">Webサイトの設定</font></em><br><br> 編集する項目を選択してください。<br><br> Webサイト全体の設定(文字色など)<br><br>          (以下略) _EOT_; } else { print <<<_CDR_ パスワードが違っています。もう一度パスワードを入力してください。<br><br> <form name="sentpass" action="index.php" method="post" target="_self"> <input></form></p> _CDR_; } ?> </body></html>  ・・・よろしくお願いします。  真に申し訳ないのですが、多忙のためお礼が若干遅れると思います。すみません・・・。

    • ベストアンサー
    • PHP
  • $_POST["year"]の”が unexpected といわれる。

    下記はある入門書の説明用サンプルコードの一部です。 これをインプットし(勿論、半角です)、ブラウザで開こうとしたところ、下から3行目で Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\***\htdocs\***\****\xxx.php on line 32 というエラーが出てしまいます。(yearの“”を取ると次の“mon”で、また、同じく ”day” でも出ます。) $name1=$_POST["name1"]; のname1ではエラーが出ていないのに、何故 $year = $_POST["year"];で unexpected '"', のエラーが出るのでしょうか。 この本のサポートサイトに問い合わせましたが、ナシのつぶてで大変困っています。 どなたか、心当たりがおありましたらヒントやご教示頂ければ有難いです。 環境はWinXP H/E、apache_2.0.50-win32-x86、PHP5.0.1、MSIE6.0 です。 <?php ・・・・・・・・ session_start(); ・・・・・・・・ if(!isset($_SESSION["form1"])){ $_SESSION["form1"]="input"; ・・・・・・・ $name1=""; $name2=""; $year=""; $mon=""; $day=""; }else{ $name1=$_POST["name1"]; $name2=$_POST["name2"]; if((0==strlen($name1))&&(0==strlen($name2))){ $error["name"]["message"]="<br><font color=\"#FF0000\"><名前が未入力です></font>"; $errors++; }else{    $error["name"]["message"]="; } $year = $_POST["year"]; $mon=$_POST["mon"]; $day=$_POST["day"];

    • ベストアンサー
    • PHP
  • fopenのエラー

    [schdule_edit.php] Warning: fopen(C:\Program Files\xampp\htdocs\schedule\samplefile.txt) [function.fopen]: failed to open stream: No such file or directory in C:\xampp\htdocs\schedule\schedule_edit.php on line 55 Warning: fwrite(): supplied argument is not a valid stream resource in C:\xampp\htdocs\schedule\schedule_edit.php on line 56 Warning: fclose(): supplied argument is not a valid stream resource in C:\xampp\htdocs\schedule\schedule_edit.php on line 57 ---------------------------------------------------------------- 上記のようなエラーがでます。何が原因でこのエラーが出るのか、 色々調べたのですが自分では答えを見つ ける事ができませんでしたので、教えてください。 ---------------------------------------------------------------- [schdule_edit.php] <? if(isset($_POST["regist"])){ //全角→半角 $year=mb_convert_kana($_POST["year"],"a","UTF-8"); $month=mb_convert_kana($_POST["month"],"a","UTF-8"); $day=mb_convert_kana($_POST["day"],"a","UTF-8"); //入力チェック $error_message=array(); if(isset($_POST["year"]) && is_numeric($_POST["year"]) && $_POST["year"] > 2007){ $year=$_POST["year"]; }else{ $error_message[]="年を正しく入力してください"; } if(isset($_POST["month"]) && is_numeric($_POST["month"]) && $_POST["month"] > 0 && $_POST["month"] < 13){ $month=$_POST["month"]; }else{ $error_message[]="月を正しく入力してください"; } if(isset($_POST["day"]) && is_numeric($_POST["day"]) && $_POST["day"]>0 && $_POST["day"]<32){ $day=$_POST["day"]; }else{ $error_message[]="日を正しく入力してください"; } if(isset($_POST["title"])){ if(strstr($_POST["title"],"|")){ $error_message[]="タイトルに|は使えません"; }else{ } $error_message[]="タイトルを入力してください"; } } if(isset($_POST["body"])){ if(strstr($_POST["body"],"|")){ $error_message[]="内容に|は使えません"; }else{ } $error_message[]="内容を入力してください"; } if(!count($error_message)){ //内容の改行を<br>に変換 $body=str_replace(array("\r","\n","\r\n"),"<br>",$body); $filename = "C:\\Program Files\\xampp\\htdocs\\schedule\\samplefile.txt"; $schedule_date =sprintf("%04d%02d%02d",$year,$month,$day); $line=$schedule_dare."|".$title."|".$body; $fp = fopen($filename, "w"); fwrite($fp, $line); fclose($fp); if(count($error_message)){ foreach ($error_message as $value){ print($value); } } } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>スケジュール</title> </head> <body> <form action="schedule_edit.php" method="post"> <input type="text" size="4" name="year">年 <input type="text" size="4" name="month">月 <input type="text" size="4" name="day">日 <br><br> タイトル:<input type="text" size="31" name="title"> <br><br> 内容:<br> <textarea name="body"></textarea> <br><br> <input type="submit" name="regist" value="登録"> </form> </body> </html> ---------------------------------------------------------------- [schedule_list.php] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>スケジュール</title> </head> <body> <?php $filename = "C:\\Program Files\\xampp\\htdocs\\schedule\\samplefile.txt"; $schedule_list = file($filename); foreach ($schedule_list as $line) { // (1) 取得したファイルの各行について、日付、タイトル、本文に分ける list($schedule_date, $title, $body) = explode("|", $line); // 分けた変数を$schedule_date、$title、$bodyに print("日付:$schedule_date タイトル:$title 内容:$body <br>"); } ?> </body> </html> ---------------------------------------------------------------- 宜しくお願いします。

    • ベストアンサー
    • PHP
  • <?php

    <?php if (isset($_POST['reg']) && isset($_POST['reg'])) { $ErrFlg = false; // 氏名欄をチェック $first_name = $_REQUEST['first_name']; $last_name = $_REQUEST['last_name']; if (!trim($first_name) || trim($last_name) == '') { $_POST['err_name_req'] = '氏名が入力されておりません。<br />'; $error = TRUE; } else { unset($_POST['err_name_req']); } // 生年月日欄をチェック $b_year = $_REQUEST['b_year']; $b_month = $_REQUEST['b_month']; $b_day = $_REQUEST['b_day']; if (!trim($b_year) || trim($b_month) || trim($b_day) == '') { $_POST['err_birthday_req'] = '生年月日が入力されておりません。<br />'; $error = TRUE; } else { unset($_POST['err_birthday_req']); } if (checkdate($b_month, $b_day, $b_year) === false) { $_POST['err_birth_ereg'] = '生年月日が正しくありません。<br />'; $error = TRUE; } else { unset($_POST['err_birth_ereg']); } } ?> <html> <body> <form action="<?php $_SERVER["PHP_SELF"]; ?>" method="POST"> 氏名<br /> <?php print $_POST['err_name_req']; ?><br /> <input type="text" name="first_name" value="<?php print $first_name; ?>" /><input type="text" name="last_name" value="<?php print $last_name; ?>" /><br /> 生年月日<br /> <?php print $_POST['err_birth_req'].$_POST['err_birth_ereg']; ?><br /> <input type="text" name="b_year" value="<?php print $b_year; ?>" size="5" />年 <input type="text" name="b_month" value="<?php print $b_month; ?>" size="2" />月 <input type="text" name="b_day" value="<?php print $b_day; ?>" size="2" />日 <br /> <input type="submit" name="reg" value="登録" /> </form> </body> </html> としています。 登録ボタンを押した際に入力チェックされることがなければデータベースに登録したいのですが、どこに記述してよいのか困っています。 また、どのように記述したらよろしいでしょうか? イメージとしては登録ボタンを押したら、「登録しました。」というコメントだけが表示されるようにしたいのですが・・・ javascriptの使用は考えておりませんので、できればPHPでお願いいたします。 もしお分かりの方がいらっしゃいましたらご教授いただけないでしょうか? また上記の内容でおかしいところがありましたらご指摘いただけないでしょうか?

    • ベストアンサー
    • PHP
  • PHPのエラー「Unexpected character ...」「syntax error, unexpected ...」について

    PHP Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /home/***/***.php on line 25 PHP Parse error: syntax error, unexpected '<' in /home/***/***.php on line 26 という2行のエラーが表示されました。 まったく明快な答えは探せませんでした。 もしも少しでも手がかりになるような情報がありましたら教えて下さい。 お願いします。

    • 締切済み
    • PHP
  • PHP初心者です。何処がエラーなのかさっぱり解りません。

    超初心者です。 PHPの勉強を始めたばかりで、いきなりつまずいています。 下記の表示になりエラーになっているのですが、何処がエラーなのか意味が解りません。 Parse error: syntax error, unexpected $end in C:\xampp\htdocs\phplesson\03\login.php on line 31 どなたか教えてください。 よろしくお願いします。 ----------------- <?php session_start(); $error_message = ""; //ログインボタンが押されたかを判定 if (isset($_POST["login"])) { if ($_POST["member_name"] == "php" && $_POST["password"] == "password") { //ログインが成功した証拠をセッションに保持 $_SESSION["login_name"] = $_POST["member_name"]; //管理者専用画面へWebブラウザをリダイレクトさせる $login_url = "http://{$_SERVER["HTTP_HOST"]}/phplesson/03/anq_result.php"; header("Location: {$login_url}"); exit; } $error_message ="メンバー名かパスワードを間違えています。"; } ?> <html> <body> <?php if ($error_message) { print '<font color="red">' .$error_message. '</font>'; } ?> <form action="/phplesson/03/login.php" method="post"> メンバー名:<input type="text" name="member_name" value="" /><br /> パスワード:<input type="password" name="password" value="" /><br /> <input type="submit" name="login" value="ログイン" /> </form> </body> </html>

    • ベストアンサー
    • PHP
  • syntax error, unexpected '}' というエラーの対処法

    PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33 というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか? ・game.php <html> <head> <title>数当てゲーム</title> </head> <body> <h1 style="background:#cccccc">数当てゲーム</h1> <form method="POST" action="game.php"> 1~100までの数を入力してください <input type="text" name="answer" size="5" maxlength="3" /> <input type="sbumit" value=回答" /> </form> <hr /> <?php session_start(); if(is_null($_SESSION['answer'])){ mt_stand(microtime()*1000000); $_SESSION['answer']=mt_rand(1,100); $_SESSION['game_cnt']=0; } if($_POST['answer']!=""){ $_SESSION['game_cnt']++; if($_session['answer']==$_POST['answer']){ print("おめでとうございます". $_SESSION['game_cnt']."回で正解しました!"); session_destroy(); }else{ if($_SESSION['answer']>$_POST['answer']){ print("もう少し大きいです。"); }else print("もう少し小さいです。"); } } } ?> </body> </html> それとこの間違えたところをなおしたあとはいつもコンピュータを再起動しないと修正したところが適用されないのですがほかに方法はないですか?基本的な質問ですいません。

    • ベストアンサー
    • PHP
  • エラーメッセージについて

    Parse error: syntax error, unexpected $end in C:\xampp\htdocs\check.php on line 25 とでますが、line 25(一番下の行)が間違っていると言われ、プログラムさえ書いていません。 PHPを学ぶチャレンジをしている最中です。下記のように書きました。 -------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <?php $nickname=$_POST['nickname']; if($nickname==") { print'ニックネームが入力されていません'; } else { print'ようこそ'; print $nickname; print'様'; } ?> </body> </html> -------- この下が line 25 です。 よろしくお願いいたします。

  • phpを挑戦している中でのエラーメッセージについて

    初期の学び中の者です。 Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\check.php on line 51 とでるのですが、何回みなおしてもエラーを見つけることができません。 line 51、というのは下記のです。(50行に余分の「’」が入っていたのですが、それを修正しましたが、51にあるメッセージです)。 print'<input type="button" onclick="history.back()" value="戻る">'; よろしくお願いいたします。 -------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>PHP基礎</title> </head> <body> <?php $nickname=$_POST['nickname']; $email=$_POST['email']; $goiken=$_POST['goiken']; if($nickname=='') { print'ニックネームが入力されていません。<br />'; } else { print'ようこそ'; print $nickname; print'様'; print'<br />'; } if($email=='') { print'メールアドレスが入力されていません。<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="button" onclick="history.back()" value="戻る">'; print'<input type="submit" value="OK">'; print'</form>'; } ?> </body> </html> --------

  • unexpected T_REQUIRE とは?

    <? php require('Smarty.class.php'); require('Logging.class.php'); …・ と書いてあるlogging_gui.phpファイルをブラウザで開こうとすると、 Parse error: syntax error, unexpected T_REQUIRE in C:\Program Files\Apache Group\Apache2\**********\logging_gui.php on line 3 というエラーが出ます。 PHPマニュアルでT_REQUIREを調べてみましたが、意味が分かりません。 テンプレートはtemplates_cにコンパイルされています。 何が不具合であると言っているのでしょうか? Logging.class.phpの中身に間違いがあるということでしょうか? エラーをなくすには何をチェックすればよいのでしょうか? 超初歩的、かつ漠然とした質問かも知れませんが、よろしくお願いします。

    • 締切済み
    • PHP

専門家に質問してみよう