PHPとjavascriptを使って削除フォームを作成していますがわからないところがあります。
今自分はcsvファイルを用いて記事の削除フォームを作成しています。
ログインしている名前が記事の投稿者と同じ人物なら削除可能、そうでないならエラーのアラートを表示させたいのですが方法がわからず困っています。参考になるサイトやコードはありませんでしょうか?検索の仕方が悪かったのか文字が一致したら処理を行う記述が探しても見つかりません。どなたか参考になるサイトをご存知でしたらご教授お願い致します。
csvファイルの中身は
最高責任者 2018/03/01 今日の出来事
責任者 2018/03/02 今日の出来事
責任者 2018/03/03 今日の出来事
最高責任者 2018/03/04 今日の出来事
責任者 2018/03/03 今日の出来事
のような感じになっており、ログインしている人物が責任者なら責任者のみの記事を消せるようにしたいのです。
回答ありがとうございます。こちらを使用するのはほぼ初めてであるので不慣れなところが目立ってしまい申し訳ございません。
ログイン画面はすでにできております
こちらで似たほうな方法を調べて当てはめてみましたが動きませんでした
何かが足りないのはわかります、ただ何が足りないのかわかりません。
PHP
1if(isset($_POST['checker'])){ 2 if($_SESSION["username"] == '責任者'){ 3 if(strpos($datalist[$i], '最高責任者')){ 4echo '<script type="text/javascript">alert("あなたは最高責任者ではありません。");</script>'; 5 return false; 6 } 7 } 8 9}
何を加えたら最高責任者以外は削除できない設定にできるのでしょうか?
PHP
1以下はPHPのコードです。 2 3<?php 4session_start(); 5 6require_once'../setUserData.php'; 7 8?> 9 10<?php 11require_once'../log_in.php'; 12?> 13 14<?php 15$file = 'data.csv'; 16$newdata = array(); 17$datalist = array(); 18$checks = array(); 19if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST)) { 20 $checks = $_POST['checker']; 21 22// 23$fp = fopen($file, 'r+'); 24 flock($fp, LOCK_EX); 25 $count = 0; 26 while ($data = fgetcsv($fp)) { 27 if (!in_array($count, $checks)) { 28 $newdata[] = $data; 29 } 30 ++$count; 31 } 32// 33ftruncate($fp, 0); 34 fseek($fp, 0); 35 36 foreach ($newdata as $list) { 37 fputcsv($fp, $list); 38 } 39 flock($fp, LOCK_UN); 40 fclose($fp); 41} 42// 43$datalist = show($file); 44 45function show($filedata) 46{ 47 $fp = fopen($filedata, 'r'); 48 $datas = array(); 49 while ($data = fgetcsv($fp)) { 50 list($username, $date, $title) = $data; 51 $list = array( 52'username' => $username, 53'date' => $date, 54'title' => $title, 55); 56//一行データをまとめる配列に追加する 57$datas[] = $list; 58 } 59 fclose($fp); 60 61 return $datas; 62} 63var_dump($datalist); 64?> 65<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 66<html xmlns="http://www.w3.org/1999/xhtml"> 67<head> 68<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 69<title>タイトル</title> 70</head> 71<link rel="stylesheet" type="text/css" href="../css2/style.css" media="screen"> 72<body> 73<style type="text/css"> 74table{ 75border-collapse:collapse; 76} 77table td{ 78border:1px solid #ccc; 79padding:5px; 80} 81 82</style> 83<script type="text/javascript"> 84 85function RunConfirm() { 86 87if ( confirm("実行しますか?") ) { 88return true; 89} 90else { 91return false; 92} 93} 94</script> 95<p>ようこそ!<?php echo htmlspecialchars($_SESSION['username'], ENT_QUOTES); ?>さん!(<a href="../logout.php">ログアウト</a>)</p> 96 97<div class="box_b"> 98<p class="title">タイトル</p> 99<br /> 100<div class="form"> 101 102<form method="post" action="" onSubmit="return RunConfirm()"> 103<table> 104<?php for ($i = 1; $i < count($datalist); ++$i): ?> 105<tr> 106<td><input type="checkbox" name="checker[]" value=<?php echo $i; ?> ></td> 107<td><?php echo $datalist[$i]['username']; ?></td> 108<td><?php echo $datalist[$i]['date']; ?></td> 109<td><?php echo $datalist[$i]['title']; ?></td> 110</tr> 111<?php endfor; ?> 112</table> 113<input type="submit" name="send" value="送信"> 114</form> 115<br /><br /><br /><br /><br /><br /><br /> 116</div> 117</div> 118</body> 119</html>
回答3件
あなたの回答
tips
プレビュー