Bonjour a vous,
Voila dans la programmation de mon jeu pour des raisons de simplicité j'ai décidé de mettre l'inscription dans une fonction. Après avoir longuement programmé et commenté cette fonction je rencontre des problèmes techniques. Le premier argument de la fonction ne passe pas.
Afin de vérifié si c'était le premier argument ou la variable qui n'allait pas j'ai donc inversé le premier argument avec l'un des autres. Le problème vient de la variable proprement dit. J'ai essayé de la nommer autrement il n'y a pas moyen que cette variable soit traitée comme il se doit.
Bon assez de discours. Je vous offre le morceau de code en question :
Sur le return j'ai concaténé avec le message de retour les trois arguments pour vérifier leurs récupération. Le mot de passe et l'adresse mail est bien récupérée dans tous les cas.
Bien entendu et vu l'ordre de traitement la fonction n'est pas traitée car d'après la fonction le pseudo est manquant.
Voici la partie qui appel la fonction :
Voila dans la programmation de mon jeu pour des raisons de simplicité j'ai décidé de mettre l'inscription dans une fonction. Après avoir longuement programmé et commenté cette fonction je rencontre des problèmes techniques. Le premier argument de la fonction ne passe pas.
Afin de vérifié si c'était le premier argument ou la variable qui n'allait pas j'ai donc inversé le premier argument avec l'un des autres. Le problème vient de la variable proprement dit. J'ai essayé de la nommer autrement il n'y a pas moyen que cette variable soit traitée comme il se doit.
Bon assez de discours. Je vous offre le morceau de code en question :
<?php
function inscription($pseudo,$motdepasse,$mail) {
// On vérifie la présence du pseudo et que le pseudo fait bien minimum 4 caractères
if ( !empty($pseudo) AND $pseudo =! 'Pseudo' AND strlen($pseudo) >= 4 ) {
// On vérifie que le pseudo ne comporte pas de caractère spéciaux
if ( preg_match("/^[\w\s,\.]+$/i", $pseudo) ) {
// Chargement de la base de donnée avec le pseudo
$preparation_existe = sprintf("SELECT * FROM `Membres` WHERE `Pseudo` = '%s'",
mysql_real_escape_string($pseudo));
$recherche_existe = @mysql_query($preparation_existe);
$num_existe = @mysql_num_rows($recherche_existe);
// On vérifie que le pseudo est disponible
if ( $num_existe == 0 ) {
// On vérifie la présence d'un mot de passe contenant au minimum 4 caractères
if ( !empty($motdepasse) AND $motdepasse =! 'Mot de passe' AND strlen($motdepasse) >= 4 ) {
// On vérifie la conformité du mot de passe
if ( preg_match("/^[\w\s,\.]+$/i", $motdepasse) ) {
// On vérifie la présence d'une adresse mail
if ( !empty($mail) AND $mail =! 'Adresse mail' ) {
// On vérifie la conformité de l'adresse mail
if ( preg_match("/^[\w\.-]+@[\w\.-]+\.[a-z]{2,3}$/i", $mail) ) {
// Chargment de la base de données avec l'adresse mail
$preparation_existe = sprintf("SELECT * FROM `Membres` WHERE `AdresseMail` = '%s'",
mysql_real_escape_string($mail));
$recherche_existe = @mysql_query($preparation_existe);
$num_existe = @mysql_num_rows($recherche_existe);
// On vérifie que l'adresse mail n'est pas déja utilisé pour un autre compte
if ( $num_existe == 0 ) {
$print_ajout = sprintf("INSERT INTO `Membres` (`Pseudo`,`MotDePasse`,`AdresseMail`,`DateInscription`) VALUES ('%s','%s','%s','%s')",
mysql_real_escape_string($pseudo),
mysql_real_escape_string(sha1($motdepasse)),
mysql_real_escape_string($mail),
mysql_real_escape_string(time()));
if ( $ajout = @mysql_query($print_ajout) ) {
$return = '1';
}
else {
$return = '<div class="erreur">L\'enregistrement à échoué.</div>';
}
}
else {
$return = '<div class="erreur">Cette adresse mail éxiste déja.</div>';
}
}
else {
$return = '<div class="erreur">Cette adresse mail n\'est pas valide.</div>';
}
}
else {
$return = '<div class="erreur">Vous devez renseigner une adresse mail correcte.</div>';
}
}
else {
$return = '<div class="erreur">Ce mot de passe n\'est pas valide.</div>';
}
}
else {
$return = '<div class="erreur">Vous devez renseigner un mot de passe contenant 4 caractères au minimum.</div>';
}
}
else {
$return = '<div class="erreur">Ce pseudo est déja utilisé.</div>';
}
}
else {
$return = '<div class="erreur">Ce pseudo n\'est pas valide.</div>';
}
}
else {
$return = '<div class="erreur">Vous devez renseigner un pseudo contenant 4 caractères au minimum.</div>';
}
return $return . ' ' . $pseudo . ' / ' . $motdepasse . ' / ' . $mail;
}
?>
Sur le return j'ai concaténé avec le message de retour les trois arguments pour vérifier leurs récupération. Le mot de passe et l'adresse mail est bien récupérée dans tous les cas.
Bien entendu et vu l'ordre de traitement la fonction n'est pas traitée car d'après la fonction le pseudo est manquant.
Voici la partie qui appel la fonction :
inscription('Pseudo',$_POST['motdepasse'],$_POST['mail']);
Comme vous le constatez le premier argument est directement sur l'appel de la fonction car j'avais peur que ce soit le champs pseudo qui ne soit pas envoyé. Aucun changement constaté.