probleme avec unlink()

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme avec unlink()

par caroube » 20 juil. 2008, 08:22

Warning: unlink(../outils/doc_ref/test006369.xls):
Franchement, les effacements de fichiers avec un chemin en relatif, je ne trouve pas ça top puisqu'on se réfère à un emplacement de stockage à partir de l'endroit où tourne le script.
Personnellement, j'utiliserais un chemin absolu, histoire de tout maîtriser.

par damaskinos » 20 juil. 2008, 05:08

Vérifie ce qui te retourne
move_uploaded_file($_FILES['fichier']['tmp_name'],$nom);  
Avant d'afficher un message de réussite
if(move_uploaded_file($_FILES['fichier']['tmp_name'],$nom))
{

    echo "ton message de confirmation de l'upload...";

}
else
{
   echo "un petit probleme..";

}
[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

par dunbar » 20 juil. 2008, 01:41

Salut,
Dans le script modif il manque une }
Et pourrais tu nous donner ton message d'erreur :?:
:shock: T'arrive à voir ça avec son indentation ? ... vache, chapeau bas ! :)
Celle-ci n'ai pas fermer
if (isset($_SESSION["coordonnees"]["id"])) 
{ 
:wink:

par kochalski » 19 juil. 2008, 17:52

Je viens de constaté qu'une fois le fichier uploadé
il a un message de réussite avec un lien pour le visualiser
par contre si je veux refaire ce lien entre les <body>...NADA
je n'arrive pas à faire le liens sur ce fichier

par Ryle » 19 juil. 2008, 17:45

Salut,
Dans le script modif il manque une }
Et pourrais tu nous donner ton message d'erreur :?:
:shock: T'arrive à voir ça avec son indentation ? ... vache, chapeau bas ! :)

En gros, l'erreur est simple, tu lui demandes de supprimer le fichier test006369.xls qui devrait se trouver dans le dossier "../outils/doc_ref/" par rapport au script, mais le fait est que soit ce dossier n'existe pas, soit il ne contient pas ton fichier, d'où le message d'erreur (suffisament explicite d'ailleurs)

A toi de passer le bon chemin et nom de fichier à unlink pour qu'il puisse trouver et supprimer le fichier ;)

par kochalski » 19 juil. 2008, 17:12

voilà mon erreur
Warning: unlink(../outils/doc_ref/test006369.xls): No such file or directory in c:\program files\easyphp1-8\www\csi\connection\modif_referentiel2.php on line 64

par dunbar » 19 juil. 2008, 17:06

Salut,
Dans le script modif il manque une }
Et pourrais tu nous donner ton message d'erreur :?:

probleme avec unlink()

par kochalski » 19 juil. 2008, 16:53

Bonjour tout le monde,

J'ai trouvé sur le net un script d'upload de fichier qui fonctionne à merveille.
Ce script m'enregistre tout ce qu'il me faut dans ma bdd.
Mon soucis est que lorsque je veux modifier un de mes fichiers uploadé j'ai un soucis avec
unlink() je n'arrive pas à supprimer l'ancien fichier.
Vous trouverez ci joint mes 2 scripts
le 1° script d'upload
Le 2° script de modif.

script d'upload
<?
$formulaire = TRUE;
define("ANNONCES",TRUE);
@require("functions.php");
if (isset($_SESSION["coordonnees"]["id"]))
{
//Début des informations à modifier
$poids_max=1048576; //Poids maximal du fichier en octets
$extensions_autorisees=array('doc','DOC','xls','XLS','pdf','PDF'); //Extensions autorisées
function getName($pre,$name_file,$post)
{
	$time1=microtime();
	$time2=str_replace(array(' ','.'),'',$time1);
	$time=substr($time2, 0, 5);
	$cle=mt_rand(0,9);
	return $pre.$name_file.$time.$cle.'.'.$post;
}
		if ((isset($_FILES["fichier"])) AND 								
			(isset($_POST["description_text"])) AND 
			(isset($_POST["referentiel_product"]))) 
		{ 
		 $alert_inscription = "";
		     //poid du fichier
		if($_FILES['fichier']['size']>$poids_max)
	     {
		 $alert_inscription='Le fichier est trop lourd !';
	     }		
			//description
			if (empty($_POST["description_text"]))
			{
				$_POST["description_text"] = "";
		   $alert_inscription = "<span class=Style90>Vous devez écrire une déscription light<br>pour votre document !<br></span>";
			}		
            //famille de produits
            if (replace_quot($_POST["referentiel_product"]) < 1) 				
			{
				$_POST["referentiel_product"] = "";
				$alert_inscription .= "<span class=Style90>Le thème selectionné est incorrecte !<br></span>";
			}
			if(empty($alert_inscription))
			{	
			$formulaire = FALSE;
				if ($_FILES['fichier']['tmp_name'] != "") 
				{
					$test_fichier = 1;					
				}
				else
				{
					$test_fichier = 0;
				}										
				$_query = "INSERT INTO referentiel_t (referentiel_t_id_membre,referentiel_t_site,referentiel_t_controleur_nom,referentiel_t_controleur_prenom,referentiel_t_service,
referentiel_t_fichier,referentiel_t_nomfichier,referentiel_t_description,referentiel_t_referentiel,referentiel_t_date) VALUES ("
				."'".$_SESSION["coordonnees"]["id"]."',"
				."'".$_SESSION["coordonnees"]["site_appartenance"]."',"
				."'".$_SESSION["coordonnees"]["nom"]."',"
				."'".$_SESSION["coordonnees"]["prenom"]."',"
				."'".$_SESSION["coordonnees"]["service"]."',"
				."'".$test_fichier."',"	
				."'".replace_quot($_FILES['fichier']['name'])."',"					
				."'".replace_quot($_POST["description_text"])."',"
				."'".replace_quot($_POST["referentiel_product"])."',"
				."'".date("Y-m-d", mktime(0, 0, 0, date("m"), date("j"), date("Y")))."')";   
				$result = mysql_query($_query)or die(mysql_error());
				$id_fichier = mysql_insert_id();
				if (($result != FALSE) AND ($id_fichier != FALSE))
				{				
				if ($test_fichier == 1)
				{										
				// Si upload OK alors on affiche le message de réussite	
				$name_fichier=$_FILES['fichier']['name'];
		        $extension_upload=substr(strrchr($_FILES['fichier']['name'], '.')  ,1);
		        $name_file1=substr($name_fichier, 0, strrpos($name_fichier, '.'));
		        $caracteres = array('\'', ' ', '\\', '*', '%', 'ù', ';', ',');
		        $name_file=str_replace($caracteres, '', $name_file1);
		        if(in_array($extension_upload,$extensions_autorisees))
		        {
				$nom=getName('../outils/doc_ref/',$name_file,$extension_upload);
			     move_uploaded_file($_FILES['fichier']['tmp_name'],$nom);							    
			    $alert_inscription ='<span class=Style90><center>Votre réferentiel à été uploadé.<br>
				 Vous pouvez le modifier ou le supprimer à votre convenance.<br>
				 Il est disponible à l\'adresse suivante :<br /><a target= blank href="'.$nom.'">'.$nom.'</a></span>';	
		         }	                	
                else 
				{        
      $alert_inscription = "<span class=Style90>L'ajout en base de données a échoué !<br>Merci d'en avertir le webmaster</span>";		 		  } 
	    }      
      }
	}
  }						
?>

script de modif.
<?
$formulaire = TRUE;
define("ANNONCES",TRUE);
@require("functions.php");
if (isset($_SESSION["coordonnees"]["id"]))
{
//Début des informations à modifier
$poids_max=1048576; //Poids maximal du fichier en octets
$extensions_autorisees=array('doc','DOC','xls','XLS','pdf','PDF'); //Extensions autorisées
function getName($pre,$name_file,$post)
{
	$time1=microtime();
	$time2=str_replace(array(' ','.'),'',$time1);
	$time=substr($time2, 0, 5);
	$cle=mt_rand(0,9);
	return $pre.$name_file.$time.$cle.'.'.$post;
}
	if (isset($_GET['id']))	
	{	
		$_SESSION["id_referentiel"] = replace_quot($_GET['id']);				
	}
	elseif (!isset($_SESSION["id_referentiel"]))
	{		
		$_SESSION["id_referentiel"] = 0;		
	}
$query = "SELECT * FROM referentiel_t WHERE referentiel_t_id='".$_SESSION["id_referentiel"]."' AND referentiel_t_id_membre='".$_SESSION["coordonnees"]["id"]."'";
$result_query = mysql_query($query);
	if (mysql_num_rows($result_query) == 1)
		{	
		$mysql_result_query = mysql_fetch_array($result_query);		 
		    if ((isset($_POST["description_text"])) AND 			      	
			    (isset($_POST["referentiel_product"]))) 
		           { 				   
		    $alert_inscription = "";			
                   //poid du fichier
		    if($_FILES['fichier']['size']>$poids_max)
	        {
		    $alert_inscription='Le fichier est trop lourd !';
	        }		
			//description
			if (empty($_POST["description_text"]))
			{
				$_POST["description_text"] = "";
		   $alert_inscription = "<span class=Style90>Vous devez écrire une déscription light<br>pour votre document !<br></span>";
			}		
            //famille de produits
            if (replace_quot($_POST["referentiel_product"]) < 1) 				
			{
				$_POST["referentiel_product"] = "";
				$alert_inscription .= "<span class=Style90>Le thème selectionné est incorrecte !<br></span>";
			}			
			if(empty($alert_inscription))
			{						
			$formulaire = FALSE;				
			$test_fichier = 1;
			if($mysql_result_query["referentiel_t_fichier"] == "1")
			{								
			unlink($nom);
			$test_fichier = 1;				
			}						
		}				
$_query = "UPDATE referentiel_t SET ";	
$_query .= "referentiel_t_description='".replace_quot($_POST["description_text"])."',";
$_query .= "referentiel_t_nomfichier='".replace_quot($_FILES['fichier']['name'])."',";
if ($test_fichier != 1) $_query .= "referentiel_t_fichier='".$test_fichier."',";		
$_query .= "referentiel_t_referentiel='".replace_quot($_POST["referentiel_product"])."'";
$_query .= " WHERE referentiel_t_id='".$_SESSION["id_referentiel"]."' ";
$mysql_test = mysql_query($_query);
				if ($mysql_test != FALSE)				
				{						
				if($test_fichier = 1)
					{					
				// Si upload OK alors on affiche le message de réussite	
				$name_fichier=$_FILES['fichier']['name'];
		        $extension_upload=substr(strrchr($_FILES['fichier']['name'], '.')  ,1);
		        $name_file1=substr($name_fichier, 0, strrpos($name_fichier, '.'));
		        $caracteres = array('\'', ' ', '\\', '*', '%', 'ù', ';', ',');
		        $name_file=str_replace($caracteres, '', $name_file1);
		        if(in_array($extension_upload,$extensions_autorisees))
		        {
				$nom=getName('../outils/doc_ref/',$name_file,$extension_upload);
			     move_uploaded_file($_FILES['fichier']['tmp_name'],$nom);					    
			    $alert_inscription ='<span class=Style90><center>Votre réferentiel à été uploadé.<br>
				 Vous pouvez le modifier ou le supprimer à votre convenance.<br>
				 Il est disponible à l\'adresse suivante :<br /><a target= blank href="'.$nom.'">'.$nom.'</a></span>';	
		         }	                	
                else 
				{        
      $alert_inscription = "<span class=Style90>L'ajout en base de données a échoué !<br>Merci d'en avertir le webmaster</span>";                }
	          }
	        }
	      }
	    }	  
?>
Merci de m'aider

Francis