Upload de fichier (condition sur la vérification...)

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 de fichier (condition sur la vérification...)

par kweb » 31 mai 2007, 11:32

Merci de votre aide !

tout fonctionne bien

par Ryle » 31 mai 2007, 10:57

mais quand pensez vous ?
Euh..... tu veux une date précise ? ;)

Plus sérieusement, lorsque tu passes un paramètre dans l'url du type "?param=maValeur" tu vas récupérer en php la variable $_GET['param'] qui aura pour valeur "maValeur" si tu l'affiches. Donc si tu veux que sa valeur corresponde à ton message, il faut effectivement le passer dans l'url (mais c'est pas très propre...).

Le mieux dans ce cas est de tester la valeur et d'afficher un message en fonction, par exemple si erreur==1 -> fichier trop volumineux, si erreur==2 -> format incorrect, etc.

par kweb » 31 mai 2007, 10:38

Bizarre,

je viens de tester j'ai bien une erreur qui s'affiche, par contre il ne me mets pas le texte voulu, mais le valeur "1" (erreur=1) ?????

Faut t'il que je mette ma phrase apres le = ????
a mon avis non ? mais quand pensez vous ?

par Ryle » 31 mai 2007, 10:35

Je crois que certains navigateurs ont besoin d'une valeur (même vide) associée au paramètre, sinon ils l'ignorent pour alléger la requête. Il te faudrait donc juste rajouter un "=" :)

Essayes ceci dans ton header : formulaire.php?erreur=1

par kweb » 31 mai 2007, 10:21

je suis d'accord avec toi.
je dois surement faire une erreur dans mon code

j'ai tester en écrivant sa, dans ma page du formulaire qui a donc l'url http://www......formulaire.php?erreur
<?php 
			if(isset($_GET['erreur']))
			{
			  echo $_GET['erreur'];
			}
		?>

Pourrais-tu me dire si j'ai fais une erreur dans mon code ? car rien ne s'affiche
:roll:

merci

par mere-teresa » 31 mai 2007, 10:13

Si header fonctionne, il n'y a pas de raison pour que tu ne puisse pas récupérer l'erreur dans $_GET["erreur"]
Superglobales
Register_globals à OFF

par kweb » 31 mai 2007, 10:03

Effectivement, j'ai fais une erreur de frappe en inserant le ".".

par contre lorsque je test il me redirige bien sur le formulaire mais il ne me mets aucun message

voici le code que j'ai sur la page du form, pour afficher l'erreur
<?php 
			if(isset($erreur))
			{
			  echo '<p>'. $erreur .'</p>';
			}
		?>

par jpaul » 31 mai 2007, 09:52

Bonjour,
Quand tu dis que ça ne marche toujours pas, peux-tu préciser ce qui se passe ?
Ton formulaire continue de s'afficher sans l'erreur ou bien il ne s'affiche pas ?

Dans la ligne header, le point avant formulaire me semble un peu louche :
header("Location:.formulaire.php?erreur"); 
ne serais-ce pas plutôt :
header("Location:formulaire.php?erreur"); 
ou
header("Location:./formulaire.php?erreur"); 
Si header fonctionne, il n'y a pas de raison pour que tu ne puisse pas récupérer l'erreur dans $_GET["erreur"]

Upload de fichier (condition sur la vérification...)

par kweb » 31 mai 2007, 09:45

Slt tous le monde !
je suis entraint d'utiliser le tuto de "phpfrance" sur l'upload de fichier.
dans l'exemple qu'il donne, tout ce passe sur la même page. (formulaire et code qui permet d'uploder le fichier)

moi, je suis obligé de le faire sur deux fichier different.
Un fichier qui contient le form
Un fichier qui contiendras le code qui vas permettre l'upload apres vérification des conditions.

le probléme que je rencontre est au niveau des conditions
// vérifications
		if( !in_array( substr(strrchr($_FILES['fichier_PDF']['name'], '.'), 1), $extensions_ok ) )
			{
			$erreur = 'Seul les fichiers au <strong>format PDF<strong/> sont accepté, veuillez recommencer !';
			}
			
		elseif( file_exists($_FILES['fichier_PDF']['tmp_name'])and filesize($_FILES['fichier_PDF']['tmp_name']) > $taille_max)
			{
			$erreur = 'Le fichier ne doit pas dépasser <strong>4 Méga</strong>';
			}
le faite quelle ne soit pas sur la même page que le form, je n'arrive pas a faire afficher le message d'erreur sur la page de mon form.

j'avais pensé a mettre un Header du style (voir le code en gras)
// vérifications
		if( !in_array( substr(strrchr($_FILES['fichier_PDF']['name'], '.'), 1), $extensions_ok ) )
			{
			$erreur = 'Seul les fichiers au <strong>format PDF<strong/> sont accepté, veuillez recommencer !';
                        header("Location:.formulaire.php?erreur");
			}
			
		elseif( file_exists($_FILES['fichier_PDF']['tmp_name'])and filesize($_FILES['fichier_PDF']['tmp_name']) > $taille_max)
			{
			$erreur = 'Le fichier ne doit pas dépasser <strong>4 Méga</strong>';
			}
mais sa ne marche toujours pas....
pourriez vous m'aider ?

Merci a vous