私が間違っていることがわかりません。条件が成立した後、特定のフォルダ内の画像を削除しようとしています。条件は、8枚以上の画像または写真を制限することです。 1枚の画像を削除すると動作しますが、その間に追加したり、の状態になると、アクセス拒否エラーが発生します。以下はphp unlinkパーミッションがwhileまたはwhenで拒否されました
条件のデシベルをチェックして、おそらくフォルダから画像を削除し、私のコードです:
mysql_select_db($database_rentaguide, $rentaguide);
$query_overflow_images = sprintf("SELECT * FROM tbl_rentalimages WHERE sessionid = %s AND image_id > '$lastimageid'",
GetSQLValueString($colname_overflow_images, "text"));
$overflow_images = mysql_query($query_overflow_images, $rentaguide) or die(mysql_error());
$row_overflow_images = mysql_fetch_assoc($overflow_images);
$totalRows_overflow_images = mysql_num_rows($overflow_images);
while ($row_overflow_images = mysql_fetch_assoc($overflow_images)); {
$overflowpath = $row_overflow_images['image_url'];
chmod("../".$overflowpath, 0777);
unlink("../".$overflowpath);
}
画像の実際のパスがある - >rentalimages/LqXtyVtzKm/architecture-1836070__340.jpg
の$ lastimageid変数は、8つ以上のイメージがある場合、8番目または最後のレコードのIDを取得するdb接続から取得されます。
私を助けてください。してください
ああ、私はあなたがwhile
ブロックの本体右の前に、あなたのコードにタイプミスを持っているWindows 7の64ビット
なぜ 'chmod()'を呼び出すのですか?あなたがファイルへの書き込み許可を持っているか、そうでない場合、chmodコマンドは何らかの形でそのような許可を得るのを助けることができません。そして、確実にイメージファイルを実行可能に設定しても意味をなさない。 – arkascha
whileループ内の '$ overflowpath'ファイルのリストをいくつかのログファイルにダンプし、その結果を確認してください。おそらくデータベース内に予期しない値がありますか? – arkascha
一般的な注意:古くから廃止された 'mysql _...()'関数を使用しています。その拡張機能はセキュリティ上の理由から完全に削除されています。すぐにコードをより安全な 'mysqli'拡張モジュールに移植する必要があります。 – arkascha