-1

スクリプトを作成するための最初の学習タスクを取得しました。タスクは次のとおりです。ファイルをアップロードするためのWebフォームを作成します。ファイルのアップロード後、ファイルはhtmlテーブルの同じページに表示されます。これは私の最初の仕事であり、私の優先事項はそれを機能させることです。そこで、アップロードフォルダーでファイルをスキャンし、それらを配列に配置するためのフォームと関数を作成しました。その後、配列はhtmlテーブルを構築するcucleで使用されます。正しく機能させることができないので、正しい削除ボタンを作成するのを手伝ってください。私のコードはここにあります:

<?php
if ($_GET['action']=='delete' && isset($_GET['file'])) {
        unlink($dir.$filelist[$i]);
        echo "File ".$filelist[$i]. " has been removed";
}
 
 
//table with files
echo"<table border=1 cellpading=5 cellspasing=0>
<tr><th>#</th><th>Filename</th><th>Path</th><th>File extenstion</th><TH>File Size<th>Remove file?</th></tr>";
for ($i=0; $i <count($fileslist) ; $i++) {
        echo "<tr>";
        echo"<td>$i</td><td>". $fileslist[$i]."</td>";
        echo "<td><a href=".$dir.$fileslist[$i].">".$fileslist[$i]."</a></td>";
        echo "<td>".$ext=pathinfo(($dir.$fileslist[$i]), PATHINFO_EXTENSION)."</td>";
        echo "<td>".$size= filesize_get($dir.$fileslist[$i])."</td>";
        echo "<td> <a href=\"upload.php?action=delete&file=".$filelist[$i].">Delete </a></td>";
        echo "<tr>";
}
echo"</tabe>";

次のエラーが発生します。

注意:未定義のインデックス:32行目のD:\ PHP(1)\ xampp \ htdocs\upload.phpのアクション

注意:未定義の変数:47行目のD:\ PHP(1)\ xampp \ htdocs\upload.phpのファイルリスト

4

3 に答える 3

1

交換

echo "<td> <a href=\"upload.php?action=delete&file=".$filelist[$i].">Delete </a></td>";

echo "<td> <a href=\"upload.php?action=delete&file=".$fileslist[$i].">Delete </a></td>";

ファイルリストにsがありません

于 2012-12-24T16:24:46.340 に答える
1

私はあなたがそのエラーメッセージを非常に文字通りとるべきだと思います。提供したコードサンプルでは、​​変数$filelistが定義されていません。

$_GET['action'] == 'deleted'また、そのパラメータがGETを介して渡されない場合でもチェックしようとするため、最初のエラーがスローされます。次のように比較して使用する前に、パラメータの存在を常に確認する必要があります。

if (isset($_GET['action']) && $_GET['action']=='delete' && isset($_GET['file'])) {
于 2012-12-24T16:26:42.990 に答える
0

1- $ iがまだ定義されていないときに、$i番目のアイテムを削除します

2-上記の回答で述べたように

変数名と関数名のエラーを防ぐために、コード補完をサポートするテキストエディタを使用できます。たとえば、役立つ非常に軽いツールはGeanyです。LinuxとWindowsの両方で、大きなプロジェクトでもこれを使用しています。RAMとCPUをあまり使用せず、開くのに時間がかかりません。

AND(&&)条件ブロックでは、条件が左から右に読み取られ、問題が発生するとすぐにブロックが中断されるため、最初に重要なものをテストして、問題が発生しないようにする必要があります。ブロック。

于 2012-12-24T16:49:31.737 に答える