Garanzie zero. Ma perche' lo faccio???
codice:
<?php
if($action == "add")
  {
    $delete = isset($_GET["delete"]) ? $_GET['delete'] : '';

    if ($delete != '' ) {

       include ("../includes/db.php");
       include("../includes/functions.php");

       $connessione  =  @mysql_connect($db_host, $db_user,$db_pass);
       @mysql_select_db($db_name,$connessione);

        //* Selezioniamo l'img da cancellare*//
       $dati = @mysql_query("SELECT * FROM $info WHERE img = '$img'",$connessione);
       $row = mysql_fetch_assoc($dati);

       $file_name = $row['file_name'];

       if(file_exists("$upload_dir/$file_name")) {

       //elimino il file esistente
       if(unlink("$upload_dir/$file_name"))  {
               echo "File eliminato!!";

       //* ELIMINAZIONE record *//
       @mysql_query("DELETE FROM $info WHERE id = '$delete' ",$connessione) or die("Errore sul mysql");

       }  else   { echo "File non trovato o errore nel cancellarlo.";  }

       // che e' questo
       // redirect('admin.php?action=', 2);

       echo "Processo effettuato con successo!";
       mysql_close();
       }
    }
}
Perche' nel select prendi img = $img e nel delete prendi id = '$delete' ???? non dovrebbe essere sempre lo stesso valore?

Ma perche' passi l'id da cancellare per URL... uno che gioca al pirla scorre tutto "l'alfabeto" dei numeri e ti fa raso terra...

Controlla i nomi dei campi... ovviamente...