[RESOLU] Erreur quand l'input est vide

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 : [RESOLU] Erreur quand l'input est vide

Re: Erreur quand l'input est vide

par morganK » 20 avr. 2014, 10:29

Si $id_membre n'est pas initialisée, tu as certainement une erreur PHP à ce niveau-là !

Re: Erreur quand l'input est vide

par morganK » 20 avr. 2014, 10:07

Par ailleurs si required='required' était mieux connu, bien des choses en seraient simplifiées...
Tant que Windows XP (et a fortiori IE8) sera autant présent, il est difficile de n'utiliser que l'attribut required et de se passer des vérifications JS et/ou PHP, malheureusement !

Re: Erreur quand l'input est vide

par sirakawa » 19 avr. 2014, 18:07

Tu as raison, mais j'ai l'habitude de traiter séparément chaque élément pour pouvoir donner un message d'erreur adapté.
Par ailleurs si required='required' était mieux connu, bien des choses en seraient simplifiées...

Re: Erreur quand l'input est vide

par Aureusms » 19 avr. 2014, 16:37

Sur la dernière version:
if(isset($_POST['username'],$_POST['password'],$_POST['email'])) : syntaxe aberrante
Salut Sirakawa,

Je ne suis pas d'accord avec toi : isset() peut contenir plusieurs variables à la suite pour les tester en même temps (http://www.php.net/manual/fr/function.isset.php).
Ce n'est donc pas aberrant mais peut être que l'utilisation de empty () pour vérifier si elle existe et si elle est vide (ou pas) serait plus judicieux.

Re: Erreur quand l'input est vide

par sirakawa » 19 avr. 2014, 14:57

Sur la dernière version:
if(isset($_POST['username'],$_POST['password'],$_POST['email'])) : syntaxe aberrante
Sur les versions précédentes:
if(isset($_POST['submit'])) : peut -être if(isset($_POST['envoyer'])) encore qu'il soit prodigieusement inutile de tester cette valeur, puisque si le bouton n'a pa été activé on n'est pés là.
En revanche dans le corps:
$photo1 = htmlspecialchars(mysql_escape_string($_POST['photo1'])); c'st là qu'il faut tester si $_POST['photo1'] est vide ou pas.

En général:
Qund on a des problèmes avec $-_POST, il suffit de mettre au début du script:
print_r($_POST); die(); pour y voir plus clair

Re: Erreur quand l'input est vide

par ISoon » 19 avr. 2014, 14:00

Je ne vois pas les input avec les "name" username, password, passverif et email, ni où $id_membre est initialisée.
Il n'y a pas d'input pour eux, se sont les informations quand il se sont inscrits, je les affiche comme sa.

J'ai modifier un peu le fichier pour inserer
<?php
if(isset($_POST['username'],$_POST['password'],$_POST['email']))
		{
			
			$dnn = mysql_fetch_array(mysql_query('select * from users where username="'.$_SESSION['username'].'"'));
			$id = htmlentities($dnn['id'], ENT_QUOTES, 'UTF-8');

		}
?>
<?php

		if(isset($_POST['submit']))
		{


				$photo1 = htmlspecialchars(mysql_escape_string($_POST['photo1']));
				$photo2 = htmlspecialchars(mysql_escape_string($_POST['photo2']));

				$id = $id_membre;
				
				
				if(empty($photo1 && $photo2))
				{
					echo"Veuillez Insérer une image";  
				
				}else{
					mysql_query("INSERT INTO duel(photo1,photo2,id_membre)
					VALUES('$photo1','$photo2','$id_membre')") or die(mysql_error());
					

				}
		}



?>		
Mais sa me fais page blanche?

Comment faire Merci

Re: Erreur quand l'input est vide

par Aureusms » 19 avr. 2014, 12:01

Utilise empty(). Cela vérifie isset en même temps.

Re: Erreur quand l'input est vide

par morganK » 19 avr. 2014, 10:11

Je ne vois pas les input avec les "name" username, password, passverif et email, ni où $id_membre est initialisée.

Erreur quand l'input est vide

par ISoon » 19 avr. 2014, 00:25

Hello :D :D

Donc j'aimerais faire un script PHP pour pouvoir insérer des donnés dans la base de donnée

Voici la première:
<form method="POST" action="" enctype="multipart/form-data">
 <br/><br/>
<input placeholder="Insérer le lien d'une image" style="width:250px;" type="text" name="photo1">
<input type="text" name="photo2" style="width:250px;" placeholder="Insérer le lien d'une image">
<br/><br/><br/>
 <input type="submit" style="font-size:22px;height:50px;border:1px solid #7CFC00;background-color:#7CFC00; width:500px; border-radius:7px;" name="envoyer" value="Ajouter">
</form><br/>
Voici la deuxième page :
<?php

if(isset($_POST['submit']))
		{


		$photo1 = htmlspecialchars(mysql_escape_string($_POST['photo1']));
		$photo2 = htmlspecialchars(mysql_escape_string($_POST['photo2']));



		if(isset($_POST['username'],$_POST['password'],$_POST['email']))
		{
			$username = htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8');
			if($_POST['password']==$_POST['passverif'])
			{
				$password = htmlentities($_POST['password'], ENT_QUOTES, 'UTF-8');
			}
			else
			{
				$password = '';
			}
			$email = htmlentities($_POST['email'], ENT_QUOTES, 'UTF-8');
			$avatar = htmlentities($_POST['avatar'], ENT_QUOTES, 'UTF-8');
		}
		else
		{
			//Sinon, on affiche les donnes a partir de la base de donnee
			$dnn = mysql_fetch_array(mysql_query('select * from users where username="'.$_SESSION['username'].'"'));
			$id = htmlentities($dnn['id'], ENT_QUOTES, 'UTF-8');
			$username = htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8');
			$password = htmlentities($dnn['password'], ENT_QUOTES, 'UTF-8');
			$email = htmlentities($dnn['email'], ENT_QUOTES, 'UTF-8');
			$avatar = htmlentities($dnn['avatar'], ENT_QUOTES, 'UTF-8');
		}
				
				$id = $id_membre;
				
				
				if(empty($photo1))
				{
					$errors[] = "Veuillez Insérer une image";  
				}
				
				if(empty($photo2))
				{
					$errors[] = "Veuillez insérer une image";
				}
				
			
				
				if(!empty($errors))
				{
						foreach($errors as $error)
						{
							echo "<div class='error'>".$error."</div>";
						}
				}else{
					mysql_query("INSERT INTO duel(photo1,photo2,id_membre)
					VALUES('$photo1','$photo2','$id_membre')") or die(mysql_error());
					

				}
		}



?>		
Donc j'aimerais que si l'input est vide il y a une erreur qui s'affiche.

Mais quand j'ajoute avec rien dans l'input il y a page blanche sur l'autre page et pareil quand je mets des choses dans l'input.

Comment puis-je faire se que je veux?

Merci beaucoup :P