29-10-2007, 02:59 AM
Slt j'ai un problème dans ma page inscription2.php c'est elle qui a tout le code php pour enregistrer les infos dans la bdd.
voilà le code php:
voilà le code php:
Code PHP :
<?php
//------------------------------------------------
/*FORMULAIRE D'INSCRIPTION
Envoi des donnés dans la table "comptes_provisoirs" si les conditions sont remplies.
*/
//------------------------------------------------
//variable initialisée à zéro pour tester les conditions.
$nb_faux= 0;
if(isset($_POST['nom_empire']) && isset($_POST['nom_seigneur']) && isset($_POST['nom_mage']) && isset($_POST['mot_de_passe']) && isset($_POST['confirm_passe']) && isset($_POST['email'])
&& isset($_POST['race']) && isset($_POST['background']))
{
$login= $_POST['nom_seigneur'];
$empire= $_POST['nom_empire'];
$mage= $_POST['nom_mage'];
$mot_de_passe= $_POST['mot_de_passe'];
$confirm_passe= $_POST['confirm_passe'];
$email= $_POST['email'];
$race= $_POST['race'];
$background= $_POST['background'];
$background= stripslashes($_POST['background']);
$background= nl2br($_POST['background']);
//incrémenter la variable $nb_faux si les champs du formulaire sont vides
if(empty($_POST['nom_seigneur']) || empty($_POST['nom_empire']) || empty($_POST['nom_mage']) || empty($_POST['mot_de_passe']) || empty($_POST['confirm_passe']) || empty($_POST['email'])
|| empty($_POST['race']) || empty($_POST['background']))
{
$reponse= '<p>Il reste des champs non remplis</p><br/>';
$nb_faux ++;
}
//incrémenter la variable $nb_faux si des caractères ne sont pas autorisés pour le login
if (!preg_match('#^(\w{4,15})$#', $login))
{
$reponse= '<p>Il y a des caractères non autorisés dans le nom de votre seigneur ou celui-ci est trop court</p><br/>';
$nb_faux ++;
}
if (!preg_match('#^(\w{4,15})$#', $empire))
{
$reponse= '<p>Il y a des caractères non autorisés dans le nom de votre empire ou celui-ci est trop court</p><br/>';
$nb_faux ++;
}
if (!preg_match('#^(\w{4,15})$#', $mage))
{
$reponse= '<p>Il y a des caractères non autorisés dans le nom de votre mage ou celui-ci est trop court</p><br/>';
$nb_faux ++;
}
//incrémenter la variable $nb_faux si des caractères ne sont pas autorisés pour le mot de passe et sa confirmation
if (!preg_match('#(\w{4,10})$#', $mot_de_passe) or !preg_match('#(\w{4,10})$#', $confirm_passe))
{
$reponse= '<p>Il y a des caractères non autorisés dans votre mot de passe ou celui-ci est trop court</p><br/>';
$nb_faux ++;
}
//incrémenter la variable $nb_faux si le mot de passe et sa confirmation ne sont pas identiques
if($mot_de_passe != $confirm_passe)
{
$reponse= '<p>Vos mot de passe ne sont pas identiques</p><br/>';
$nb_faux ++;
}
//incrémenter la variable $nb_faux si le login existe déjà dans la base de donnée
if($nb_faux >= 0)
{
include("config.php");
$connexion= mysql_connect($hote,$utilisateur,$mdp) or die('<br/>Connexion au serveur impossible.<br/> Contactez le Webmaster si l\'erreur n\'est pas résolue.<br/>');
$choix_db= mysql_select_db($data_base) or die('<br/>seléction de la base de donnée echouée.<br/> Contactez le Webmaster si l\'erreur n\'est pas résolue.<br/>');
$requete= "SELECT nom_seigneur FROM $table_cd WHERE login='$login'";
$resultat= mysql_query($requete) or die('<br/>Exécution de la requête impossible.<br/> Contactez le Webmaster si l\'erreur n\'est pas résolue.<br/>');
$ligne= mysql_fetch_array($resultat);
if($login == $ligne['nom_seigneur'])
{
$reponse= '<p>Ce login est déjà utilisé par un autre membre</p><br/>';
$nb_faux ++;
}
}
//incrémenter la variable $nb_faux si la case à cocher "conditions" est null
if(isset($_POST['conditions'])== null)
{
$reponse= '<p>Vous n\'avez pas accepté les conditions</p><br/>';
$nb_faux ++;
}
//connexion à la base de donnée s'il n'y a pas d'erreurs (champs oubliés, expressions régulières, vérification du mot de passe, vérification du login)
if($nb_faux == 0)
{
include("config.php");
$clef= "0123456789";
$clef= rand();
$connexion= mysql_connect($hote,$utilisateur,$mdp) or die('<br/>Connexion au serveur impossible.<br/> Contactez le Webmaster si l\'erreur n\'est pas résolue.<br/>');
$choix_db= mysql_select_db($data_base) or die('<br/>seléction de la base de donnée echouée.<br/> Contactez le Webmaster si l\'erreur n\'est pas résolue.<br/>');
$requete= "INSERT INTO $table_cp VALUES('','$login','$mage','$empire','$mot_de_passe','$email','$race','$background','$clef')";
$resultat= mysql_query($requete) or die('<br/>Exécution de la requête impossible.<br/> Contactez le Webmaster si l\'erreur n\'est pas résolue.<br/>');
mysql_close($connexion);
//envoyer le mail si la requête à fonctionnée
if($resultat == true)
{
$reponse= '<p>Vous allez recevoir d\'ici quelques minutes un mail contenant le lien de validation<br/>
afin de finaliser votre inscription</p><br/>';
$mail_destinataire= $_POST['email'];
$sujet= "Endaël, validation de votre inscription";
$message= "Voici un rappel de vos identifiants:<br/>
Seigneur: $login<br/>
Empire: $empire<br/>
Mage: $mage<br/>
Mot de passe: $mot_de_passe<br/>
<br/>
Vous de encore valider votre inscription avant de jouer. Cliquez sur le lien de validation ci-dessous:<br/>
http://www.endael.ovh.org?&login=$login&clef=$clef<br/>
<br/>
Le Webmaster.<br/>
http://www.endael.ovh.org.";
$head= "Bonjour, $login";
mail($mail_destinataire,$sujet,$message,$head);
}
}
}
//--------------------------------------------------------------------
// VALIDATION DU COMPTE APRES INSCRIPTION
//
// Verification du lien de validation via mail :
// 1 - connexion si la clef et le login existe dans la table "comptes_provisoirs"
// 2 - transfert des données dans la table "comptes_definitifs"
// 3 - suppression des données dans la table "comptes_provisoirs"
//--------------------------------------------------------------------
if(isset($_GET['nom_seigneur']) && isset($_GET['clef']))
{
$login= $_GET['nom_seigneur'];
$clef= $_GET['clef'];
include("config.php");
// requete chercher les données lorsque le champs login et le champs clef existent dans la table "comptes_provisoirs"
$connexion= mysql_connect($hote,$utilisateur,$mdp) or die('<br/>Connexion au serveur impossible.<br/> Contactez le Webmaster si l\'erreur n\'est pas résolue.<br/>');
$choix_db= mysql_select_db($data_base) or die('<br/>seléction de la base de donnée echouée.<br/> Contactez le Webmaster si l\'erreur n\'est pas résolue.<br/>');
$requete= "SELECT nom_seigneur, nom_empire, nom_mage, mot_de_passe, email, race, background FROM $table_cp WHERE login='$login' AND clef='$clef'";
$resultat= mysql_query($requete) or die('<br/>Exécution de la requête impossible.<br/> Contactez le Webmaster si l\'erreur n\'est pas résolue.<br/>');
// affecter les infos utilisateurs si la clef et le pseudo existent dans la table "comptes_provisoirs"
if ($donnees = mysql_fetch_array($resultat))
{
$login= $donnees['nom_seigneur'];
$empire= $donnees['nom_empire'];
$mage= $donnees['nom_mage'];
$mot_de_passe= $donnees['mot_de_passe'];
$email= $donnees['email'];
$race= $donnees['race'];
$background= $donnees['background'];
// requette transferer les données de la table "comptes_provisoirs" à la table "comptes_definitifs"
$requete= "INSERT INTO $table_cd VALUES('','$login','$mage','$empire''$mot_de_passe','$email','$race','$background')";
$resultat= mysql_query($requete) or die('<br/>Exécution de la requête impossible.<br/><a href="contact.php">Contactez</a> le Webmaster si l\'erreur n\'est pas résolue.<br/>');
// requette suppression des données provisoir de la table "comptes_definitifs"
$requete= "DELETE FROM $table_cp WHERE clef='$clef' AND login='$login'";
$resultat= mysql_query($requete) or die('<br/>Exécution de la requête impossible.<br/><a href="contact.php">Contactez</a> le Webmaster si l\'erreur n\'est pas résolue.<br/>');
mysql_close($connexion);
$reponse= '<p>Votre inscription a été validée. Vous pouvez désormais jouer en vous loggant avec<br/>
vos iddentifiants</p><br/>';
}
else
{
$reponse= '<p>Votre inscription est déjà validée ou le lien de validation est incorrect</p><br/>';
}
}
?>
le problème survient à cette ligne:
Code PHP :
<?php
$requete= "INSERT INTO $table_cp VALUES('','$login','$mage','$empire','$mot_de_passe','$email','$race','$background','$clef')";