JeuWeb - Crée ton jeu par navigateur
Probléme inscription - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Probléme inscription (/showthread.php?tid=1390)

Pages : 1 2


Probléme inscription - matrix59 - 02-07-2007

bonjour a tous donc voila je rencontre un probléme avec mon system d'inscription quand je veut me inscrire il me envoye pas mon email et ne mais rien dans la bdd

donc voicie ma source php

Code PHP :
<?php      
//Identifiants de connexion à la base de données.
require("config.inc.php");

//Connexion à la base de données.
mysql_connect($host,$username,$password);
mysql_select_db($bdd_name);

//On vérifie que la variable $_POST['inscription'] existe
if (isset($_POST['inscription']))
{
//Si les variables contenant les informations obligatoires et qu'elles ne sont pas vides:
if (isset($_POST['pseudo'], $_POST['nom'], $_POST['prenom'], $_POST['mot_passe'], $_POST['mot_passe2'], $_POST['email'], $_POST['age']) && !empty($_POST['pseudo']) && !empty($_POST['nom']) && !empty($_POST['prenom']) && !empty($_POST['age']) && !empty($_POST['mot_passe']) && !empty($_POST['mot_passe2']) && !empty($_POST['email']))
{
//Si le pseudo est supérieur ou égal à 4 caractères et inférieur à 9 caractères.
if (strlen(trim($_POST['pseudo'])) >= 4 && strlen(trim($_POST['pseudo'])) < 9)
{
//Si le mot de passe est supérieur à 4 caractères.
if (strlen(trim($_POST['mot_passe'])) > 4)
{
// Si la verification du mot de passe est bonne:
if ($_POST['mot_passe'] == $_POST['mot_passe2'])
{

$pseudo = htmlspecialchars($_POST['pseudo']);
$nom = htmlspecialchars($_POST['nom']);
$prenom = htmlspecialchars($_POST['prenom']);
$age = htmlspecialchars($_POST['age']);
$mot_passe = htmlspecialchars($_POST['mot_passe']);
$email = htmlspecialchars($_POST['email']);
$lieu = htmlspecialchars($_POST['lieu']);
$systeme = htmlspecialchars($_POST['systeme']);
$debit = htmlspecialchars($_POST['debit']);

//On vérifie que le pseudo n'existe pas.
$sql = mysql_query("SELECT COUNT(*) AS nb_pseudo FROM membres WHERE pseudo='".$pseudo."'");
if (
mysql_result($sql, 0, 'nb_pseudo') == 0)
{
//Hashage du mot de passe avec md5().
$mot_passe = md5($mot_passe);

//Envoi du mail de confirmation.
$message = '
Bienvenue sur Gamers-Design '
.$pseudo.'
Vous venez de vous inscrire sur Gamers-Design.
Afin de pouvoir acceder à la partie membres, il faut que votre compte soit activé par un administrateur. Si vous trouvez que vous attendez depuis trop lontemps, merci de me contacter à mon mail.'
;

//Si le mail a été envoyé on peut enregistrer le membre
if (mail($email, 'Confirmation de l\'inscription sur Gamers-Design', $message))
{
//On éxécute la requête qui enregistre un nouveau membre.
mysql_query("INSERT INTO membres (pseudo, nom, prenom, age, mot_passe, confirmation, email, systeme, lieu, debi) VALUES ('".$pseudo."', '".$nom."', '".$prenom."', '".$age."', '".$mot_passe."', '0', '".$email."', '".$systeme."', '".$lieu."', '".$debit."')");
echo
'Message : votre compte a bien été créé ! Un e-mail vient de vous être envoyé.';

}
else
{
echo
'Erreur : echec lors de l\'envoi du mail ! veuillez vous ré-inscrire';
}
}
else
echo
'Erreur : le pseudo existe déjà !';
}
else
echo
'Votre mot de passe ne correspond pas à la vérification, désolé !';
}
else
echo
'Erreur : le mot de passe est trop court !';
}
else

echo
'Erreur : le pseudo est soit trop court, soit trop long !';
}
else
echo
'Erreur : vous avez oublié d\'entrer votre pseudo ou votre mot de passe ou votre adresse email !';
}

//Déconnection de la base de données.
mysql_close();
?>


Merci pour votre aide


RE: Probléme inscription - Zamentur - 02-07-2007

Tu pourrais tout de même indiqué ce qui s'affiche à l'écran pour nous aider...
Mais bon pour info je n'aurais pas mis le mail avant l'UPDATE car en cas de l'échec de l'update l'utilisateur croira être inscrit...

Ce que je me demande c'est si il affiche: Message : votre compte a bien été créé ! Un e-mail vient de vous être envoyé.

Car si il ne le fait pas çà veut dire que tu as une erreur sql... sinon çà veut dire théoriquement qu'elle est exécuté, en fin pour le moment j'ai pas trouvé (faut dire que j'ai codé toutes la journée...)
Mais je te conseille de mettre un mysql error derrière tes requêtes on ne sais jamais, personnellement j'ai fais une classe qui me simplifie la vie pour toutes ces requêtes


RE: Probléme inscription - matrix59 - 02-07-2007

le message qui me mais quand je me inscrie c'est sa

Erreur : echec lors de l'envoi du mail ! veuillez vous ré-inscrire


RE: Probléme inscription - Zamentur - 02-07-2007

ah bah déjà çà c'est un trucs que tu aurais pus dire lol...
Bon je ne sais pas si ta fonction mail est valide vérifie sur la doc php si c'est pas déjà fait! sinon je te conseille de regarder le phpinfo.php de ton hébergement si çà se trouve tu ne peux pas envoyer d'email...


RE: Probléme inscription - Nessper - 02-07-2007

Oui vérifie si ton hébergeur accepte la fonction mail


RE: Probléme inscription - matrix59 - 02-07-2007

voicie les info du phpinfo >>> http://gamers-design.ovh.org/phpinfo.php

et ma fonction mail et bien valide un amie la verifié mais je c'est pas voir si mon hebergeur accepte


RE: Probléme inscription - manip - 02-07-2007

Code PHP :
<?php 
echo 'Erreur : le pseudo est soit trop court, soit trop long !';

Simple remarque, mais si tu un maxlength="9" sur le champ du pseudo, ça évite déjà au joueur de mettre un pseudo avec 25000 caractères....

Puis
Code PHP :
<?php 
if (strlen(trim($_POST['pseudo'])) >= 4 && strlen(trim($_POST['pseudo'])) < 9)

Devient
Code PHP :
<?php 
if (strlen(trim($_POST['pseudo'])) >= 4)

^^


RE: Probléme inscription - Zamentur - 02-07-2007

pour le maxlength, c'est pas suffisant car c'est une protection coté client donc il faut quand même (enfin c'est mieux vérifier coté php)


RE: Probléme inscription - matrix59 - 02-07-2007

je vous remercie de cette info mais et pour l'inscription a t'il un probléme ou pas ?


RE: Probléme inscription - pascal - 03-07-2007

bon, le message correspond au else du passage:
Code PHP :
<?php 
if (mail($email, 'Confirmation de l\'inscription sur Gamers-Design', $message))
{
//On éxécute la requête qui enregistre un nouveau membre.
mysql_query("INSERT INTO membres (pseudo, nom, prenom, age, mot_passe, confirmation, email, systeme, lieu, debi) VALUES ('".$pseudo."', '".$nom."', '".$prenom."', '".$age."', '".$mot_passe."', '0', '".$email."', '".$systeme."', '".$lieu."', '".$debit."')");
echo
'Message : votre compte a bien été créé ! Un e-mail vient de vous être envoyé.';

}
else
{
echo
'Erreur : echec lors de l\'envoi du mail ! veuillez vous ré-inscrire';
}

alors ça veut dire que la condition renvoie FALSE. ça veut dire qu'il y a un problème avec le mail().

affiche les valeurs de $email et $message dans le else pour voir.

tu peux aussi faire une page toute simple avec juste un envoi de mail, afin d'être sûr de la manière d'utiliser cette fonction.

A+

Pascal