phpでエラーが出て開発が進みません
今、ファイルを指定してそのファイルを開き、表示するというプログラムを作っています。
それで
Warning: file(): Filename cannot be empty in /home/runner/245ch/core.php on line 94
Warning: array_reverse() expects parameter 1 to be array, bool given in /home/runner/245ch/core.php on line 96
というエラーが出てしまいますどうか回答お願いします。
プログラムは
<?php
$i;
$counter = 0;
$filename = 'ip制限.dat';
// fopenでファイルを開く('r'は読み込みモードで開く)
$fp = fopen($filename, 'r');
// fgetsでファイルを読み込み、変数に格納
$lines = file($filename, FILE_IGNORE_NEW_LINES);
for($i = 0; $i <50 ; $i++){
if($lines[$counter] == $_SERVER["HTTP_X_FORWARDED_FOR"]){
header("location: https://245ch.teamperaggu.repl.co/ihan.html");
};
$counter = $counter + 1;
}
fclose($fp);
// ファイルの指定
//エスケープする関数
function h($s){
return htmlspecialchars($s,ENT_QUOTES,'UTF-8');
}
if(isset($_POST["sentaku"])){
$dataFile = trim($_POST['filee']) . ".dat";
$rr = trim($_POST['filee']) . ".dat";
}
if(isset($_POST["kousin"])){
$message = trim($_POST['message']);
$user = trim($_POST['user_name']);
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"] ;
file_put_contents("ip.dat","user ". $user ." ". $ip . "\n", FILE_APPEND);
//messageが空じゃなかったら
if(!empty($message)){
//userが空の場合、名無しにする
if(empty($user)){
$user = "名無し";
}
//日付を取得する
$postDate = date('Y-m-d H:i:s');
//ファイルに書き込むメッセージを作成する
$newData = " /名前/ ". $user." /メッセージ/ ".$message." /時間 /".$postDate."\n";
//ファイルを開く
$fp = fopen($dataFile,'a');
//ファイルに書き込む
fwrite($fp,$newData);
//ファイルを閉じる
fclose($fp);
}
}
//name="send_message"のPOST送信があった時
if(isset($_POST["send_message"])){
//送信されたname="message"とname="user_name"の値を取得する
$message = trim($_POST['message']);
$user = trim($_POST['user_name']);
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"] ;
file_put_contents("ip.dat","user ". $user ." ". $ip . "\n", FILE_APPEND);
//messageが空じゃなかったら
if(!empty($message)){
//userが空の場合、名無しにする
if(empty($user)){
$user = "名無し";
}
//日付を取得する
$postDate = date('Y-m-d H:i:s');
//ファイルに書き込むメッセージを作成する
$newData = " /名前/ ". $user." /メッセージ/ ".$message." /時間 /".$postDate."\n";
//ファイルを開く
$fp = fopen($dataFile,'a');
//ファイルに書き込む
fwrite($fp,$newData);
//ファイルを閉じる
fclose($fp);
}
}
//一行ずつデータを取り出して配列に入れる
$post_list = file($dataFile,FILE_IGNORE_NEW_LINES);
//逆順に並べ替える
$post_list = array_reverse($post_list);
?>
<style>
a.text {
position: absolute; /*自由に配置する指定*/
bottom: 0; /*下寄せの指定*/
right: 50;
font-size: 25px;
}
a.test {
position: absolute; /*自由に配置する指定*/
bottom: 0; /*下寄せの指定*/
right: 200;
font-size: 25px;
}
a.test {
position: absolute; /*自由に配置する指定*/
bottom: 0; /*下寄せの指定*/
right: 200;
font-size: 25px;
}
</style>
<body>
<h1>掲示板へようこそ</h1>
<!--ここで投稿内容を送信する-->
<form action="" method="post">
<from method="post">
<input type="text" name="filee">
<input type="submit" name="sentaku" value="選択">
</from>
メッセージ:<input type="text" name="message">
ユーザー名:<input type="text" name="user_name">
<input type="submit" name="send_message" value="投稿">
<input type="submit" name="kousin" value="更新">
</form>
<h2>投稿一覧</h2>
<ul>
<!--post_listがある場合-->
<?php if (!empty($post_list)){ ?>
<!--post_listの中身をひとつづつ取り出し表示する-->
<?php foreach ($post_list as $post){ ?>
<li><?php echo h($post); ?></li>
<?php } ?>
<?php }else { ?>
<li>まだ投稿はありません。</li>
<?php } ?>
</ul>
<a class="text" href="kiyaku.html">利用規約</a>
<a class="test" href="otoiawase.php">お問い合わせ</a>
</body>
お礼
ありがとうございました。おそらくご指摘のとおりだと思います。 1度入れなおしたことがあって、それからエラーメッセージが出るようになりました。 おかげさまでスッキリしました!本当にありがとうございます。