Kullanıcının PDF dosyalarını karşıya yüklemesine ve dosyanın adını veritabanına kaydetmesine izin veren bir sistemim var.Veritabanında bulunmayan sunucudan dosyaları sil
Bu betik nasıl çalışır, böylece kullanıcı veritabanımda adı olmayan sunucudaki tüm dosyaları silebilir?
Aslında sahip olduğum şey budur, ancak komut dosyası tüm dosyaları siler. Nasıl devam edeceğimi bilmiyorum.
<?php
include 'fimg.class.php';
require('../../../php/cone.php');
//header('Location: ../produccion.php');
$directory = "upload/";
//get all image files with a .jpg extension.
$images = glob($directory . "*");
foreach($images as $image)
{
$name = explode('_',$image);
$name = 'photos/' . $name[0];
$sql = mysql_query("SELECT imagen FROM r_alumnos");
if(mysql_num_rows($sql) == 0)
unlink($image);
}
?>
[ 'mysql_ kullanmayı bırakın lütfen *' işlevleri] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php). [Bu uzantılar] (http://php.net/manual/en/migration70.removed-exts-sapis.php) PHP 7'de kaldırılmıştır. [Hakkında] öğrenin (http://en.wikipedia.org/ wiki/Prepared_statement) [PDO] için ifadeler (http://php.net/manual/en/pdo.prepared-statements.php) ve [MySQLi] (http://php.net/manual/en/mysqli.quickstart .prepared-statements.php) ve PDO kullanmayı düşünün, [gerçekten çok kolay] (http://jayblanchard.net/demystifying_php_pdo.html). –
Bir "WHERE" yan tümcesi kullanın. –
DB'deki görüntü dosya adı nedir? tam yol ya da sadece dosya adı? Ayrıca "glob ($ directory." * .jpg ") kullanarak sadece' jpg' dosyalarını aldığınızdan emin olun; ' –