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

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

ただいまの
回答率

90.34%

説明してね。Parse error:

解決済

回答 4

投稿

  • 評価
  • クリップ 0
  • VIEW 1,104

b1ackc0ffee

score 201

<?php
$defs = array(
  'name' => '山田太郎','e-mail' => 'yamada@wings.msg.to',
  'zip' => '100-0000','sex' => '男性','age' =>'40',
  'os' => array('win','linux'),'memo' =>'特になし'
);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>PHP入門教室</title>
</head>
<body>
<h3>アンケート</h3>
<form method="POST" action="request2.php">
  <div class="container">
    <label for="name">名前:</label><br />
<input type="text" id="name" name="name"
  value="<?php print($defs['name']; ?>" />
  </div>
  <div class="container">
    <label for="email">メールアドレス:</label><br />
    <input type="e-mail" id="email" name="email"
      value="<?PHP prit($defs['email']);?>"/>
  </div>
  <div class="container">
    <label for="zip">郵便番号:</label><br />
<input type="text" id="zip" name="zip"
  value="<?php print($defs['zip']); ?>" />
  </div>
  <div class="container">
    性別:<br />
<?php
$sexes = array('男性', '女性', 'その他');
foreach ($sxes as $sex) {
  print('<label>');
  print('<input type="radio" name="sex" value="'.$sex.'"');
  if ($sex === $defs['sex']) {print(' checked');}
  print(' />');
  print($sex.'</label>');
  # ラジオボタンの作成
}
?>
>
  </div>
  <div class="container">
    <label for="age">年齢:</label><br />
    <select id="age" name="age">
    <?php
    for($i = 10; $i <= 50; $i += 10){
      print('<option value="'. $i.'"');
      if($i === (int)$defs['age']){print(' selected');}
      print('>' . $i .'代</option>');
    }
    ?>
    </select>
  </div>
  <div class="container">
    ご使用のOS:<br />
    <?php
    oss = array('win' =>'windows', 'mac' => 'Mac',
      'linux' => 'Linux');
      foreach ($oss as $k_os => $v_os){
        print('<label>');
        print(input type='checkbox' name="os[]" value="'.$k_os.'"');
        foreach ($defs['os'] as $os){
          if ($k_os === $os) { print(' checked'); }
        }
        print(' />');
        print($v_os.'</label>');
      }
    ?>
  </div>
  <div class="container">
      <label for="memo">サイトへのご意見:</label><br />
      <textarea rows="5" cols="30" id="memo"
        name="memo"><?php print($defs['memo']); ?></textarea>
  </div>
  <input type="hidden" name="quest_num" value="XXX15204" />
  <input type="submit" value="送信" />
</form>
</body>
</html>
------------------------------------------------------------
↑このコードを読み込んだら
↓これがでました。
なんですの?
------------------------------------------------------------
Parse error: syntax error, unexpected ';' in C:\xampp\htdocs\php10\lesson14\request1.php on line 20
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • 退会済みユーザー

    2016/02/07 04:48

    こちらの質問が他のユーザから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

回答 4

+1

Parse error: syntax error, unexpected ';' in C:\xampp\htdocs\php10\lesson14\request1.php on line 20
20行目がおかしいといってます
Syntax Errorなので文法ミスですね


value="<?php print($defs['name']; ?>" /> 
20行目といえばここですね


とりあえずヒントはここまでにします。
エラーの読み方の参考に

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/06/09 15:36

    お姉さん
    ヒント有難うございます!
    ほんとだ、、見落としてました。
    今度は、
    Parse error: syntax error, unexpected ';' (T_STRING) in C:\xampp\htdocs\php10\lesson14\request1.php on line 35
    ってでてきました><、

    キャンセル

+1

まずエラー内容をきちんと把握しましょう。きっかけがどこかわからなければ、デバッグは大変困難です。

Parse error: syntax error, unexpected ';' in C:\xampp\htdocs\php10\lesson14\request1.php on line 20

20行目で予期せぬ ; による構文エラーがあると出力されています。

20行目↓
value="<?php print($defs['name']; ?>" /> 

確かめてみると、printがきちんと閉じられずに ; が挿入されているのが原因のようですね。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/06/09 15:36

    丁寧に有難うございます★
    本当ですね^^

    キャンセル

+1

value="<?php print($defs['name']; ?>" /> 
閉じカッコが足りません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/06/09 16:44

    おおお
    ついに表示されました★
    ありがとうございます。


    >phpではシングルクォートとダブルクォートでは速度に差が出ます。
    >ダブルクォートでは、変数を展開するため遅くなります。

    速度だけで、表示されたりされなくなったりするのでしょうか?

    キャンセル

  • 2015/06/09 16:54

    >print('input type="checkbox" name="os[]" value="'.$k_os.'"');
    >にかえたら、表示されたんです

    この部分についてはシングルクォート、ダブルクォートの差ではなく、ただのミスです。
    >print(input type='checkbox' name="os[]" value="'.$k_os.'"');
    最初のシングルクォートがないため、文字列になっていなかったからです。
    文字列の体をなしてません。
    ついでに言えば、<もないため、結構むちゃくちゃです。

    キャンセル

  • 2015/06/09 18:55

    なるほど!
    最後までご親切に有難うございます★

    キャンセル

checkベストアンサー

0

エラーの on line 20
から、ソースコードの20行目にエラーがあることがわかります。

また、Parse error: syntax error, unexpected ';'
から、';'付近にエラーがあることがわかります。

これが基本的なエラーの読み方です。

それを踏まえて、ソースコードの20行目
value="<?php print($defs['name']; ?>" /> 
を見ると、printの ( が閉じていないことがわかります。

なので
value="<?php print($defs['name']); ?>" /> 

とすると直ると思います。

ちなみにsyntax error とは、構文エラーという意味で、今回のようなカッコの閉じ忘れなどの事です。
他には、logical error があり、これは論理エラーという意味で、プログラム内の計算式の間違いなどの事です。

構文エラー http://www.itmedia.co.jp/im/articles/1111/07/news198.html
論理エラー http://www.itmedia.co.jp/im/articles/1111/07/news211.html

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/06/09 15:38

    ふむふむ。
    有難うございます。

    キャンセル

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

  • ただいまの回答率 90.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る