[upload] fichier déja enregistré dans la bdd ?

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 : [upload] fichier déja enregistré dans la bdd ?

par Invité » 15 févr. 2006, 14:02

problème résolu merci :wink:

par Ryle » 15 févr. 2006, 12:43

Dans ton select count(*), tu es sur que $dest_fichier a bien une valeur ? c'est au moment de l'insertion seulement que tu définis $dest_fichier = basename($_FILES['fichiers']['name']) ?

J'ai également un doute sur ta fonction nomfichier() : elle ne retourne rien et ne déclare pas $dest_fichier comme une variable globale. Du coup c'est une variable locale qui est modifiée et ne change probablement rien à la valeur $dest_fichier que tu utilises dans le reste du script.

Par ailleurs, elle ne me semble pas placée au bon endroit : tu corriges le nom du fichier lorsque tu l'insères en base, mais pas lorsque tu fais la recherche sur sa présence... s'il y a effectivement eu des remplacements de caractères, il est normal que tu ne les retrouves pas en comparant avec la chaine non modifiée...

En espérant que cela t'aide :)

[upload] fichier déja enregistré dans la bdd ?

par vincedjs » 15 févr. 2006, 11:33

Bonjour, voila je fais une série de message dans 1 variable, me permettant à la fin du code d'afficher une alert du probleme ou de l'éxécution de l'upload du fichier.

Problème:

-Seulement, dans mon application j'aimerai qu'il détecte si le fichier à deja été enregistrer dans la base, (nom) lors d'une requete précédente, lors d'une insertion.
-Or il m'affiche totu le temps fichier " xx" et fiche " xxx " insérer correctement.

voici mon code:
<?php
if((isset($_FILES['fichiers'])) || (isset($_FILES['fichiers'])))
	{
	$dest_dossier = 'C:\wamp\www\rbdc\upload/';
	function nomfichiers ()
		{
		$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 		'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
		$dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier);
		}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	if(isset($_FILES['fichiers']))
		{
		if($_FILES['fichiers']['size']>0)
			{
			$sql = "SELECT COUNT(*) FROM fichiersj WHERE nomFichierj = '".$dest_fichier."'";
			$res = mysql_query($sql);
			if($res)
				{
				if(mysql_result($res, 0, 0) == 0)
					{
					$dest_fichier = basename($_FILES['fichiers']['name']);
					nomfichiers ();
					move_uploaded_file($_FILES['fichiers']['tmp_name'], $dest_dossier . $dest_fichier);  
					$sql3 = "INSERT INTO fichiersj (nomFichierj, numFiche) VALUES ( '".$dest_fichier."', '".$numfiche2."')"; 
					$result3 = mysql_query($sql3);
					$msg="Fichier \''.$dest_fichier.'\' et Fiche n°\''.$numfiche2.'\' insérer correctement !"; 
					}else{
						$msg="Fichier \''.$dest_fichier.'\' existe déja! Renommer le fichier ou choisissez en un autre.";
				}
				//fin du if($res) 
						 }else{
						 $msg="Erreur sql sur le fichier \''.$dest_fichier.'\', \''.$sql.'\'";
							  }
							echo '<script language=javascript> alert (" \''.$msg.'\' ");</script>'; 
							echo '<SCRIPT LANGUAGE="JavaScript"> 
							document.location.href="accueil.php" </SCRIPT>'; 
							exit; 
			 }
		}
	}
?>
Merci :wink:[/php]