###前提・実現したいこと
<input type="hidden">タグを用いて、編集モードかどうかを判別すしたいのですが、うまくいっていないです。
編集とわかれば編集を行い、どうでなければ投稿を行いたいです。
###発生している問題・エラーメッセージ
編集と投稿が同時に行われてしまっったり
編集が行われたあとに投稿が出来なくなってしまったりしてしまいます。
上手く$hennshuuを初期化できていないのが原因であるとも思うのですが
どうすれば上手く出来るのでしょうか。
###該当のソースコード ```php ```ここに言語を入力 PHP<?php ini_set('display_errors', 1); error_reporting(E_ALL); date_default_timezone_set('Asia/Tokyo'); $ff = ""; $newname = ""; $newcomment = ""; $err_msg1 = ""; $err_msg2 = ""; $message = ""; $name = (isset($_POST["name"]) === true) ? $_POST["name"] : ""; $comment = (isset($_POST["comment"]) === true) ? trim($_POST["comment"]) : ""; if (isset($_POST["toukou"]) === true) { if ($name === "") $err_msg1 = "名前を入力してください"; if ($comment === "") $err_msg2 = "コメントを入力してください"; if ($err_msg1 === "" && $err_msg2 === "") { $message = "書き込みに成功しました。"; } //$err_msg1 === "" && $err_msg2 === "" if(empty($_POST[toukoum])){ if (null != filter_input_array(INPUT_POST)) { $name = filter_input(INPUT_POST, 'name'); $comment = filter_input(INPUT_POST, 'comment'); if (!empty($name) && !empty($comment)) { $number = file_get_contents("counter.txt"); $name = $_POST["name"]; $comment = $_POST["comment"]; $date = date('Y-m-d-G-i'); $file_number = "numberx.txt"; $number_array = file($file_number); for ($i = 0; $i <= count($number_array); ++$i) { $number++; } //$i = 0; $i <= count( $number_array ); ++$i $comment = nl2br($comment); $fp = fopen("k_2_3.txt", "a"); fwrite($fp, "$number.<>$name<>$comment<>$date\n"); fclose($fp); $fp = fopen("numberx.txt", "a"); fwrite($fp, "$number\n"); fclose($fp); } //!empty( $name ) && !empty( $comment ) } //null != filter_input_array(INPUT_POST) } //isset($_POST["toukou"]) === true //null != filter_input_array( INPUT_POST ) } if (isset($_POST["delete"])) { $delete = $_POST["delete"]; $delCon = file("k_2_3.txt"); $a = fopen("k_2_3.txt", "w"); @fwrite($a, ""); fclose($a); for ($j = 0; $j < count($delCon); $j++) { $delDate = explode('<>', $delCon[$j]); if ($delDate[0] != $delete . ".") { $b = fopen("k_2_3.txt", "a"); @fwrite($b, $delCon[$j]); fclose($b); } //$delDate[ 0 ] != $delete . "." else { $b = fopen("k_2_3.txt", "a"); @fwrite($b, $delDate[0] . "." . "消去しました。\n"); fclose($b); } } //$j = 0; $j < count( $delCon ); $j++ } //isset( $_POST[ "delete" ] ) if (isset($_POST["hennshuu"]) === true) { $hennshuu = $_POST["hennshuu"]; $datem = file("k_2_3.txt"); for ($j = 0; $j < count($datem); $j++) { $hennshuudate = explode('<>', $datem[$j]); if ($hennshuudate[0] == $hennshuu . ".") { $newname = $hennshuudate[1]; $newcomment = $hennshuudate[2]; } //$hennshuudate[0] == $hennshuu . "." } //$j = 0; $j < count($datem); $j++ $fp = fopen("k_2_5.txt", "w"); fwrite($fp, "$hennshuu"); fclose($fp); } //isset($_POST["hennshuu"]) === true if (isset($_POST["toukoum"])) { $hennshuu = file_get_contents("k_2_5.txt"); $comment = $_POST["comment"]; $name = $_POST["name"]; $file = file("k_2_3.txt"); $filename = file_get_contents("k_2_3.txt"); for ($j = 0; $j < count($file); $j++) { $saisinn = explode('<>', $file[$j]); if ($saisinn[0] == $hennshuu . ".") { $result_arr = str_replace($saisinn[1], $name, $filename); $result_brr = str_replace($saisinn[2], $comment, $result_arr); } //$saisinn[0] == $hennshuu . "." $fp = fopen("k_2_3.txt", "w"); fwrite($fp, "$result_brr"); fclose($fp); } //$j = 0; $j < count($file); $j++ $hennshuu = "" ; } //isset($_POST["toukoum"]) ?> <?php echo $message; ?> <form action="k_2_5_3.php" method="post" > 名前を入力してください。<br/> <input type="text" name="name" value="<?php echo $name; echo $err_msg1; echo $newname; ?>" /><br/> コメント<br/> <textarea name ="comment"cols="50" rows="5"><?php echo $comment; echo $err_msg2; echo $newcomment; ?></textarea> <br> <input type="submit" name="toukoum" value="編集"> <input type="hidden" name="toukou" value="$hennshuu" /> </form> <form action="" method="POST"> 削除対象番号<input type="text" name="delete"> <input type="submit" name="deleteNo" value="削除"> </form> <form action="" method="POST"> 編集対象番号<input type="text" name="hennshuu"> <input type="submit" name="hennshuuNo" value="編集"> </form> <h2>投稿一覧</h2> <?php $file_name = "k_2_3.txt"; $ret_array = file($file_name); for ($i = 0; $i < count($ret_array); ++$i) { $line = explode('<>', $ret_array[$i]); echo ($ret_array[$i] . "<br />\n"); } //$i = 0; $i < count( $ret_array ); ++$i ?>
###試したこと
emptyを使ってみたのですが、考え方はあっていると思うのですが
名前が少しおかしいのは申し訳ないです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。