PHPを使ってテキストファイルを利用した掲示板を作成中です。
編集機能を実装したのですが、編集番号を送信したらその番号の投稿が元のフォームに記入されるようにしたいのに、うんともすんとも言いません。
色々な質問を見てみたのですが自分じゃわかりませんでした。
何か間違っているようでしたら教えていただきたいです。
追記
投稿番号<>名前<>コメント<>送信日時
という風にテキストファイルに保存しているのですが、
削除機能を実装した際に、投稿番号にずれが生じてしまいます。
番号の重複が起こらないようにしたいです。
どのようにしたらいいかアドバイスをお願いしたいです。
解決しました編集済み
php
1<html> 2<head> 3<title>keijiban.php</title> 4</head> 5<body> 6 7<?php 8$filename="keijiban.text"; 9$name=$_POST['name']; 10$comment=$_POST['comment']; 11$postedat=date("Y/m/d H:i:s"); 12 13 14//新規追加 15if(isset($_POST['name'])&&($_POST['comment'])&&!($_POST['edit'])){ 16 $lines=file($filename); 17 foreach($lines as $line){ 18 $data=explode("<>",$line); 19 $num=0; 20 if($num<$data[0]){ 21 $num=$data[0]; 22 } 23 } 24 $num++; 25 $fp=fopen($filename,'a'); 26 fwrite($fp,$num."<>".$name."<>".$comment."<>".$postedat."<br>\n"); 27 fclose($fp); 28} 29 30//削除 31if (isset($_POST['delete'])){ 32 $delete=$_POST['delete']; 33 $lines=file($filename); 34 $fp=fopen($filename,'w'); 35 foreach($lines as $line){ 36 $data=explode("<>",$line); 37 if($data[0]!=$delete){ 38 fwrite($fp,$line); 39 } 40 } 41 fclose($fp); 42 } 43 44//編集 45$edit_num=$_POST['edit_num']; 46$lines=file($filename); 47foreach($lines as $line){ 48 $data=explode('<>', $line[0]); 49 if($edit_num==$editdata[0]){ 50 $editdata0=$editdata[0]; 51 $editdata1=$editdata[1]; 52 $editdata2=$editdata[2]; 53 $editdata3=$editdata[3]; 54 } 55} 56 57 58if(isset($_POST['name'])&&($_POST['comment'])&&($_POST['edit'])){ 59 $lines=file($filename); 60 $fp=fopen($filename,'w'); 61 $edit=$_POST['edit']; 62 foreach($lines as $line){ 63 $data=explode("<>",$line); 64 if($data[0]==$edit){//投稿番号と編集番号が一致したとき上書き 65 fwrite($fp,$edit."<>".$name."<>".$comment."<>".$postedat."<br>\n"); 66 }else{ 67 fwrite($fp,$line); 68 } 69 fclose($fp); 70 } 71 } 72 //表示 73$lines=file($filename); 74foreach($lines as $line){ 75 $data=explode("<>",$line); 76 echo $data[0].$data[1].$data[2].$data[3]."\n"; 77} 78?> 79<form action="keijiban.php" method="post"> 80<br><br> 81投稿:<br> 82 <input type="text" name="name" placeholder="名前" value="<?php echo $editdata1;?>"><br> 83 <input type="text" name="comment" placeholder="コメント" value="<?php echo $editdata2;?>"><br> 84 <input type="submit" value="投稿"><br><br> 85削除:<br> 86 <input type="text" name="delete" placeholder="削除対象番号"><br> 87 <input type="submit" value="削除"><br><br> 88編集:<br> 89 <input type="text" name="edit_num" placeholder="編集対象番号"><br> 90 <input type="submit" value="編集"> 91 <input type="hidden" name="edit" value="<?php echo $edit_num;?>"> 92</form> 93 94</body> 95</html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/11/19 02:44
2018/11/19 09:42
2018/11/19 09:44
2018/11/19 18:20