par
kakou34 » 24 déc. 2013, 17:01
Bonjour,
Je cherche à transmettre une variable sur une autre page, hors elle ne s'affiche pas.
Je pense que l'erreur est faible mais je sais pas comment faire
Donc sans plus attendre les codes !
Le formulaire d'inscription :
<form action="contenu/inscription/fonction.php" class="inscription" method="post" >
<fieldset>
<legend>REJOIGNEZ-NOUS</legend>
<label>» NOM</label><input class="a" name="nom" type="text" />
<label>» PRENOM</label><input class="a" name="prenom" type="text" />
<label>» EMAIL</label><input class="a" name="email" type="email" />
<label>» MOT DE PASSE</label><input class="a" name="mdp1" type="password" />
<label>» MOT DE PASSE (Confirmation)</label><input class="a" name="mdp2" type="password" />
<input class="b" name="inscription" type="submit" value="Inscription !" />
<span><?php echo $echo; ?></span>
<div style="clear : both;" ></div>
</fieldset>
</form>
La page fonction qui est apellé :
<?php
$url = $_SERVER["HTTP_REFERER"];
if(isset($_POST['inscription']))
{
if(empty($_POST['nom']) AND (preg_match('#^[a-zA-Z]{3,}$#', $_POST['nom'])))
{
$echo = 'Nom invalide';
header('Location:'.$url.'');
}
else if(empty($_POST['prenom']) AND (preg_match('#^[a-zA-Z]{3,}$#', $_POST['prenom'])))
{
$echo = 'Prénom invalide';
header('Location:'.$url.'');
}
else if(empty($_POST['email']) AND (preg_match('#^[0-9a-z-_.]+@[0-9a-z-_.]{2,}\.[a-z]{2,4}$#', $_POST['email']) ))
{
$echo = 'Email invalide';
header('Location:'.$url.'');
}
else if(empty($_POST['mot_de_passe1']))
{
$echo = 'Mot de passe invalide';
header('Location:'.$url.'');
}
else if(empty($_POST['mot_de_passe2']))
{
$echo = 'Mot de passe invalide';
header('Location:'.$url.'');
}
else if(($_POST['mot_de_passe1']) != ($_POST['mot_de_passe2']))
{
$echo = 'Mots de passes différents';
header('Location:'.$url.'');
}
else
{
$nom = ucfirst($_POST['nom']);
$prenom = ucfirst($_POST['prenom']);
$email = strtolower($_POST['email']);
$mot_de_passe = sha1($_POST['mot_de_passe1']);
$requete = $bdd->prepare('INSERT INTO membre (id, nom, prenom, email, mot_de_passe) VALUES("", :nom, :prenom :email, :mot_de_passe)');
$requete->execute(array(
'nom' => $nom,
'prenom' => $prenom,
'email' => $email,
'mot_de_passe' => $mot_de_passe,
));
$echo = 'Inscription réussite !';
header('Location:'.$url.'');
}
}
?>
Donc, comme vous le remarquer une variable '$echo' affiche l'erreur !
Le soucis est que, aprés avoir 'MAL' remplie mon formulaire, fonction.php crée la variable ($echo) mais ne l''affiche pas sur la page de formulaire
Et c'est donc là que je m'en remet à vous.
Bonjour,
Je cherche à transmettre une variable sur une autre page, hors elle ne s'affiche pas.
Je pense que l'erreur est faible mais je sais pas comment faire :(
Donc sans plus attendre les codes !
Le formulaire d'inscription :
[html]<form action="contenu/inscription/fonction.php" class="inscription" method="post" >
<fieldset>
<legend>REJOIGNEZ-NOUS</legend>
<label>» NOM</label><input class="a" name="nom" type="text" />
<label>» PRENOM</label><input class="a" name="prenom" type="text" />
<label>» EMAIL</label><input class="a" name="email" type="email" />
<label>» MOT DE PASSE</label><input class="a" name="mdp1" type="password" />
<label>» MOT DE PASSE (Confirmation)</label><input class="a" name="mdp2" type="password" />
<input class="b" name="inscription" type="submit" value="Inscription !" />
<span><?php echo $echo; ?></span>
<div style="clear : both;" ></div>
</fieldset>
</form>[/html]
La page fonction qui est apellé :
[php]<?php
$url = $_SERVER["HTTP_REFERER"];
if(isset($_POST['inscription']))
{
if(empty($_POST['nom']) AND (preg_match('#^[a-zA-Z]{3,}$#', $_POST['nom'])))
{
$echo = 'Nom invalide';
header('Location:'.$url.'');
}
else if(empty($_POST['prenom']) AND (preg_match('#^[a-zA-Z]{3,}$#', $_POST['prenom'])))
{
$echo = 'Prénom invalide';
header('Location:'.$url.'');
}
else if(empty($_POST['email']) AND (preg_match('#^[0-9a-z-_.]+@[0-9a-z-_.]{2,}\.[a-z]{2,4}$#', $_POST['email']) ))
{
$echo = 'Email invalide';
header('Location:'.$url.'');
}
else if(empty($_POST['mot_de_passe1']))
{
$echo = 'Mot de passe invalide';
header('Location:'.$url.'');
}
else if(empty($_POST['mot_de_passe2']))
{
$echo = 'Mot de passe invalide';
header('Location:'.$url.'');
}
else if(($_POST['mot_de_passe1']) != ($_POST['mot_de_passe2']))
{
$echo = 'Mots de passes différents';
header('Location:'.$url.'');
}
else
{
$nom = ucfirst($_POST['nom']);
$prenom = ucfirst($_POST['prenom']);
$email = strtolower($_POST['email']);
$mot_de_passe = sha1($_POST['mot_de_passe1']);
$requete = $bdd->prepare('INSERT INTO membre (id, nom, prenom, email, mot_de_passe) VALUES("", :nom, :prenom :email, :mot_de_passe)');
$requete->execute(array(
'nom' => $nom,
'prenom' => $prenom,
'email' => $email,
'mot_de_passe' => $mot_de_passe,
));
$echo = 'Inscription réussite !';
header('Location:'.$url.'');
}
}
?>[/php]
Donc, comme vous le remarquer une variable '$echo' affiche l'erreur !
Le soucis est que, aprés avoir 'MAL' remplie mon formulaire, fonction.php crée la variable ($echo) mais ne l''affiche pas sur la page de formulaire :(
Et c'est donc là que je m'en remet à vous.