現在掲示板にパスワード機能をつけたいと考えています。
ファイルはphpファイルのindex.php、掲示板で出力するデータを格納するreceave.txt,で構成しています。
やりたいことは
消去機能の部分で、入力された番号とパスワードが格納されているものと一致している場合消去し、消去しましたと表示させることです。
現在消去はできるのですが、パスワードに関係なく気wてしまう状況です。
また消えた後に<>が残ってしまうのですがいい表示方法はないでしょうか?
またなぜパスワードがきかないのでしょうか?
コードの何が間違っているのでしょうか?
回答よろしくお願いします。
php
1 2 3<?php 4 5 6 7$file="receive.txt"; 8if (file_exists($file)) { 9 $count = count(file($file))+1; 10} else { 11 $count = 1; 12 } 13$err_msg1 = ""; 14$err_msg2 = ""; 15$err_msg7= ""; 16$message =""; 17$passmessage=""; 18$edfile = file('receive.txt'); 19$name=( isset( $_POST["name"] ) === true ) ?$_POST["name"]: ""; 20$text=( isset( $_POST["text"] ) === true ) ?$_POST["text"]: ""; 21$password=( isset( $_POST["password"] ) === true ) ?$_POST["password"]: ""; 22$data=($count."<>".$name."<>".$text."<>" .date('H:i:s')."<>".$password."\n"); 23 24if ( isset($_POST["posting"] ) === true ) { 25 26 if ( $name === "" ) $err_msg1 = "名前を入力してください"; 27 28 if ( $text === "" ) $err_msg2 = "コメントを入力してください"; 29 30 if ( $password === "" ) $err_msg7 = "パスワードを入力してください"; 31 32 33 if( $err_msg1 === "" && $err_msg2 ==="" && $err_msg7 ===""){ 34 $fp = fopen( "receive.txt" ,"a" ); 35 fwrite( $fp , $data); 36 $message ="投稿に成功しました。"; 37 38 } 39 } 40 41 42 43 44 45// 消去フォーム 46$err_msg6 = ""; 47$err_msg8 = ""; 48$delfile = file('receive.txt'); 49$delete=( isset( $_POST["delete"] ) === true ) ?$_POST["delete"]: ""; 50$pass2del=( isset( $_POST["pass2del"] ) === true ) ?$_POST["pass2del"]: ""; 51 52 53if (isset($_POST['delete'])) { 54 55 if ( $delete === "" ) $err_msg6 = "番号を入力してください"; 56 57 if ( $pass2del === "" ) $err_msg8 = "パスワードを入力してください"; 58 59 if( $err_msg6 === "" && $err_msg8 === ""){ 60 $fp = fopen("receive.txt", "w"); 61 for ($i = 0; $i < count($delfile); $i++) { 62 $deldata = explode("<>", $delfile[$i]); 63 if ($deldata[0] !== $delete && $deldata[4] !== $pass2del ) { 64 fwrite($fp, $delfile[$i]); 65 } else { 66 fwrite($fp, "消去しました。\n"); 67 } 68 } 69} 70 fclose($fp); 71} 72 73// 編集フォーム 74 75$err_msg3 = ""; 76$err_msg4 = ""; 77$err_msg5 = ""; 78$message2 =""; 79$edfile = file('receive.txt'); 80$renum=( isset( $_POST["renum"] ) === true ) ?$_POST["renum"]: ""; 81$rename=( isset( $_POST["rename"] ) === true ) ?$_POST["rename"]: ""; 82$retext=( isset( $_POST["retext"] ) === true ) ?$_POST["retext"]: ""; 83$redata=($renum."<>".$rename."<>".$retext."<>" .date('H:i:s'). "\n"); 84 85 86if ( isset($_POST["edit"] ) === true ) { 87 88 if ( $renum === "" ) $err_msg3 = "番号を入力してください"; 89 90 if ( $rename === "" ) $err_msg4 = "名前を入力してください"; 91 92 if ( $retext === "" ) $err_msg5 = "コメントを入力してください"; 93 94 if( $err_msg3 === "" && $err_msg4 ==="" && $err_msg5 ===""){ 95 $fp = fopen("receive.txt", "w"); 96 for ($i = 0; $i < count($edfile); $i++) { 97 $editraw = explode("<>", $edfile[$i]); 98 if ($editraw[0] !== $renum) { 99 fwrite($fp, $edfile[$i]); 100 } 101 else{ 102 fwrite($fp, $redata); 103 $message2 ="編集に成功しました。"; 104 105 } 106 } 107 } 108 } 109 110 111 112 113?> 114 115<!DOCTYPE html> 116<html lang="ja"> 117<head> 118<meta charset="UTF-8"> 119<title>掲示板</title> 120 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> 121 <link rel="stylesheet" href="./styles.css" type="text/css"> 122</head> 123<body> 124<h1>掲示板</h1> 125<section> 126 <h2>新規投稿</h2> 127 <form action="index.php" method="post"> 128 名前 : <input type="text" name="name" > <?php echo $err_msg1; ?><br> 129 コメント: <input type="text" name="text" > <?php echo $err_msg2; ?><br> 130 パスワードを設定 <input type="text" name="password" > <?php echo $err_msg7; ?> 131 <input type="submit" value="投稿" name="posting"><br> 132 <?php echo $message; ?> 133 </form> 134 135 136 <h2>消去</h2> 137 <form action="index.php" method="post"> 138 消去番号 <input type="number" name="delete"> <?php echo $err_msg6; ?><br> 139 パスワードを入力 <input type="text" name="pass2del" > <?php echo $err_msg8; ?><br> 140 <input type="submit" value="消去"> <br> 141 </form> 142 143 <h2>投稿編集</h2> 144 <form action="index.php" method="post"> 145 編集番号 <input type="number" name="renum"> <?php echo $err_msg3; ?><br> 146 名前: <input type="text" name="rename" ><?php echo $err_msg4; ?><br> 147 コメント: <input type="text" name="retext" > <?php echo $err_msg5; ?><br> 148 パスワードを入力 <input type="text" name="pass3ed" > 149 <input type="submit" value="編集" name="edit"><br> 150 <?php echo $message2; ?> 151 </form> 152 153</section> 154<section> 155 <h2>投稿一覧</h2> 156</section> 157 158<?php 159// 読み込むファイル名の指定 160$file_name = "receive.txt"; 161// ファイルを全て配列に入れる 162$ret_array = file( $file_name ); 163 164// 取得したファイルデータ(配列)を全て表示する 165for( $i = 0; $i < count($ret_array); ++$i ) { 166 $echo_array = explode("<>", $edfile[$i]); 167 168// // 配列を順番に表示する 169 echo ( $echo_array[0]."<>".$echo_array[1]."<>".$echo_array[2]."<>".$echo_array[3]."<br />\n" ); 170} 171 ?> 172 173 174</body> 175</html> 176
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/10 09:17
退会済みユーザー
2019/12/10 09:42
2019/12/10 09:51
退会済みユーザー
2019/12/10 10:06