Inscription php espace membre

Fermé
gfcna - 24 avril 2010 à 12:55
 gfcna - 24 avril 2010 à 23:06
Bonjour,

Voici mon code qui agit lorsque que je clique sur le bouton valider.

<?php


//Page du haut
include("sources/haut.php");

//Fichier necessaire
include("sources/config.php");

// Verifie si on peut se connecter a la base sql
$connect=mysql_connect($host,$user,$pass) or die ("Impossible de se connecter");
mysql_select_db($base, $connect) or die ("Impossible de selectionner la base de donnees");

//Configure les dates et les heures
$date= date("Y-m-d");
$heure= date("H:i:s");
$quipass= date("Y-m-d");
$heurepass= date("H:i:s");

//Verification des differents champs
$inscr=0;

//Verifie si l'email est correct
function EmailOK($mail) {return( ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_'a-z{|}~]+'.'@'.'[-!#$%&\'*+\\/0-9=?A-Z^_'a-z{|}~]+\.'.'[-!#$%&\'*+\\./0-9=?A-Z^_'a-z{|}~]+$',$mail) );}
if (EmailOK($email)) {$inscr=0;}
else {$inscr=1;
echo ("<center><br><font face=\"<? echo $font; ?>\" size=\"$size\"><b>Votre email est incorrect.</b></font><br>");}

//Verifie que tous les champs obligatoires ont été rempli
if ((!$nom)||(!$email)||(!$pass1)||(!$pass2)){
echo ("<center><br><font face=\"<? echo $font; ?>\" size=\"$size\"><b>Un ou pluiseurs champs obligatoire n'ont pas été rempli.</b></font><br>");
$inscr=1;}

//Verifie si le mot de passe et sa confirmation est equivalent
if ($pass1!=$pass2){
echo ("<center><br><font face=\"<? echo $font; ?>\" size=\"$size\"><b>Le mot de passe ne correspond pas à la confirmation.</b></font><br>");
$inscr=1;}

//Recupere le nombre de messages au total
$result=mysql_query ("SELECT * FROM comptes WHERE nom='$nom'") or die ("Requete impossible");
$exnom = mysql_num_rows($result);
if ($exnom!=0){
echo ("<center><br><font face=\"<? echo $font; ?>\" size=\"$size\"><b>Votre nom est deja pris.</b></font><br>");
$inscr=1;}

//Cryptage du mot de passe
$pass1=md5($pass1);

//Enregistrement des donnees dans la base de donnees
if ($inscr==0){
$query ="insert into comptes (nom, pass, email, site, localite, date, heure, quipass, heurepass) values('$nom', '$pass1', '$email', '$site', '$localite', '$date', '$heure', '$quipass', '$heurepass')";
echo ("<center><br><font face=\"<? echo $font; ?>\" size=\"$size\"><b>Votre inscription a réussi.</b></font><br>");
echo ("<font face=\"<? echo $font; ?>\" size=\"$size\">Veuillez-vous connecter pour accéder à l'espace membre.</font><br><br>");
echo ("<a href=\"index.php\"><font face=\"<? echo $font; ?>\" size=\"$size\">Se connecter</font></a><br></center>");}
//si il y a une erreur
else {echo ("<center><br><font face=\"<? echo $font; ?>\" size=\"$size\"><b>Veuillez recommencer votre inscription.</b></font><br><br>");
echo ("<a href=\"inscription.php\"><font face=\"<? echo $font; ?>\" size=\"$size\">Inscription</font></a><br></center>");}

mysql_query($query, $connect);
mysql_free_result($result);
mysql_close($connect);



//Page du bas
include("sources/bas.php");
?>

Et voici ce qu'il m'affiche quand je valide l'inscription alors que je remplit les champs correctement.

voyez vous une erreur ?

Merci
A voir également:

14 réponses

creadiff Messages postés 445 Date d'inscription samedi 3 avril 2010 Statut Membre Dernière intervention 3 novembre 2011 57
Modifié par creadiff le 24/04/2010 à 15:38
"Et voici ce qu'il m'affiche quand je valide l'inscription alors que je remplit les champs correctement."

C'est-à-dire ?
0
voici ce qu'il m'affiche désolé un oublit :
///////////////////////////////////
Votre email est incorrect.

Un ou pluiseurs champs obligatoire n'ont pas été rempli.

Veuillez recommencer votre inscription.

//////////////////////////////////
0
NothingAtALL Messages postés 26 Date d'inscription mercredi 10 décembre 2008 Statut Membre Dernière intervention 2 mai 2010 5
24 avril 2010 à 21:13
Ton expression ereg n'est pas écrite comme il faut et tu ne devrais pas utiliser la fonction ereg mais plutôt preg_match car ereg est rendu deprecated avec 5.3.0.

Également tes echo devraient être écrit de cette manière
echo "<center><br><font face=\"$font\" size=\"$size\"><b>Votre email est incorrect.</b></font><br>";

plutôt que de mettre ton <? echo $font; ?> parce que tu ne peux mettre une balise <? dans une balise <?

il n'y avait aucune indentation pour ton code, ce qui aide pour la lecture.

Tu devrais utiliser des bool plutôt que des 0 et 1

Tu avait oublier de regarder si ta variable $query existait.

Tu ne devrais pas utiliser la balise font mais plutôt mettre du CSS.

J'ai réécris ton code parce qu'il y avait beaucoup d'erreur donc il sera plus facile pour toi de faire la comparaison entre les deux.


Bonjour,

Voici mon code qui agit lorsque que je clique sur le bouton valider.

<?php


//Page du haut
include("sources/haut.php");

//Fichier necessaire
include("sources/config.php");

// Verifie si on peut se connecter a la base sql
$connect=mysql_connect($host,$user,$pass) or die ("Impossible de se connecter");
mysql_select_db($base, $connect) or die ("Impossible de selectionner la base de donnees");

//Configure les dates et les heures
$date= date("Y-m-d");
$heure= date("H:i:s");
$quipass= date("Y-m-d");
$heurepass= date("H:i:s");

//Verification des differents champs
$inscr=true;

//Verifie si l'email est correct
function EmailOK($mail) {
return preg_match('/^[A-Za-z0-9\._-]+[@][A-Za-z0-9\._-]+[\.].[A-Za-z0-9]+$/',$mail);
}

if (!EmailOK($email)) {
$inscr = false;
echo "<center><br><font face=\"$font\" size=\"$size\"><b>Votre email est incorrect.</b></font><br>";
}

//Verifie que tous les champs obligatoires ont été rempli
if (!$nom || !$email || !$pass1 || !$pass2) {
$inscr = false;
echo "<center><br><font face=\"$font\" size=\"$size\"><b>Un ou pluiseurs champs obligatoire n'ont pas été rempli.</b></font><br>";
}

//Verifie si le mot de passe et sa confirmation est equivalent
if ($pass1!=$pass2) {
$inscr = false;
echo "<center><br><font face=\"$font\" size=\"$size\"><b>Le mot de passe ne correspond pas à la confirmation.</b></font><br>";
}

//Recupere le nombre de messages au total
$result = mysql_query ("SELECT * FROM comptes WHERE nom='$nom'") or die ("Requete impossible");
$exnom = mysql_num_rows($result);
if ($exnom!=0){
$inscr = false;
echo "<center><br><font face=\"$font\" size=\"$size\"><b>Votre nom est deja pris.</b></font><br>";
}

//Cryptage du mot de passe
$pass1 = md5($pass1);

//Enregistrement des donnees dans la base de donnees
if ($inscr){
$query ="insert into comptes (nom, pass, email, site, localite, date, heure, quipass, heurepass) values('$nom', '$pass1', '$email', '$site', '$localite', '$date', '$heure', '$quipass', '$heurepass')";
echo "<center><br><font face=\"$font\" size=\"$size\"><b>Votre inscription a réussi.</b></font><br>";
echo "<font face=\"$font\" size=\"$size\">Veuillez-vous connecter pour accéder à l'espace membre.</font><br><br>";
echo "<a href=\"index.php\"><font face=\"$font\" size=\"$size\">Se connecter</font></a><br></center>";
}
//si il y a une erreur
else {
echo "<center><br><font face=\"$font\" size=\"$size\"><b>Veuillez recommencer votre inscription.</b></font><br><br>";
echo "<a href=\"inscription.php\"><font face=\"$font\" size=\"$size\">Inscription</font></a><br></center>";
}

if (isset($query))
mysql_query($query, $connect);
mysql_free_result($result);
mysql_close($connect);



//Page du bas
include("sources/bas.php");
?>
0
NothingAtALL Messages postés 26 Date d'inscription mercredi 10 décembre 2008 Statut Membre Dernière intervention 2 mai 2010 5
24 avril 2010 à 21:15
Ah oui! également, tu utilises trop de parenthèses.
0
merci de ton aide il est vrai que le code est plus clair désormais.

Mais j'ai toujours le même problème dès que je valide l'inscription toujours se même message qui persiste :

Votre email est incorrect.

Un ou pluiseurs champs obligatoire n'ont pas été rempli.

Un ou pluiseurs champs obligatoire n'ont pas été rempli.

Veuillez recommencer votre inscription.

je débute en php vois-tu ce qui peut causer ce problème?

Merci
0
NothingAtALL Messages postés 26 Date d'inscription mercredi 10 décembre 2008 Statut Membre Dernière intervention 2 mai 2010 5
24 avril 2010 à 21:37
quelle est la valeur qui se retrouve dans ta variable $email?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
voici le code de mon formulaire d'inscription :

<?
include("inc/head.php");
?>
<body bgcolor=white>
<p align="center"><font size="+2" color="#33CCFF" face="Arial, Helvetica, sans-serif"><i>Veuillez
remplir le formulaire ci dessous</i></font></p>
<br><br>
<form method="POST" action="inscripverif.php">
<div align="center">
<table border="1" cellpadding="10" cellspacing="0" width="50%" bordercolor="#000080">
<tr>
<td width="22%" bgcolor="#CAE4FF"><font face="Arial" size="2">Pseudo</font></td>
<td width="78%"><input type="text" name="user" size="30" selected></td>
</tr>
<tr>
<td width="22%" bgcolor="#CAE4FF"><font face="Arial" size="2">mot de passe</font></td>
<td width="78%"><input type="password" name="mdp" size="30"></td>
</tr>
<tr>
<td width="22%" bgcolor="#CAE4FF"><font face="Arial" size="2">Mail</font></td>
<td width="78%"><input type="text" name="mail" size="30"></td>
</tr>
<tr>
<td width="22%" bgcolor="#CAE4FF"><font face="Arial" size="2">Site</font></td>
<td width="78%"><input type="text" name="url" size="30"></td>
</tr>
</table>
<br>
<input type="submit" value="Valider">
</div>
</form>
<p align="center"> </p>
<p align="center"><i></i></p>
<div align="center"><img src="img/php-small-white.gif" width="88" height="31"><img src="img/poweredbymysql-88.png" width="88" height="31"><br>
<br>
</div>
</body>

</html>
0
NothingAtALL Messages postés 26 Date d'inscription mercredi 10 décembre 2008 Statut Membre Dernière intervention 2 mai 2010 5
24 avril 2010 à 21:44
Il y a un endroit dans ton code ou tu regardes si le courriel est valide
if (!EmailOK($email)) {
il faut que tu remplisses cette variable avant de pouvoir la vérifier
$email = htmlspecialchars($_POST['mail']);
0
je ne voit pas ou introduire ce bout de code :
$email = htmlspecialchars($_POST['mail']);

je te redonne mon code du formulaire d'inscription :

<?php


//Page du haut
include("sources/haut.php");

//Fichier necessaire
include("sources/config.php");
?>

<form method="post" action="validinscript.php">
<table width="400" border="0" align="center" bgcolor="<? echo $colp;?>">
<tr>
<td>
<table width="100%" border="0">
<tr bgcolor="<? echo $cols;?>">
<td>
<div align="center"><b><font size="<? echo $size; ?>" face="<? echo $font; ?>" color="#FFFFFF">Inscription
pour devenir membre</font></b></div>
</td>
</tr>
</table>
<table width="100%" border="0">
<tr>
<?
$email = htmlspecialchars($_POST['mail']);
?>
<td width="55%"><font face="<? echo $font; ?>" size="<? echo $size; ?>"><b>Nom
:</b></font></td>
<td width="45%">
<input type="text" name="nom">
</td>
</tr>
<tr>
<td width="55%"><b><font size="<? echo $size; ?>" face="<? echo $font; ?>">Email
:</font></b></td>
<td width="45%">
<input type="text" name="email">
</td>
</tr>
<tr>
<td width="55%"> <font face="<? echo $font; ?>" size="<? echo $size; ?>"><b>Site
internet </b>(facultatif)<b> :</b></font></td>
<td width="45%">
<input type="text" name="site">
</td>
</tr>
<tr>
<td width="55%"> <font face="<? echo $font; ?>" size="<? echo $size; ?>"><b>Localité
</b>(facultatif)<b> :</b></font></td>
<td width="45%">
<input type="text" name="localite">
</td>
</tr>
<tr>
<td width="55%"><b><font face="<? echo $font; ?>" size="<? echo $size; ?>">Mot
de passe :</font></b></td>
<td width="45%">
<input type="password" name="pass1">
</td>
</tr>
<tr>
<td width="55%"><font face="<? echo $font; ?>" size="<? echo $size; ?>"><b>Confirmation
du mot de passe :</b></font></td>
<td width="45%">
<input type="password" name="pass2">
</td>
</tr>
</table>
<table width="100%" border="0">
<tr>
<td>
<center><input type="submit" name="Submit" value="Valider"></center>
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>

<table width="400" border="0" align="center" bgcolor="<? echo $colp;?>">
<tr>
<td>
<table width="100%" border="0">
<tr bgcolor="<? echo $cols;?>">
<td>
<div align="center"><b><font size="<? echo $size; ?>" face="<? echo $font; ?>" color="#FFFFFF">Informations</font></b></div>
</td>
</tr>
</table>
<table width="100%" border="0">
<tr>
<td><font face="<? echo $font; ?>" size="<? echo $size; ?>"><?php echo $inscription; ?></font></td>
</tr>
</table>
</td>
</tr>
</table>

<?php

//Page du bas
include("sources/bas.php");
?>
0
NothingAtALL Messages postés 26 Date d'inscription mercredi 10 décembre 2008 Statut Membre Dernière intervention 2 mai 2010 5
24 avril 2010 à 22:13
Il suffit de le mettre avant

if (!EmailOK($email)) {
$inscr = false;
echo "<center><br><font face=\"$font\" size=\"$size\"><b>Votre email est incorrect.</b></font><br>";
}
dans le code que j'ai corrigé.

Tu ma donnée 2 codes différents, un qui l'input s'appelle email
<input type="text" name="email">
Pour ce code tu devras vérifier
$email = htmlspecialchars($_POST['email']);

et celui pour ton post " gfcna 24 avr 2010 à 21:39 "
tu devrais vérifier
$email = htmlspecialchars($_POST['mail']);

Tu as 2 formulaires dans des langues différentes, mais tu devrais garder le meme nom pour tes inputs.

Je vais te donner une exemple simple peut-etre que ca va te permettre de mieux comprendre!

dans une page que je vais appeler form.php je vais mettre le code suivant
<?php
$content = '';
$content .= '<form method="post" action="validate.php">';
$content .= '<input name="email" />';
$content .= '<input type="submit" name="submit" value="Submit" />';
$content .= '</form>';

echo $content;
?>

dans la page validate.php

<?php
if (isset($_POST['email']))
$email = htmlspecialchars($_POST['email']);
else
$email = '';

if (!EmailOK($email))
echo 'email not valid';
else
echo 'email valid';


function EmailOK($mail) {
return preg_match('/^[A-Za-z0-9\._-]+[@][A-Za-z0-9\._-]+[\.].[A-Za-z0-9]+$/',$mail);
}

?>

Le name que tu donnes a ton input dans ton formulaire va se retrouver, quand ton form va etre envoyer, dans la variable $_POST si le form est envoyé en post sinon $_GET si le form est envoyé en get.
0
help svp, ce programme est important pour moi.

Merci
0
il y a du mieux j'ai résolu le problème de l'email.

Me reste ceci maintenant :

//////////
Un ou plusieurs champs obligatoire n'ont pas été rempli.

Veuillez recommencer votre inscription.
/////////

faut-il faire la meme chose?
0
NothingAtALL Messages postés 26 Date d'inscription mercredi 10 décembre 2008 Statut Membre Dernière intervention 2 mai 2010 5
24 avril 2010 à 22:29
Tu dois faire la même chose pour $nom pour $pass1 et $pass2
0
problème résolu pour l'inscription :

///////////////
Votre inscription a réussi.
Veuillez-vous connecter pour accéder à l'espace membre.
//////////////


maintenant problème pour la connexion :

///////////
Erreur

Vous n'etes pas autorisé à accéder à cette page.
Votre authentification n'a pas été effectué.

Pour accéder à cette page, vous devez être membre : S'inscrire.
////////////
0
NothingAtALL Messages postés 26 Date d'inscription mercredi 10 décembre 2008 Statut Membre Dernière intervention 2 mai 2010 5
24 avril 2010 à 22:43
Vérifie si l'utilisateur que tu viens de créer est bien inscrit dans la bd.
Vérifie que lorsque tu fais la vérification entre le nom que tu inscrit dans le form de connexion est le meme que celui inscrit dans la bd
fait la meme chose pour le password
0
je viens de vérifier l'utilisateur est bien inscrit dans la bd.

le problème doit venir d'ailleur ça me renvoi sur la page erreur.php :

Message d'erreur :

///////
Erreur

Vous n'etes pas autorisé à accéder à cette page.
Pour accéder à cette page, vous devez être membre : S'inscrire.
///////

page index.php

<?php


//Page du haut
include("sources/haut.php");

//Fichier necessaire
include("sources/config.php");
?>

<form method="post" action="validcon.php">
<table width="350" border="0" align="center" bgcolor="<? echo $colp;?>">
<tr>
<td>
<table width="100%" border="0">
<tr bgcolor="<? echo $cols;?>">
<td>
<div align="center"><font face="<? echo $font; ?>" size="<? echo $size; ?>"><b><font color="#FFFFFF">Connexion
à l'espace membres</font></b></font></div>
</td>
</tr>
</table>
<table width="100%" border="0" align="center">
<tr>
<td width="32%"><font face="<? echo $font; ?>" size="<? echo $size; ?>"><b>Nom
:</b></font></td>
<td width="68%">
<input type="text" name="connom">
</td>
</tr>
<tr>
<td width="40%"><font face="Arial"><b><font face="<? echo $font; ?>" size="<? echo $size; ?>">Mot
de passe :</font></b></font></td>
<td width="68%">
<input type="password" name="conpass">
</td>
</tr>
</table>
<table width="100%" border="0">
<tr>
<td>
<center><input type="submit" name="Submit" value="Valider"></center>
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>

<center><font face="Arial" size="<? echo $size; ?>">Vous n'êtes pas encore inscrit ? </font>
<a href="inscription.php"><font face="Arial" size="<? echo $size; ?>">Inscription</font></a></center>
<center><font face="Arial" size="<? echo $size; ?>">Vous n'arrivez pas à vous connecter ? </font>
<a href="aidecon.php"><font face="Arial" size="<? echo $size; ?>">Aide</font></a></center>
<?php


//Page du bas
include("sources/bas.php");
?>

page erreur.php


<?php


//Cookies
Setcookie("espace_login");
Setcookie("espace_pass");

//Page du haut
include("sources/haut.php");

//Fichier necessaire
include("sources/config.php");
?>
<br><br><center><font face="<? echo $font; ?>" size="<? echo $size; ?>"><b>Erreur</b><br><br>Vous n'etes pas autorisé à accéder à cette page.</font><br>
<font face="<? echo $font; ?>" size="<? echo $size; ?>">Pour accéder à cette page, vous devez être membre : <a href="inscription.php">S'inscrire</a>.</font></center>

<?php


//Page du bas
include("sources/bas.php");
?>
0
le problème viendrai d'ici apparemment :

//Verifie si on s'est connecte a l'espace membre
$connom=$HTTP_COOKIE_VARS["espace_login"];
$conpass=md5($HTTP_COOKIE_VARS["espace_pass"]);
$result=mysql_query ("SELECT * FROM comptes WHERE nom='$connom' and pass='$conpass'") or die ("Requete impossible");
$autoconnect = mysql_num_rows($result);
if ($autoconnect==0) {
echo("<script language=\"javascript\">location=\"erreur.php\";</script>");}

il me renvoi sur la page erreur.php alors qu'il ne devrait pas
0
j'ai trouvé

if ($autoconnect==1) {

au lieu de

if ($autoconnect==0) {
0