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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

3436閲覧

簡易掲示板に編集機能をつけたいです。

kaity

総合スコア19

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/12/01 15:13

php

1<html> 2<head> 3<meta charset="utf-8"> 4 <title>○○</title> 5 </head> 6 7 <body> 8 9 <?php 10 $name=$_POST["name"];//コメントフォーム 11 $namae=$_POST["namae"];//名前フォーム 12 $sakuzyo=$_POST["sakuzyo"];//削除フォーム 13 $edit=$_POST["edit"];//編集機能フォーム 14 $date=date('Y年m月d日 H時i分');//日付 15 $filename="●●";//テキストファイル 16 17 18 //投稿機能開始 19 20 if(empty($namae)==false&&empty($name)==false){//もし$namaeと$nameが空っぽじゃなかったら 21 $ret_array=file($filename);//テキストファイルを読み込み 22 $d=$ret_array === false ? 1 : count($ret_array)+1;//2-1の要素の数を数える 23 $a=$d."<>".$namae."<>".$name."<>".$date;//投稿番号、名前、コメント、日付 24 $fp=fopen($filename,'a+');//読み込みと追加書き込みをする 25 fwrite($fp,$a.PHP_EOL);//書き込み処理 26 fclose($fp); 27 } 28 29 //投稿機能終了 30 31 //削除機能開始 32 33 if(empty($sakuzyo)==false){//空っぽじゃなかったら 34 $ret_array=file($filename);//テキストファイルを読み込み 35 $kakikomi=fopen($filename,'w');//上書き書き込みする 36 for($i=0; $i<count($ret_array);$i++){//ループ処理 37 if($i==$sakuzyo-1){//削除番号と投稿番号一致したら 38 continue;//スキップ 39 } 40 fwrite($kakikomi,$ret_array[$i]);//書き込み処理 41 } 42 fclose($kakikomi); 43 } 44 45 //削除機能終了 46 47 //編集選択始まり 48 49 if(empty($edit)==false){//$editが空っぽじゃなかったら 50 $ret_array=file($filename);//ファイル読み込み 51 for($i=0; $i<count($ret_array);$i++){//ループ処理 52 $ex=explode("<>",$ret_array[$i]); 53 if($i==$edit-1){//投稿番号と編集番号が一致したら 54 $editbango=$ex[0]; 55 $editnamae=$ex[1]; 56 $editname=$ex[2]; 57 } 58 } 59 $eded=$editbango."<>".$editnamae."<>".$editname; 60 61 //編集選択終わり 62 63 //編集機能始まり 64 65 if(empty($sakuzyo)==false&&empty($namae)==false&&empty($name)==false){//削除番号と$namaeと$namaeが空っぽじゃなかったら( 66 $editel=file($filename);//ファイル読み込み 67 $kakikomi=fopen($filename,"w");//上書き書き込み 68 for($i=0; $i<count($editel);$i++){//ループ処理 69 $plode=explode("<>",$editel); 70 if($i==$edit-1){//一致したら 71 $d=$editel === false ? 1 : count($editel)+1;//2-1の要素の数を数える 72 $a=$d."<>".$namae."<>".$name."<>".$date; 73 fwrite($kakikomi,$a.PHP_EOL);//差し替え 74 }//if($i==$edit-1)閉じ 75 else{//一致しなかったら 76 fwrite($kakikomi, $eded);//新規投稿 77 }//else閉じ 78 }//ループ処理閉じ 79 fclose($kakikomi); 80 }//if(empty($sakuzyo)==false&&empty($namae)==false&&empty($name)==false)閉じ 81 82 //編集機能終わり 83 84 85 ?> 86 87 <form method="POST" action="○○.php"> 88 <input type="text" name="namae" placeholder="名前" value="<?php echo $editnamae;?>"><br> 89 <input type="text" name="name" placeholder="コメント" value="<?php echo $editname;?>"><br> 90 <input type="text" name="number" value="<?PHP echo $editbango;?>"> 91 <input type="submit" value="送信"> 92 <input type="text" name="sakuzyo" placeholder="削除対象番号"><br> 93 <input type="submit" value="削除"><br> 94 <input type="text" name="edit" placeholder="編集対象番号"><br> 95 <input type="submit" value="編集"> 96 </form> 97 98<?php 99 100 101 //表示機能 102 103 $ret_array=file($filename);//テキストファイルを読み込み 104 for($i=0; $i<count($ret_array);$i++){//ループ処理 105 $ex=explode("<>",$ret_array[$i]);//投稿番号取得、それを読み込んだファイル 106 echo $ex[0].$ex[1].$ex[2].$ex[3]."<br>";//分解して投稿番号を取得、表示 107 } 108?> 109 110 111</body> 112</html> 113

簡易掲示板に対sて編集機能をつけています。指定された番号のものだけ編集できるようにしたいです。
コード作成してみたのですが、今最後の行で$endのエラーが起きてしまっています。
修正点 後 間違っている部分ご指摘お願いしたいです、

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

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

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

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

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

guest

回答2

0

ベストアンサー

}が一つ足りないのではないでしょうか。

PHP

1 //編集選択始まり 2 3 if(empty($edit)==false){//$editが空っぽじゃなかったら 4 $ret_array=file($filename);//ファイル読み込み 5 for($i=0; $i<count($ret_array);$i++){//ループ処理 6 $ex=explode("<>",$ret_array[$i]); 7 if($i==$edit-1){//投稿番号と編集番号が一致したら 8 $editbango=$ex[0]; 9 $editnamae=$ex[1]; 10 $editname=$ex[2]; 11 } 12 } 13 $eded=$editbango."<>".$editnamae."<>".$editname; 14 } // ←ここ 15 16 //編集選択終わり

参考
Parse error: syntax error, unexpected $end in について - zek覚書

ちなみにインデントを適切に入れると見つけやすいですよ。

PHP

1 //編集選択始まり 2 3 if(empty($edit)==false){//$editが空っぽじゃなかったら 4 $ret_array=file($filename);//ファイル読み込み 5 for($i=0; $i<count($ret_array);$i++){//ループ処理 6 $ex=explode("<>",$ret_array[$i]); 7 if($i==$edit-1){//投稿番号と編集番号が一致したら 8 $editbango=$ex[0]; 9 $editnamae=$ex[1]; 10 $editname=$ex[2]; 11 } 12 } 13 $eded=$editbango."<>".$editnamae."<>".$editname; 14 15 //編集選択終わり

if(empty($edit)==false){
の行に対して、同じインデントになっている行が無いのが分かりますか?

インデントの利点についてはここが詳しいです。
PHP - PHPとHTMLの綺麗な書き方、インデントを意識した書き方というのがいまいち理解できていないです|teratail

投稿2018/12/01 23:14

Take555

総合スコア29

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

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

kaity

2018/12/02 11:52

ありがとうございます、解決しました!
guest

0

コード作成してみたのですが、今最後の行で$endのエラーが起きてしまっています。

PHPのエラーメッセージはどこがどう悪いのか丁寧に説明してくれているものがほとんどです。
そのエラーメッセージの意味を調べて、時にはエラーメッセージそのままで検索してみればほとんどのエラーが解消できます(想定通り動くかどうかはロジックの問題なので別)

構文エラーであればEclipseなどのIDEでコーディングしていけばプログラム実行前にそのエラーを確認できるので手間が半分以下になります。ご検討ください。

あと「エラーが起きました」「うまくいきません」だけだと何が起きているか質問者さんにしかわかりませんので、エラーの提示、起きている現象を具体的に記載することが推奨されています。
質問するときのヒント」も読んで、質問を投稿する前にできること・質問する際に注意すべきことを確認してください。

投稿2018/12/02 04:58

m.ts10806

総合スコア80765

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問