30-10-2007, 08:17 PM
Voilà j'ai testé les 3 requêtes dans phpMyadmin mais ya pas de problème donc je sais pas ce qui se passe.
J'ai toujours que les erreurs qui s'affichent.
Voici le code complet avec la requête ce sera peut-être plus simple.
J'ai toujours que les erreurs qui s'affichent.
Voici le code complet avec la requête ce sera peut-être plus simple.
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/>Selection 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_cp WHERE nom_seigneur='$login'";
$resultat_login= mysql_numrows(mysql_query($requete)) or die('erreur selection login'.mysql_error());
$requete="SELECT nom_mage FROM $table_cp WHERE nom_mage='$mage'";
$resultat_mage= mysql_numrows(mysql_query($requete)) or die('erreur selection mage'.mysql_error());
$requete="SELECT nom_empire FROM $table_cp WHERE nom_empire='$empire'";
$resultat_empire= mysql_numrows(mysql_query($requete)) or die('erreur selection empire'.mysql_error());
if (($resultat_login > 0) && ($resultat_mage > 0) && ($resultat_empire > 0))
{
$reponse ='<p>Tout existe</p>';
$nb_faux ++;
}
else if ($resultat_login > 0)
{
$reponse ='<p>Seigneur déja existant</p>';
$nb_faux ++;
}
else if ($resultat_mage > 0)
{
$reponse ='<p>Mage déja existant</p>';
$nb_faux ++;
}
else if ($resultat_empire > 0)
{
$reponse ='<p>Empire déja existant</p>';
$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/>Selection 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 devez encore valider votre inscription avant de jouer. Cliquez sur le lien de validation ci-dessous:<br/>
http://www.endael.ovh.org?&nom_seigneur=$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/>Selection 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 nom_seigneur='$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/> Contactez 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/>';
}
}
?>
Dark Angels