upload fichiers + erreurs

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 fichiers + erreurs

par vincedjs » 13 févr. 2006, 15:05

en faite j'ai modifier mon code encore, et il m'affiche tout le temps " le fichier existe déja" meme quan dje n'insere pas de fichiers à partir de mon formulaire.


je fait 1 requete pour tester si le fichier est déja présent:
	$sql = "SELECT nomFichierj FROM fichiersj WHERE nomFichierj = '".$dest_fichier."'"; 
				$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
				$data = mysql_fetch_array($req);
				if($data['nomFichierj'] == $dest_fichier)
   					{
					echo '<script language=javascript> alert ("Le fichier existe déja");</script>'; 
					echo '<SCRIPT LANGUAGE="JavaScript"> 
					document.location.href="accueil.php" </SCRIPT>'; 
					exit; 
   					}else{
et pour ma gestion d'erreur je fais:
if($err = $_FILES['fichiers']['error'])
			{
			$dest_fichier2 = $dest_fichier;
			$nberreurs++;
			$msgerreur = "Erreur dans le fichier 1, $dest_fichier";
			}else{
Puis en fin de lignes:
if($nberreurs = 1)
		{
		echo '<script language=javascript> alert <?php $msgerreur; ?>;</script>'; 
		echo '<SCRIPT LANGUAGE="JavaScript"> 
		document.location.href="accueil.php" </SCRIPT>'; 
		exit; 
		}
		else if($nberreurs = 2)
			{
			echo '<script language=javascript> 
			alert ("Erreurs dans les fichiers, <?php $dest_fichier2; ?>, et <?php $dest_fichier3; ?>");</script>'; 
			echo '<SCRIPT LANGUAGE="JavaScript"> 
			document.location.href="accueil.php" </SCRIPT>'; 
			exit;
			}
			else if($nberreurs = 0)
				{
				echo "Fiche et fichier(s) correctement envoyés";
				echo '<script language=javascript> alert ("Fiche et fichier(s) correctement envoyés");</script>'; 
				echo '<SCRIPT LANGUAGE="JavaScript"> 
				document.location.href="accueil.php" </SCRIPT>'; 
				exit;
				}
code complet:


<?php
if((file_exists($_FILES['fichiers']['tmp_name'])) || (file_exists($_FILES['fichiers2']['tmp_name'])))
	{
	$nberreurs = 0;
	$msgerreur;
	$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(file_exists($_FILES['fichiers']['tmp_name']))
		{
		if($err = $_FILES['fichiers']['error'])
			{
			$dest_fichier2 = $dest_fichier;
			$nberreurs++;
			$msgerreur = "Erreur dans le fichier 1, $dest_fichier";
			}else{
				$sql = "SELECT nomFichierj FROM fichiersj WHERE nomFichierj = '".$dest_fichier."'"; 
				$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
				$data = mysql_fetch_array($req);
				if($data['nomFichierj'] == $dest_fichier)
   					{
					echo '<script language=javascript> alert ("Le fichier existe déja");</script>'; 
					echo '<SCRIPT LANGUAGE="JavaScript"> 
					document.location.href="accueil.php" </SCRIPT>'; 
					exit; 
   					}else{
					$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) or die ("Erreur d'Insertion dans la base : ". $sql3 .'<br />'. mysql_error()); 
					}
				}
		}
	if(file_exists($_FILES['fichiers2']['tmp_name']))
		{
		if ($err = $_FILES['fichiers2']['error'])
			{
			$dest_fichier3 = $dest_fichier;	
			$nberreurs++;
			$msgerreur = "Erreur dans le fichier 2, $dest_fichier";
			}else{
				$sql = "SELECT nomFichierj FROM fichiersj WHERE nomFichierj = '".$dest_fichier."'"; 
				$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
				$data = mysql_fetch_array($req);
				if($data['nomFichierj'] == $dest_fichier)
   					{
					echo '<script language=javascript> alert ("Le fichier existe déja");</script>'; 
					echo '<SCRIPT LANGUAGE="JavaScript"> 
					document.location.href="accueil.php" </SCRIPT>'; 
					exit; 
   					}else{
						$dest_fichier = basename($_FILES['fichiers2']['name']);  
						nomfichiers ();      
						move_uploaded_file($_FILES['fichiers2']['tmp_name'], $dest_dossier . $dest_fichier);  
						$sql4 = "INSERT INTO fichiersj (nomFichierj, numFiche) VALUES ( '".$dest_fichier."', '".$numfiche2."')"; 
						$result4 = mysql_query($sql4) or die ("Erreur d'Insertion dans la base : ". $sql4 .'<br />'. mysql_error()); 
						}
					}
		}
	if($nberreurs = 1)
		{
		echo '<script language=javascript> alert <?php $msgerreur; ?>;</script>'; 
		echo '<SCRIPT LANGUAGE="JavaScript"> 
		document.location.href="accueil.php" </SCRIPT>'; 
		exit; 
		}
		else if($nberreurs = 2)
			{
			echo '<script language=javascript> 
			alert ("Erreurs dans les fichiers, <?php $dest_fichier2; ?>, et <?php $dest_fichier3; ?>");</script>'; 
			echo '<SCRIPT LANGUAGE="JavaScript"> 
			document.location.href="accueil.php" </SCRIPT>'; 
			exit;
			}
			else if($nberreurs = 0)
				{
				echo "Fiche et fichier(s) correctement envoyés";
				echo '<script language=javascript> alert ("Fiche et fichier(s) correctement envoyés");</script>'; 
				echo '<SCRIPT LANGUAGE="JavaScript"> 
				document.location.href="accueil.php" </SCRIPT>'; 
				exit;
				}
	}
?>

par vincedjs » 13 févr. 2006, 10:34

Démo pas possible c'est un projet en local. Sinon pour les erreurs, il n'affiche strictement aucun boite.

Et dans mon code la partie a regarder, et le comptage des erreurs, et la gestion des alert en bas de code :wink: thx

par mere-teresa » 10 févr. 2006, 18:32

ma gestion de boite d'erreur ne fonctionne pas, je ne trouve pas quelque chose de stable
C'est à dire ? :-k

As-tu une page de démo où nous pourrions essayer ?
Sinon, que se passe-t-il quand il y a une erreur ? (non je vais pas lire tout ce code PHP sans savoir où chercher).

upload fichiers + erreurs

par vincedjs » 10 févr. 2006, 15:07

Bonjour ,

Voila, mon fichiers s'upload bien au repertoire donné et son bien enregistrer dans la base, par contre ma gestion de boite d'erreur ne fonctionne pas, je ne trouve pas quelque chose de stable :? .

-Est ce que vous voyez un problème dans mon code merci ?
<?php
if((file_exists($_FILES['fichiers']['tmp_name'])) || (file_exists($_FILES['fichiers2']['tmp_name'])))
	{
	$nberreurs = 0;
	$msgerreur;
	$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(file_exists($_FILES['fichiers']['tmp_name']))
		{ 
		if ($err = $_FILES['fichiers']['error'])
			{
			$dest_fichier2 = $dest_fichier;
			$nberreurs++;
			$msgerreur = "Erreur dans le fichier 1, $dest_fichier";
			} 
		else
			{
			$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) or die ("Erreur d'Insertion dans la base : ". $sql3 .'<br />'. mysql_error()); 
			}
		}
	if(file_exists($_FILES['fichiers2']['tmp_name']))
		{
		if ($err = $_FILES['fichiers']['error'])
			{
			$dest_fichier3 = $dest_fichier;	
			$nberreurs++;
			$msgerreur = "Erreur dans le fichier 2, $dest_fichier";
			}
		else
			{
			$dest_fichier = basename($_FILES['fichiers2']['name']);  
			nomfichiers ();      
			move_uploaded_file($_FILES['fichiers2']['tmp_name'], $dest_dossier . $dest_fichier);  
			$sql4 = "INSERT INTO fichiersj (nomFichierj, numFiche) VALUES ( '".$dest_fichier."', '".$numfiche2."')"; 
			$result4 = mysql_query($sql4) or die ("Erreur d'Insertion dans la base : ". $sql4 .'<br />'. mysql_error()); 
			}
		}
	if($nberreurs = 1)
		{
		echo '<script language=javascript> alert <?php $msgerreur; ?>;</script>'; 
		echo '<SCRIPT LANGUAGE="JavaScript"> 
		document.location.href="accueil.php" </SCRIPT>'; 
		exit; 
		}
		else if($nberreurs = 2)
			{
			echo '<script language=javascript> 
			alert ("Erreurs dans les fichiers, <?php $dest_fichier2; ?>, et <?php $dest_fichier3; ?>");</script>'; 
			echo '<SCRIPT LANGUAGE="JavaScript"> 
			document.location.href="accueil.php" </SCRIPT>'; 
			exit;
			}
			else if($nberreurs = 0)
				{
				echo "Fiche et fichier(s) correctement envoyés";
				echo '<script language=javascript> alert ("Fiche et fichier(s) correctement envoyés");</script>'; 
				echo '<SCRIPT LANGUAGE="JavaScript"> 
				document.location.href="accueil.php" </SCRIPT>'; 
				}
	}