Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/01/2012, 10h29   #1
Invité de passage
 
Homme
Étudiant
Inscription : janvier 2012
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2012
Messages : 5
Points : 1
Points : 1
Par défaut Renvoi toujours de la même erreur

Bonjour,

J'apprends la programmation sur le tas et vous expose un problème ou je sèche totalement. J'ai créé un formulaire d'inscription avec les vérifications d'usages :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php 
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
	if (empty($_POST['hidden'])) {
		if (!empty($_POST['login']) && (!empty($_POST['pass'])) && (!empty($_POST['pass_confirm'])) && (!empty($_POST['email'])) && (!empty($_POST['email_confirm']))) {
			if ($_POST['pass'] == $_POST['pass_confirm']) {
				if ($_POST['email'] == $_POST['email_confirm']) {
 
					$base = mysql_connect ('localhost', 'root', ''); 
					mysql_select_db ('membre', $base); 
 
					$sql = 'SELECT count(*) FROM connexion WHERE login="'.mysql_escape_string($_POST['login']).'"'; 
					$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
					$data = mysql_fetch_array($req); 
 
					if ($data[0] == 0) { 
 
						$sql = 'INSERT INTO connexion VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass'])).'", "'.mysql_escape_string($_POST['login']).'")'; 
						mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
 
						session_start(); 
						$_SESSION['login'] = $_POST['login']; 
						header('Location: espace_membre.php'); 
						exit(); 
 
					} else { $erreur = 'Un membre possède déjà ce login.'; }
				} else { $erreur = 'Les 2 adresses mail sont différentes'; }
			} else { $erreur = 'Les 2 mots de passe sont différents.'; }
		} else { $erreur = 'Au moins un des champs est vide.'; }
	} else { $erreur =  'Sale bot !!'; }
} 
?>
 
<html> 
<head> 
<title>Inscription</title>
<link rel="stylesheet" href="style.css" /> 
</head> 
 
<body> 
<div class="block">
 
<form action="inscription.php" method="post"> 
 
<label for="login">Login : </label><input type="text" id="
<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>">
<br /> 
 
<label for="pass">Mot de passe : </label><input type="password" id="
<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"> 
<br /> 
 
 
<label for="pass_confirm">Confirmation du mot de passe : </label><input type="password" id="
<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>">
<br />
 
<label for="email">Email :</label><input type="text" id="
<?php if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?>">
<br />
 
<label for="email_confirm">Confirmation de l'email : </label><input type="text" id="
<?php if (isset($_POST['email_confirm'])) echo htmlentities(trim($_POST['email_confirm'])); ?>">
<br />
 
<label for="hidden"></label><input type="hidden" id="<?php if (isset($_POST['hidden'])) echo htmlentities(trim($_POST['hidden'])); ?>">
 
<p><input type="submit" name="inscription" value="Inscription"></p> 
</form>
 
</div>
 
<?php if (isset($erreur)) echo '<br />',$erreur; ?> 
 
</body> 
</html>
La page me retourne toujours l'erreur : "Au moins un des champs est vide."

Cf code ligne 28,
Code :
		} else { $erreur = 'Au moins un des champs est vide.';
même lorsque toutes les conditions sont bien remplies.
Je suppose qu'il y a un soucis en ligne 4 mais ne trouve pas.

Code :
		if (!empty($_POST['login']) && (!empty($_POST['pass'])) && (!empty($_POST['pass_confirm'])) && (!empty($_POST['email'])) && (!empty($_POST['email_confirm']))) {
Si vous aviez la bonté de m'aiguiller !!
De même, toute remarque sur le code est la bienvenue.
Trashdane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 11h24   #2
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Bonjour,

Code :
1
2
3
echo '<pre>';
print_r($_POST);
echo '</pre>';
te renvoie quoi ?
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 13h49   #3
Invité de passage
 
Homme
Étudiant
Inscription : janvier 2012
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2012
Messages : 5
Points : 1
Points : 1
ça me donne

Code :
1
2
3
4
Array
(
 [inscription] => Inscription
)
ainsi que mon "Au moins un des champs est vide.", bien sur ^^
Trashdane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 13h55   #4
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
tu n'as pas qu'une seule clé dan ton $_POST...

login
pass
..
?

Tu devrais avoir :

login => val
pass =>
etc...
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 14h07   #5
Membre expérimenté
 
Avatar de amoiraud
 
Homme Adrien
Développeur Web
Inscription : octobre 2006
Messages : 413
Détails du profil
Informations personnelles :
Nom : Homme Adrien
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2006
Messages : 413
Points : 538
Points : 538
Envoyer un message via MSN à amoiraud
L'erreur viens de l'avant dernier else qui correspond à cette ligne :

Code :
1
2
 
if (empty($_POST['hidden'])) {
C'est donc logique car la première fois que tu arrive sur la page, $_POST['hidden'] n'existe pas, et vu que c'est un champ hidden ba impossible pour l'utilisateur de le modifier
amoiraud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 14h13   #6
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Bonjour,

Pour moi tous les champs sont mal formés, essaie ce code (je ne l'ai pas testé) et surtout cherche a comprendre...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
 
<?php 
session_start();
 
$inscription=     (isset($_POST['inscription']))   ?($_POST['inscription'])   :("");
$hidden=          (isset($_POST['hidden']))        ?($_POST['hidden'])        :("");
$login=           (isset($_POST['login']))         ?($_POST['login'])         :("");
$pass=            (isset($_POST['pass']))          ?($_POST['pass'])          :("");
$pass_confirm=    (isset($_POST['pass_confirm']))  ?($_POST['pass_confirm'])  :("");
$email=           (isset($_POST['email']))         ?($_POST['email'])         :("");
$email_confirm=   (isset($_POST['email_confirm'])) ?($_POST['email_confirm']) :("");
$erreur = "";
 
// si formulaire envoye
if($inscription == 'Inscription') {
 
   if( empty($login) || empty($pass) || empty($pass_confirm) || empty($email) || empty($email_confirm) )  
      $erreur = "Au moins un des champs est vide.";
 
   if(empty($erreur)) {
      if($pass != $pass_confirm) 
         $erreur = "Les 2 mots de passe sont différents.";
   }
 
   if(empty($erreur)) {
      if($email != $email_confirm)
         $erreur = "Les 2 adresses mail sont différentes";  
   }
 
   if(empty($erreur)) {
      $base = mysql_connect ('localhost', 'root', '') or die(mysql_error()); 
	   mysql_select_db ('membre', $base) or die(mysql_error());
 
	   $sql= "SELECT COUNT() FROM connexion WHERE login = '".mysql_real_escape_string($login,$base)."'";
	   $req= mysql_query($sql,$base) or die (mysql_error());
	   $data= mysql_fetch_row($req);
 
	   if(empty($data[0])) {
 
	     $sql= "INSERT INTO connexion VALUES('','".mysql_real_escape_string($login,$base)."','".md5($pass)."','".mysql_real_escape_string($login)."')";
	     if(!mysql_query($sql,$base)) die (mysql_error());
 
	     header('Location: espace_membre.php');
	     exit();
 
	   }else
	     $erreur = "Un membre possède déjà ce login."; 
 
   }
}
?>
 
<html> 
<head> 
<title>Inscription</title>
<link rel="stylesheet" href="style.css" /> 
</head> 
 
<body> 
<div class="block">
 
<form action="inscription.php" method="post"> 
 
<label for="login">Login : </label><input type="text" name="login" id="login" value="<?php echo $login; ?>" />
<br /> 
 
<label for="pass">Mot de passe : </label><input type="password" name="pass" id="pass" value="" />
<br /> 
 
<label for="pass_confirm">Confirmation du mot de passe : </label><input type="password" name="pass_confirm" id="pass_confirm" value="" />
<br />
 
<label for="email">Email :</label><input type="text" name ="email" id="email" value="<?php echo $email; ?>" />
<br />
 
<label for="email_confirm">Confirmation de l'email : </label><input type="text" name="email_confirm" id="email_confirm" value="<?php echo $email_confirm; ?>" />
<br />
 
<p><input type="submit" name="inscription" value="Inscription"></p> 
</form>
 
</div>
 
<?php if (!empty($erreur)) echo "<br />".$erreur; ?> 
 
</body> 
</html>
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/01/2012, 14h21   #7
Invité de passage
 
Homme
Étudiant
Inscription : janvier 2012
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2012
Messages : 5
Points : 1
Points : 1
Citation:
tu n'as pas qu'une seule clé dan ton $_POST...
Je me doute bien que je suis censée avoir des clés dans mon $_POST et pourtant, ce qui me tue c'est pourquoi ? où est le problème?

Citation:
L'erreur viens de l'avant dernier else qui correspond à cette ligne :
Code :
if (empty($_POST['hidden'])) {
C'est donc logique car la première fois que tu arrive sur la page, $_POST['hidden'] n'existe pas, et vu que c'est un champ hidden ba impossible pour l'utilisateur de le modifier
J'ai supprimé mon champ caché et toujours le même problème !!
Trashdane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 14h28   #8
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Citation:
Envoyé par Trashdane Voir le message
Je me doute bien que je suis censée avoir des clés dans mon $_POST et pourtant, ce qui me tue c'est pourquoi ? où est le problème?
tes champs de type input n'ont pas l'attribut "name" définit, c'est justement lui qui représente ta clé...

__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 16/01/2012, 14h39   #9
Invité de passage
 
Homme
Étudiant
Inscription : janvier 2012
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2012
Messages : 5
Points : 1
Points : 1
Citation:
Pour moi tous les champs sont mal formés, essaie ce code
Ils sont mal formés, soit, mais normalement fonctionnel ?
Je vais prendre le temps d'étudier ce code, merci.

Citation:
tes champs de type input n'ont pas l'attribut "name" définit, c'est justement lui qui représente ta clé...
Détail de poids, il me reste beaucoup de choses à apprendre !!
Trashdane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2012, 14h48   #10
Invité de passage
 
Homme
Étudiant
Inscription : janvier 2012
Messages : 5
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2012
Messages : 5
Points : 1
Points : 1
Mon problème venait de cet attribut "name" manquant !!

Merci beaucoup
Trashdane est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h06.


 
 
 
 
Partenaires

Hébergement Web