par
maxime73 » 11 août 2011, 21:05
Bonjour je suis en train de faire un code qui permet de s'inscrire a l'espace membres de mon site .
Le premier if permet de charger le formulaire (il marche)
le premier elseif permet que si l'utilisateur a des variables de sessions (=connecté ) qu'on lui dise qu'il est déja inscrit (je ne l'ai pas encore testée, mais je pense qu'il marche)
le deuxieme elseif (qui permet de s'inscrire, si toutes les conditions sont bonnes )
c'est a dire:
-les deux mots de passe sont égales
-si le pseudo n'est pas déja utilisée
-si l'adresse e-mail a une forme correcte
- si le pseudo n'est pas vide
Il marche
En revanche lorsque l'utilisateur fait une faute , par exemple : il ecrit une adresse e-mail non valide . Le else ne veut pas se charger. Ca m'affiche une page blanche .
Vous pouvez tester le fonctionnement du script ici.
Merci d'avance
Voici le code:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>poliboolold.fr</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=********;dbname=polib250634', 'polib250634', '****', $pdo_options);
if(!isset( $_POST['pseudo'])AND !isset( $_POST['mdp']) AND !isset( $_POST['mdpdouble']) AND !isset( $_POST['email']))
{
if(!isset( $_SESSION['id']) AND !isset( $_SESSION['pseudo']))
{
?>
<form method="post" action="membres_inscription.php">
<p>
Pseudo <input type="text" name="pseudo"/>
mdp <input type="password" name="mdp"/>
mdpdouble <input type="password" name="mdpdouble"/>
email <input type="text" name="email"/>
<input type="submit" value="Valider" />
<?php
}
}
elseif(isset ($_SESSION['id']) AND isset($_SESSION['pseudo']))
{
echo"connecté";
}
elseif($_POST['mdp']== $_POST['mdpdouble'])
{
$pass_hacher = sha1($_POST['mdp']);
$req= $bdd->prepare('SELECT id FROM membres WHERE pseudo=:pseudo AND pass=:pass');
$req->execute(array('pseudo'=> $_POST['pseudo'],'pass'=> $pass_hacher));
$resultat= $req->fetch();
if(!$resultat)
{
if(preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email']))
{
if(!empty($_POST['pseudo']))
{
$pass_hache = sha1($_POST['mdp']);
$requete = $bdd->prepare('INSERT INTO membres(pseudo, pass, email, date_inscription) VALUES(:pseudo, :pass, :email, CURDATE())');
$requete->execute(array('pseudo'=> $_POST['pseudo'], 'pass'=> $pass_hache, 'email'=> $_POST['email']));
echo"Inscrit";
$requete->closeCursor();
}
}
}
}
else
{
echo"recommencez";
}
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
</body>
</html>
Bonjour je suis en train de faire un code qui permet de s'inscrire a l'espace membres de mon site .
Le premier if permet de charger le formulaire (il marche)
le premier elseif permet que si l'utilisateur a des variables de sessions (=connecté ) qu'on lui dise qu'il est déja inscrit (je ne l'ai pas encore testée, mais je pense qu'il marche)
le deuxieme elseif (qui permet de s'inscrire, si toutes les conditions sont bonnes )
c'est a dire:
-les deux mots de passe sont égales
-si le pseudo n'est pas déja utilisée
-si l'adresse e-mail a une forme correcte
- si le pseudo n'est pas vide
Il marche
En revanche lorsque l'utilisateur fait une faute , par exemple : il ecrit une adresse e-mail non valide . Le else ne veut pas se charger. Ca m'affiche une page blanche .
Vous pouvez tester le fonctionnement du script ici.
Merci d'avance
Voici le code:
[php]<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>poliboolold.fr</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
try
{
$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
$bdd = new PDO('mysql:host=********;dbname=polib250634', 'polib250634', '****', $pdo_options);
if(!isset( $_POST['pseudo'])AND !isset( $_POST['mdp']) AND !isset( $_POST['mdpdouble']) AND !isset( $_POST['email']))
{
if(!isset( $_SESSION['id']) AND !isset( $_SESSION['pseudo']))
{
?>
<form method="post" action="membres_inscription.php">
<p>
Pseudo <input type="text" name="pseudo"/>
mdp <input type="password" name="mdp"/>
mdpdouble <input type="password" name="mdpdouble"/>
email <input type="text" name="email"/>
<input type="submit" value="Valider" />
<?php
}
}
elseif(isset ($_SESSION['id']) AND isset($_SESSION['pseudo']))
{
echo"connecté";
}
elseif($_POST['mdp']== $_POST['mdpdouble'])
{
$pass_hacher = sha1($_POST['mdp']);
$req= $bdd->prepare('SELECT id FROM membres WHERE pseudo=:pseudo AND pass=:pass');
$req->execute(array('pseudo'=> $_POST['pseudo'],'pass'=> $pass_hacher));
$resultat= $req->fetch();
if(!$resultat)
{
if(preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email']))
{
if(!empty($_POST['pseudo']))
{
$pass_hache = sha1($_POST['mdp']);
$requete = $bdd->prepare('INSERT INTO membres(pseudo, pass, email, date_inscription) VALUES(:pseudo, :pass, :email, CURDATE())');
$requete->execute(array('pseudo'=> $_POST['pseudo'], 'pass'=> $pass_hache, 'email'=> $_POST['email']));
echo"Inscrit";
$requete->closeCursor();
}
}
}
}
else
{
echo"recommencez";
}
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
</body>
</html>[/php]