Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: eliminare file

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929

    eliminare file

    ciao a tutti,

    non riesco a cancellare un file pdf dal server

    codice:
    <?php require_once('../../Connections/aconn.php');
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
      $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
    
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;    
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
    }
    
    if ((isset($_GET['Id'])) && ($_GET['Id'] != "")) {
      $deleteSQL = sprintf("DELETE FROM settore WHERE Id=%s",
                           GetSQLValueString($_GET['Id'], "int"));
    
      mysql_select_db($database_aconn, $aconn);
      $Result1 = mysql_query($deleteSQL, $aconn) or die(mysql_error());
      
    	$ro = mysql_fetch_array($Result1);
    	$dir = "../../pdf/"+$ro["file"]+".pdf";
    	if(unlink($dir)){
    	echo "Eliminato.";
    	}
    
      $deleteGoTo = "../success.php?success=RECORD ELIMINATO CON SUCCESSO!";
      if (isset($_SERVER['QUERY_STRING'])) {
        $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
        $deleteGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $deleteGoTo));
    }
    ?>

    :master:

    Grazie

  2. #2
    La concatenazione di stringhe in php si fa con il punto e non con il +

    Continuo a chiedermi perche' usi sprintf per valorizzare una variabile. E che poi sia una grande idea passare l'id da eliminare tramite _GET .... se trovi il buontempone ti fa su tutta la tabella





    @gia' la conosco la risposta a sprintf....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    ho modificato cosi
    codice:
    	$ro = mysql_fetch_array($Result1);
    	$dir = "../../pdf/".$ro["file"].".pdf";
    	if(unlink($dir)){
    	echo "Eliminato.";
    	}
    ma continua a non cancellarlo


  4. #4
    Originariamente inviato da Rossella_75
    ho modificato cosi
    codice:
    	$ro = mysql_fetch_array($Result1);
    	$dir = "../../pdf/".$ro["file"].".pdf";
    	if(unlink($dir)){
    	echo "Eliminato.";
    	}
    ma continua a non cancellarlo

    Sicura che il file ci sia e sia al posto giusto'?

    Potresti fare semplicemente ...
    codice:
    $dir = "../../pdf/$ro[file].pdf";
    la musica pero' non cambia.

    Verifica se il file esiste, forse e' meglio per evitare errori dallo script.
    codice:
    if(file_exists("../../pdf/$ro[file].pdf") )    {
            unlink("../../pdf/$ro[file].pdf");
          }  else { echo "il file $ro[file].pdf non esiste"; }

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    Si, il file esiste se clicco da un'altra pagina lo leggo!

    ma continua a non eliminare

    codice:
    <?php
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
      $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
    
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;    
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
    }
    
    if ((isset($_GET['Id'])) && ($_GET['Id'] != "")) {
      $deleteSQL = sprintf("DELETE FROM settore_eco_pdf WHERE Id=%s",
                           GetSQLValueString($_GET['Id'], "int"));
    
      mysql_select_db($database_actionlab, $actionlab);
      $Result1 = mysql_query($deleteSQL, $actionlab) or die(mysql_error());
      
    	if(file_exists("../../pdf/$ro[file].pdf") )    {
            unlink("../../pdf/$ro[file].pdf");
          }  else { echo "il file $ro[file].pdf non esiste"; }
    
    
      $deleteGoTo = "../success.php?success=RECORD ELIMINATO CON SUCCESSO!";
      if (isset($_SERVER['QUERY_STRING'])) {
        $deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
        $deleteGoTo .= $_SERVER['QUERY_STRING'];
      }
      header(sprintf("Location: %s", $deleteGoTo));
    }
    ?>

  6. #6
    Allora avrai gli errori disabilitati e non vedi che ti manca il permesso di scrittura del file necessario per poterlo cancellare.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    non è possibile perchè per fare queste prove sto caricando un file test.pdf e poi provo a cancellarlo, riesco a caricare (in locale) ma non riesco a cancelarlo


  8. #8
    Originariamente inviato da Rossella_75
    non è possibile perchè per fare queste prove sto caricando un file test.pdf e poi provo a cancellarlo, riesco a caricare (in locale) ma non riesco a cancelarlo

    Caricarlo e diverso da avere i diritti per scriverlo. Prova a caricare un file di testo e poi prova a modificarlo.

    controlla i permessi sul file.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    adesso faccio un pò di altreprove, in effetti ho notato che quando faccio l'upload in locale funziona,ma ho provato a pubblicarlo e mi da sempre errore

    guarda cosi faccio, l'upload del file che poi cerco anche di eliminare

    codice:
    <?php
    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
    {
      $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
    
      switch ($theType) {
        case "text":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;    
        case "long":
        case "int":
          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
          break;
        case "double":
          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
          break;
        case "date":
          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
          break;
        case "defined":
          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
          break;
      }
      return $theValue;
    }
    
    $editFormAction = $_SERVER['PHP_SELF'];
    if (isset($_SERVER['QUERY_STRING'])) {
      $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
    }
    
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
    					   	// UPLOAD
    						$path="../../pdf";
    							if( $UploadedFile != none AND  $UploadedFile_type != "pdf")
    							{ 
    								print("Percorso locale: $UploadedFile 
    \n");
    								print("Nome del file: $UploadedFile_name 
    \n");
    								print("Dimensione del file: $UploadedFile_size 
    \n");
    								print("Tipo di file: $UploadedFile_type 
    \n");
    								print("<HR>");
    								if (copy( $UploadedFile , "$path/$UploadedFile_name"))
    									{
      									$insertSQL = sprintf("INSERT INTO settore_eco_pdf (descrizione, file, pop) VALUES (%s, %s, %s)",
                           				GetSQLValueString($_POST['descrizione'], "text"),
    									GetSQLValueString($_POST['hiddenField'], "text"),
                           				GetSQLValueString($_POST['radiobutton'], "text"));
    								}else{
    									print "Errore.. upload non riuscito
    ";
    									print ("NON E' UNFILE PDF  
    \n");
    								}
    								}else{
    								print "Errore.. nessun file.
    ";
    								}
      								mysql_select_db($database_actionlab, $actionlab);
      								$Result1 = mysql_query($insertSQL, $actionlab) or die(mysql_error());
    
      								$insertGoTo = "../success.php?success=PDF INSERITO CON SUCCESSO!";
    								if (isset($_SERVER['QUERY_STRING'])) {
    								$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    								$insertGoTo .= $_SERVER['QUERY_STRING'];
    								}
    								header(sprintf("Location: %s", $insertGoTo));
    								}
    ?>
    secondo te il problema potrebbe essere lo stesso??


    :master:

  10. #10
    Secondo me il primo problema e' che il tuo script e' illeggibile. Indentare va bene ma come si presenta nel post causa disturbi al sonno del giusto.

    Vedi di isolare la parte di script che interessa al problema, e se si trattasse di permessi sui file sappi che dallo script non si possono dedurre.

    Abilita gli errori e la loro stampa. Se si trattera' di permessi insufficenti ti verra' segnalato.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.