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

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

ただいまの
回答率

87.35%

input要素を増やしたら、エラーが出ました。

解決済

回答 4

投稿

  • 評価
  • クリップ 1
  • VIEW 562

score 1

前提・実現したいこと

フォームからtxtファイルへの書き込み

発生している問題・エラーメッセージ

PHP Parse error:  syntax error, unexpected 'disp' (T_STRING), expecting ']' in /workspace/Main.php on line 8

該当のソースコード

<?php
$arr = array(
'01.txt'=>['name'=>'inp_01','disp'=>'画用紙(茶)'],
'02.txt'=>['name'=>'inp_02','disp'=>'画用紙(赤)'],
'03.txt'=>['name'=>'inp_03','disp'=>'画用紙(オレンジ)'],
'04.txt'=>['name'=>'inp_04','disp'=>'画用紙(ピンク)'],
'05.txt'=>['name'=>'inp_05','disp'=>'画用紙(白)'],
'06.txt'=>['name'=>'inp_06’,'disp'=>'画用紙(黄)'],
'07.txt'=>['name'=>'inp_07’,'disp'=>'画用紙(黄緑)'],
'08.txt'=>['name'=>'inp_08’,'disp'=>'画用紙(緑)'],
'09.txt'=>['name'=>'inp_09’,'disp'=>'画用紙(水色)'],
'10.txt'=>['name'=>'inp_10’,'disp'=>'画用紙(青)'],
'11.txt'=>['name'=>'inp_11’,'disp'=>'画用紙(紫)'],
'12.txt'=>['name'=>'inp_12’,'disp'=>'画用紙(黒)'],
);
$msg = array();
if ($_POST) {
foreach ($arr as $file=>$val) {
$name = $val['name'];
if (!isset($_POST[$name])) die('abort');
file_put_contents($file, $_POST[$name] . PHP_EOL, LOCK_EX);
$msg[] = sprintf('%s:%s<br>', $file, htmlspecialchars($_POST[$name], ENT_QUOTES));
}
}
?>
<!DOCTYPE HTML >
<html lang="ja">
<head>
<title>中二1  7月10日 備品貸出要求</title>
</head>
<body>
<h4>下記のフォームに必要な数を記入してください。記入するのは、「数字」のみです。必要ないものに関しては空白のままにしておいてください。</h4>
<?= count($msg) > 0 ? implode('', $msg) . "上記内容で備品貸出を要求しました。5F備品倉庫に来てください。又、追加の貸出を要求する場合は、直接備品倉庫に来てください。<hr>" : '' ?>
<div style="text-align:center">
<form action="main.php" method="post">
<?php
foreach ($arr as $val) {
$disp = $val['disp'];
$name = $val['name'];
printf('%s<br><input type="text" name="%s" value="%s"><br>', $disp, $name, isset($_POST[$name]) ? htmlspecialchars($_POST[$name], ENT_QUOTES) : '');
}
?>
<input type="submit">
</form>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/pace.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/pace/1.0.2/themes/black/pace-theme-center-circle.min.css" />
</body>
</html>

試したこと

半角、全角を試しましたが、ダメでした。
又、5項目の書き込みまでは、問題ありませんでした。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • 退会済みユーザー

    退会済みユーザー

    2019/09/06 13:45

    「半角、全角を試しましたが、ダメでした」試し方が間違っていたんですね。文字の種別でカラー表示が変わるようなテキストエディタや、文法エラーの検出ができる統合開発環境などの導入を強くおすすめします。文字の打ち間違いレベルでteratailに来なくても済むようになるし作業性も向上しますし。

    キャンセル

  • 退会済みユーザー

    2019/09/14 00:12

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

回答 4

+3

シングルクォーテーションが全角

マークダウンのシンタックスハイライトでもおかしいのが分かるはず。
というか、構文チェック機能のあるエディタ使ってください。できればEclipseなどの統合環境(IDE)

又、5項目の書き込みまでは、問題ありませんでした。

であれば直前の項目を1行コピペして中身だけ変更すれば間違いないですよね。

$arr = [
'01.txt'=>['name'=>'inp_01','disp'=>'画用紙(茶)'],
'02.txt'=>['name'=>'inp_02','disp'=>'画用紙(赤)'],
'03.txt'=>['name'=>'inp_03','disp'=>'画用紙(オレンジ)'],
'04.txt'=>['name'=>'inp_04','disp'=>'画用紙(ピンク)'],
'05.txt'=>['name'=>'inp_05','disp'=>'画用紙(白)'],
];
$arr = [
'01.txt'=>['name'=>'inp_01','disp'=>'画用紙(茶)'],
'02.txt'=>['name'=>'inp_02','disp'=>'画用紙(赤)'],
'03.txt'=>['name'=>'inp_03','disp'=>'画用紙(オレンジ)'],
'04.txt'=>['name'=>'inp_04','disp'=>'画用紙(ピンク)'],
'05.txt'=>['name'=>'inp_05','disp'=>'画用紙(白)'],
'05.txt'=>['name'=>'inp_05','disp'=>'画用紙(白)'],
];
$arr = [
'01.txt'=>['name'=>'inp_01','disp'=>'画用紙(茶)'],
'02.txt'=>['name'=>'inp_02','disp'=>'画用紙(赤)'],
'03.txt'=>['name'=>'inp_03','disp'=>'画用紙(オレンジ)'],
'04.txt'=>['name'=>'inp_04','disp'=>'画用紙(ピンク)'],
'05.txt'=>['name'=>'inp_05','disp'=>'画用紙(白)'],
'06.txt'=>['name'=>'inp_06','disp'=>'画用紙(黄)'],
];

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

checkベストアンサー

+2

'inp_xx’ の閉じ側のシングルクォートが間違ってます。 '

'06.txt'=>['name'=>'inp_06’,'disp'=>'画用紙(黄)'],
'07.txt'=>['name'=>'inp_07’,'disp'=>'画用紙(黄緑)'],
'08.txt'=>['name'=>'inp_08’,'disp'=>'画用紙(緑)'],
'09.txt'=>['name'=>'inp_09’,'disp'=>'画用紙(水色)'],
'10.txt'=>['name'=>'inp_10’,'disp'=>'画用紙(青)'],
'11.txt'=>['name'=>'inp_11’,'disp'=>'画用紙(紫)'],
'12.txt'=>['name'=>'inp_12’,'disp'=>'画用紙(黒)'],

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+2

inp_06-12の閉じてるクォーテーションがおかしいです

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+1

'06.txt'=>['name'=>'inp_06’,'disp'=>'画用紙(黄)'],
'07.txt'=>['name'=>'inp_07’,'disp'=>'画用紙(黄緑)'],
'08.txt'=>['name'=>'inp_08’,'disp'=>'画用紙(緑)'],
'09.txt'=>['name'=>'inp_09’,'disp'=>'画用紙(水色)'],
'10.txt'=>['name'=>'inp_10’,'disp'=>'画用紙(青)'],
'11.txt'=>['name'=>'inp_11’,'disp'=>'画用紙(紫)'],
'12.txt'=>['name'=>'inp_12’,'disp'=>'画用紙(黒)'],


シングルクォーテーションが間違っています。

っていうのは他の方もおっしゃているのでじゃぁどうすれば同じ間違えないかと言うことをお考えください。

自分の場合はAtomを使っていますが些細なミスでteratailに来られるよりこのようなミスを色分け等してくれるテキストエディタの導入をお勧めします。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/09/06 15:33

    私はEclipse利用者ですが起動したりファイル作ったり面倒なので1枚物のPHPならpaiza.ioとかでザっと見てます。
    https://paiza.io/ja

    キャンセル

  • 2019/09/06 16:35

    自分の場合 iPadでプログラミングすることが多いのでpaiza.io+サーバーみたいな感じで作ってます。
    パソコンだとatomって感じです。
    起動するのはめんどくさいですが端末間の共有がatomの方が簡単なので...

    キャンセル

  • 2019/09/06 16:36

    iPadで!私にはできないです・・

    キャンセル

  • 2019/09/06 19:38 編集

    スペックと安定性に定評があるので結構使い始めると他に戻れません。。。
    (拡張性には難ありですが。。。)

    キャンセル

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

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

関連した質問

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