21 réponses
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 291
17 juin 2012 à 17:01
17 juin 2012 à 17:01
En voulant être désagréable, je me demande comment tu peux affirmer avoir compris le code alors que cela ne marche pas et que tu ne sais pas pourquoi?
Je ne vois pas non plus ce qui est choquant que tu ne puisses pas te logger alors qu'aucune donnée n'est présente dans la fameuse table. Ce qui paraît même plutôt logique ...
Si rien ne s'inscrit dans la table, c'est que soit tu n'as pas regardé la bonne BDD, soit les infos de connexion à celles-ci sont mauvaises, ou soit que le code n'inscrit en fait rien dans la BDD et te dit que c'est OK.
Donc, et comme on a aucun code sur ladite page, commencer par créer une page qui ne fait que faire une insertion bidon dans la BDD. Si ça fonctionne, alors il faut regarder ce qui diffère d'avec le code de la page de register.
Je ne vois pas non plus ce qui est choquant que tu ne puisses pas te logger alors qu'aucune donnée n'est présente dans la fameuse table. Ce qui paraît même plutôt logique ...
Si rien ne s'inscrit dans la table, c'est que soit tu n'as pas regardé la bonne BDD, soit les infos de connexion à celles-ci sont mauvaises, ou soit que le code n'inscrit en fait rien dans la BDD et te dit que c'est OK.
Donc, et comme on a aucun code sur ladite page, commencer par créer une page qui ne fait que faire une insertion bidon dans la BDD. Si ça fonctionne, alors il faut regarder ce qui diffère d'avec le code de la page de register.
"Je ne vois pas non plus ce qui est choquant que tu ne puisses pas te logger alors qu'aucune donnée n'est présente dans la fameuse table. Ce qui paraît même plutôt logique ... "
Oui je suis d'accord, mais quand je "m'enregistre" il me dit que c'est ok, alors que dans la BDD il n'y a aucune donnée inscrite ! Je précise qu'en entrant les données moi même via phpMyAdmin, je ne peux pas non plus me loggué :/
Merci quand même, je vais essayer de créer une page qui ne fait que enregistrer des infos dans la BDD
Oui je suis d'accord, mais quand je "m'enregistre" il me dit que c'est ok, alors que dans la BDD il n'y a aucune donnée inscrite ! Je précise qu'en entrant les données moi même via phpMyAdmin, je ne peux pas non plus me loggué :/
Merci quand même, je vais essayer de créer une page qui ne fait que enregistrer des infos dans la BDD
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
18 juin 2012 à 13:16
18 juin 2012 à 13:16
très difficile, voir impossible de t'aider si tu ne nous mets pas:
- le code du formulaire inscription ( au pire on peut le trouver dans le code source de ta page)
- le code de registrer.php
- le code du formulaire inscription ( au pire on peut le trouver dans le code source de ta page)
- le code de registrer.php
vordano
Messages postés
1682
Date d'inscription
mardi 12 juillet 2011
Statut
Membre
Dernière intervention
20 juillet 2012
316
18 juin 2012 à 13:25
18 juin 2012 à 13:25
a priori si tu ne peux ni enregistrer tes infos, ni les récupérer en les ajoutant à la main, tu as un problème de connexion à ta bdd (vérifi les infos de connexion dans ton register & co)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je vais poster le register.php , merci :)
Merci beaucoup d'avance
PS: la page appelée au début, identifiants.php, se charge de se connecter à la BDD
<?php session_start(); $titre="Enregistrement"; include("identifiants.php"); include("debut.php"); include("menu.php"); echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> Enregistrement'; if ($id!=0) erreur(ERR_IS_CO); ?> <?php if (empty($_POST['pseudo'])) // Si on la variable est vide, on peut considérer qu'on est sur la page de formulaire { echo '<h1>Inscription 1/2</h1>'; echo '<form method="post" action="register.php" enctype="multipart/form-data"> <fieldset><legend>Identifiants</legend> <label for="pseudo">* Pseudo :</label> <input name="pseudo" type="text" id="pseudo" /> (le pseudo doit contenir entre 3 et 15 caractères)<br /> <label for="password">* Mot de Passe :</label><input type="password" name="password" id="password" /><br /> <label for="confirm">* Confirmer le mot de passe :</label><input type="password" name="confirm" id="confirm" /> </fieldset> <fieldset><legend>Contacts</legend> <label for="email">* Votre adresse Mail :</label><input type="text" name="email" id="email" /><br /> </fieldset> <fieldset><legend>Informations supplémentaires</legend> <label for="localisation">Localisation :</label><input type="text" name="localisation" id="localisation" /> </fieldset> <fieldset><legend>Profil sur le forum</legend> <label for="avatar">Choisissez votre avatar :</label><input type="file" name="avatar" id="avatar" />(Taille max : 10Ko<br /> <label for="signature">Signature :</label><textarea cols="40" rows="4" name="signature" id="signature">La signature est limitée à 200 caractères</textarea> </fieldset> <label>Se souvenir de moi ?</label><input type="checkbox" name="souvenir" /><br /> <p>Les champs précédés d un * sont obligatoires</p> <p><input type="submit" value="S\'inscrire" /></p></form> </div> </body> </html>'; } //Fin de la partie formulaire ?> <?php //On récupère les variables $i = 0; $temps = time(); $pseudo=$_POST['pseudo']; $signature = $_POST['signature']; $email = $_POST['email']; $msn = $_POST['msn']; $website = $_POST['website']; $localisation = $_POST['localisation']; $pass = md5($_POST['password']); $confirm = md5($_POST['confirm']); //Vérification du pseudo $query=$db->prepare('SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_pseudo =:pseudo'); $query->bindValue(':pseudo',$pseudo, PDO::PARAM_STR); $query->execute(); $pseudo_free=($query->fetchColumn()==0)?1:0; $query->CloseCursor(); if(!$pseudo_free) { $pseudo_erreur1 = "Votre pseudo est déjà utilisé par un membre"; $i++; } if (strlen($pseudo) < 3 || strlen($pseudo) > 20) { $pseudo_erreur2 = "Votre pseudo est soit trop grand, soit trop petit"; $i++; } //Vérification du mdp if ($pass != $confirm || empty($confirm) || empty($pass)) { $mdp_erreur = "Votre mot de passe et votre confirmation diffèrent, ou sont vides"; $i++; } ?> <?php $query=$db->prepare('SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_pseudo =:pseudo'); $query->bindValue(':pseudo',$pseudo, PDO::PARAM_STR); $query->execute(); $pseudo_free=($query->fetchColumn()==0)?1:0; ?> <?php //Vérification de l'adresse email //Il faut que l'adresse email n'ait jamais été utilisée $query=$db->prepare('SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_email =:mail'); $query->bindValue(':mail',$email, PDO::PARAM_STR); $query->execute(); $mail_free=($query->fetchColumn()==0)?1:0; $query->CloseCursor(); if(!$mail_free) { $email_erreur1 = "Votre adresse email est déjà utilisée par un membre"; $i++; } //On vérifie la forme maintenant if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email)) { $email_erreur2 = "Votre adresse E-Mail n'a pas un format valide"; $i++; } //Vérification de l'adresse MSN if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $msn) && !empty($msn)) { $msn_erreur = "Votre adresse MSN n'a pas un format valide"; $i++; } //Vérification de la signature if (strlen($signature) > 200) { $signature_erreur = "Votre signature est trop longue"; $i++; } ?> <?php //Vérification de l'avatar : if (!empty($_FILES['avatar']['size'])) { //On définit les variables : $maxsize = 10024; //Poid de l'image $maxwidth = 100; //Largeur de l'image $maxheight = 100; //Longueur de l'image $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides if ($_FILES['avatar']['error'] > 0) { $avatar_erreur = "Erreur lors du transfert de l'avatar : "; } if ($_FILES['avatar']['size'] > $maxsize) { $i++; $avatar_erreur1 = "Le fichier est trop gros : (<strong>".$_FILES['avatar']['size']." Octets</strong> contre <strong>".$maxsize." Octets</strong>)"; } $image_sizes = getimagesize($_FILES['avatar']['tmp_name']); if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight) { $i++; $avatar_erreur2 = "Image trop large ou trop longue : (<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> contre <strong>".$maxwidth."x".$maxheight."</strong>)"; } $extension_upload = strtolower(substr( strrchr($_FILES['avatar']['name'], '.') ,1)); if (!in_array($extension_upload,$extensions_valides) ) { $i++; $avatar_erreur3 = "Extension de l'avatar incorrecte"; } } ?> <?php if ($i==0) { echo'<h1>Inscription terminée</h1>'; echo'<p>Bienvenue '.stripslashes(htmlspecialchars($_POST['pseudo'])).' vous êtes maintenant inscrit sur le forum</p> <p>Cliquez <a href="./index.php">ici</a> pour revenir à la page d accueil</p>'; //La ligne suivante sera commentée plus bas $nomavatar=(!empty($_FILES['avatar']['size']))?move_avatar($_FILES['avatar']):''; $query=$db->prepare('INSERT INTO forum_membres (membre_pseudo, membre_mdp, membre_email, membre_msn, membre_siteweb, membre_avatar, membre_signature, membre_localisation, membre_inscrit, membre_derniere_visite) VALUES (:pseudo, :pass, :email, :msn, :website, :nomavatar, :signature, :localisation, :temps, :temps)'); $query->bindValue(':pseudo', $pseudo, PDO::PARAM_STR); $query->bindValue(':pass', $pass, PDO::PARAM_INT); $query->bindValue(':email', $email, PDO::PARAM_STR); $query->bindValue(':msn', $msn, PDO::PARAM_STR); $query->bindValue(':website', $website, PDO::PARAM_STR); $query->bindValue(':nomavatar', $nomavatar, PDO::PARAM_STR); $query->bindValue(':signature', $signature, PDO::PARAM_STR); $query->bindValue(':localisation', $localisation, PDO::PARAM_STR); $query->bindValue(':temps', $temps, PDO::PARAM_INT); $query->execute(); //Et on définit les variables de sessions $_SESSION['pseudo'] = $pseudo; $_SESSION['id'] = $db->lastInsertId(); ; $_SESSION['level'] = 2; $query->CloseCursor(); } else { echo'<h1>Inscription interrompue</h1>'; echo'<p>Une ou plusieurs erreurs se sont produites pendant l incription</p>'; echo'<p>'.$i.' erreur(s)</p>'; echo'<p>'.$pseudo_erreur1.'</p>'; echo'<p>'.$pseudo_erreur2.'</p>'; echo'<p>'.$mdp_erreur.'</p>'; echo'<p>'.$email_erreur1.'</p>'; echo'<p>'.$email_erreur2.'</p>'; echo'<p>'.$msn_erreur.'</p>'; echo'<p>'.$signature_erreur.'</p>'; echo'<p>'.$avatar_erreur.'</p>'; echo'<p>'.$avatar_erreur1.'</p>'; echo'<p>'.$avatar_erreur2.'</p>'; echo'<p>'.$avatar_erreur3.'</p>'; echo'<p>Cliquez <a href="./register.php">ici</a> pour recommencer</p>'; } ?> </div> </body> </html>
Merci beaucoup d'avance
PS: la page appelée au début, identifiants.php, se charge de se connecter à la BDD
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
19 juin 2012 à 09:38
19 juin 2012 à 09:38
plusieurs choses:
- tu mets echo'<p>Bienvenue '.stripslashes(htmlspecialchars($_POST['pseudo'])).' vous êtes maintenant inscrit sur le forum</p> avant d'avoir fait l'insertion dans la BDD, il serait plus logique de tester que l'INSERT ait bien fonction pour afficher cet echo
- $query->bindValue(':pass', $pass, PDO::PARAM_INT);
est tu sur que le mot de pass est un entier ? (md5 est une suite de chiffres et de lettres et caracteres spéciaux)
- la page appelée au début, identifiants.php, se charge de se connecter à la BDD y a il une erreur si connexion pas effective ?
- tu mets echo'<p>Bienvenue '.stripslashes(htmlspecialchars($_POST['pseudo'])).' vous êtes maintenant inscrit sur le forum</p> avant d'avoir fait l'insertion dans la BDD, il serait plus logique de tester que l'INSERT ait bien fonction pour afficher cet echo
- $query->bindValue(':pass', $pass, PDO::PARAM_INT);
est tu sur que le mot de pass est un entier ? (md5 est une suite de chiffres et de lettres et caracteres spéciaux)
- la page appelée au début, identifiants.php, se charge de se connecter à la BDD y a il une erreur si connexion pas effective ?
Alain, d'abord je te remercie, tu as l'air de pouvoir m'aider, comme dis plus haut, je débute vraiment en MySQL, et je comprend ce que tu veux dire, mais pourrais tu m'expliquer comment afficher une erreur au cas ou la connexion ne serait pas effective, comme ça je ferais une page bidon et je pourrais voir si le problème vient de la. :)
Merci beaucoup en tout cas !
Merci beaucoup en tout cas !
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
19 juin 2012 à 13:11
19 juin 2012 à 13:11
donnes nous le code du fichier identifiants.php
en occultant les codes de connexion bien sur
en occultant les codes de connexion bien sur
<?php
try
{
$db = new PDO('mysql:host=localhost;dbname=*******', '*****', '*****');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>
En espérant que vous trouverez une solution, merci d'avance :)
try
{
$db = new PDO('mysql:host=localhost;dbname=*******', '*****', '*****');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>
En espérant que vous trouverez une solution, merci d'avance :)
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
19 juin 2012 à 19:10
19 juin 2012 à 19:10
je n'utilise pas et ne connait pas PDO ( à tort peut être) mais si j'ai bien compris par défaut les erreur SQL ne sont pas affichées par PDO
vas voir sur ce site du zero justement comment les faire afficher, tu saura ainsi si tu est bien connecté à la BDD:
http://www.siteduzero.com/tutoriel-3-336595-pdo-comprendre-et-corriger-les-erreurs-les-plus-frequentes.html
et ce qui me surprend un peu aussi c'est que chez un hébergeur tu ait host=localhost
quels sont les paramètres d'accès à la BDD que t'a donné ton hébergeur
vas voir sur ce site du zero justement comment les faire afficher, tu saura ainsi si tu est bien connecté à la BDD:
http://www.siteduzero.com/tutoriel-3-336595-pdo-comprendre-et-corriger-les-erreurs-les-plus-frequentes.html
et ce qui me surprend un peu aussi c'est que chez un hébergeur tu ait host=localhost
quels sont les paramètres d'accès à la BDD que t'a donné ton hébergeur
Tu ne connais pas le PDO ? (moi non plus x) ) mais si tu connais autre chose qui au final donne le même résultat je suis preneur hein ;)
Je vais allez jeter un coup d'oeuil au SDZ.
Mon hébergeur ne me donne pas de paramêtre d'accès, j'ai trouvé ça étonnant aussi c'est Cpannel, ou alors je ne sais pas ou regarder (probable aussi ).
EDIT : le lien que tu m'a donné, tu aurais pu me le donner en chinois je n'aurais pas compris beaucoup plus ! LOL, bref je sens que je vais pas trouver de solutions...
Je vais allez jeter un coup d'oeuil au SDZ.
Mon hébergeur ne me donne pas de paramêtre d'accès, j'ai trouvé ça étonnant aussi c'est Cpannel, ou alors je ne sais pas ou regarder (probable aussi ).
EDIT : le lien que tu m'a donné, tu aurais pu me le donner en chinois je n'aurais pas compris beaucoup plus ! LOL, bref je sens que je vais pas trouver de solutions...
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
Modifié par Alain_42 le 19/06/2012 à 20:47
Modifié par Alain_42 le 19/06/2012 à 20:47
disposant d'une réelle BDD en ligne
donc tu as du avoir les codes de connexion à la BDD serveur (ou host) login, mot de pass
avec la methode plus "classique " que je maitrise:
dans ton fichier identifiants.php mets:
et vois les messages d'erreur ou OK qu'il renvoie
donc tu as du avoir les codes de connexion à la BDD serveur (ou host) login, mot de pass
avec la methode plus "classique " que je maitrise:
dans ton fichier identifiants.php mets:
<?php //parametres de connexion BDD que tu dois modifier pour qu'ils correspondent à ceux donnés par hebergeur ?? $host="localhost"; $login="root"; $passw="...."; $db_name="myBDD"; $cnx=mysql_connect($host,$login,$passw) or die ("Pb connexion serveur ".mysql_error()); if($cnx) {echo "connexion serveur OK";} $db=mysql_select_db($db_name) or die ("Pb selection base ".mysql_error()); if($db){echo " Selection base OK";} ?>
et vois les messages d'erreur ou OK qu'il renvoie
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
19 juin 2012 à 21:36
19 juin 2012 à 21:36
quand tu te connectes avec phpmyadmin a cette BDD tu as bien des codes ? alors mets ceux la
Eh eh justement non, je me connecte à un compte a part (dedizone) qui me propose un lien direct vers mon hébergeur, qui me propose un lien direct vers phpmyadmin... Les identifiants rentrés sur la BDD correspondent a je ne sais plus quoi d'ailleurs, mais il me semble que ce sont les bons, enfin j'en n'en suis pas sur quoi, en y réfléchissant le problème vient peut être seulement de ça...
Il faut donc que je trouve le moyen d'obtenir ces codes !
Il faut donc que je trouve le moyen d'obtenir ces codes !
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
19 juin 2012 à 22:44
19 juin 2012 à 22:44
le problème vient surement de tes codes, que donne les erreurs ou messages suite au code donné dans identifiants.php
J'ai finalement réussi à récuperer mes codes d'accès auprès de l'hebergeur, et ton code ne m'affiche plus que des OK (déjà ça ça fait plaisir à voir :) )
Maintenant, ça ne regle pas totalement mon problème car au moment de l'inscription une erreur apparait : Fatal error: Call to a member function prepare() on a non-object
Ce qu'il y a et je pense que ça vient de la c'est que mon fichier functions.php est presque vide !
Merci
Maintenant, ça ne regle pas totalement mon problème car au moment de l'inscription une erreur apparait : Fatal error: Call to a member function prepare() on a non-object
Ce qu'il y a et je pense que ça vient de la c'est que mon fichier functions.php est presque vide !
Merci
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
Modifié par Alain_42 le 20/06/2012 à 20:53
Modifié par Alain_42 le 20/06/2012 à 20:53
ha super, alors si tu veux tout à l'heure si j'ai un peu de temps je te ferait l'enr BDD avec la methode "classique"
mais en attendant tu peux essayer en remettant le code d'origine dans identifiants.php et avec les bosn codes de connexion bien sur.
mais en attendant tu peux essayer en remettant le code d'origine dans identifiants.php et avec les bosn codes de connexion bien sur.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
20 juin 2012 à 21:49
20 juin 2012 à 21:49
je n'ai pas testé il peut subsister des erreurs, il faut aussi que tu complètes.
la méthode est différente
la méthode est différente
<?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Inscription</title> <style type="text/css"> /* class message d'erreur */ .msg_err { color:red; } </style> </head> <body> <?php $titre="Enregistrement"; include("identifiants.php"); include("debut.php"); include("menu.php"); echo '<p><i>Vous êtes ici</i> : <a href="./index.php">Index du forum</a> --> Enregistrement'; //if ($id!=0) erreur(ERR_IS_CO); //int variables de travail $sasies_ok = true; $affich_formulaire=true; //// partie traitement des données reçues du formulaire, on la met avant le formulaire, ainsi on peut réafficher les valeurs déja saisie et afficher les messages en cas d'erreur /// //init des variables a vide $pseudo=""; $signature = ""; $email = ""; $msn =""; $website = ""; $localisation = ""; $pass = ""; $confirm =""; $souvenir=""; $message_alert=""; $pseudo_erreur1=""; $pseudo_erreur2=""; $mdp_erreur=""; $email_erreur1=""; $email_erreur2=""; $signature_erreur=""; $avatar_erreur=""; $avatar_erreur1=""; $avatar_erreur2=""; $avatar_erreur3=""; //au premier affichage du formulaire les input correspondants seront vides //lorsqu'elle seront reçues du formulaire elles prendront la valeur saisie par utilisateur //en cas d'erreur cela lui évitera de tout ressaisir if(isset($_POST[''])){ //On récupère les variables //$i = 0; $temps = time(); $pseudo=$_POST['pseudo']; $signature = $_POST['signature']; $email = $_POST['email']; $msn = $_POST['msn']; $website = $_POST['website']; $localisation = $_POST['localisation']; $pass = md5($_POST['password']); $confirm = md5($_POST['confirm']); $souvenir= $_POST['souvenir']; //Vérification du pseudo $query="SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_pseudo ='".$pseudo."'"; $req_count=mysql_query($query) or die ("Pb avec la req count ".mysql_error()); $row=mysql_fetch_assoc($req_count); $pseudo_free=($row['nbr']>0) ? false: true; if(!$pseudo_free) { $pseudo_erreur1 = "Votre pseudo est déjà utilisé par un membre"; $sasies_ok=false; } if (strlen($pseudo) < 3 || strlen($pseudo) > 20) { $pseudo_erreur2 = "Votre pseudo est soit trop grand, soit trop petit"; $sasies_ok=false; } //Vérification du mdp if ($pass != $confirm || empty($confirm) || empty($pass)) { $mdp_erreur = "Votre mot de passe et votre confirmation diffèrent, ou sont vides"; $sasies_ok=false; } //Vérification de l'adresse email //Il faut que l'adresse email n'ait jamais été utilisée $query="SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_email ='".$mail."'"; $req_mail=mysql_query($query) or die ("Pb req mail ".mysql_error()); $row=mysql_fetch_assoc($req_mail); $mail_free=($row['nbr']>0) ? false: true; if(!$mail_free) { $email_erreur1 = "Votre adresse email est déjà utilisée par un membre"; $sasies_ok=false; } //On vérifie la forme maintenant if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email)) { $email_erreur2 = "Votre adresse E-Mail n'a pas un format valide"; $sasies_ok=false; } //Vérification de l'adresse MSN if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $msn) && !empty($msn)) { $msn_erreur = "Votre adresse MSN n'a pas un format valide"; $sasies_ok=false; } //Vérification de la signature if (strlen($signature) > 200) { $signature_erreur = "Votre signature est trop longue"; $sasies_ok=false; } //Vérification de l'avatar : if (!empty($_FILES['avatar']['size'])) { //On définit les variables : $maxsize = 10024; //Poid de l'image $maxwidth = 100; //Largeur de l'image $maxheight = 100; //Longueur de l'image $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides if ($_FILES['avatar']['error'] > 0) { $avatar_erreur = "Erreur lors du transfert de l'avatar : "; $sasies_ok=false; } if ($_FILES['avatar']['size'] > $maxsize) { $sasies_ok=false; $avatar_erreur1 = "Le fichier est trop gros : (<strong>".$_FILES['avatar']['size']." Octets</strong> contre <strong>".$maxsize." Octets</strong>)"; } $image_sizes = getimagesize($_FILES['avatar']['tmp_name']); if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight) { $sasies_ok=false; $avatar_erreur2 = "Image trop large ou trop longue : (<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> contre <strong>".$maxwidth."x".$maxheight."</strong>)"; } $extension_upload = strtolower(substr( strrchr($_FILES['avatar']['name'], '.') ,1)); if (!in_array($extension_upload,$extensions_valides) ) { $sasies_ok=false; $avatar_erreur3 = "Extension de l'avatar incorrecte"; } } if ($sasies_ok==true) { $nomavatar=(!empty($_FILES['avatar']['size']))?move_avatar($_FILES['avatar']):''; //texte de la requette $query="INSERT INTO forum_membres (membre_pseudo, membre_mdp, membre_email, membre_msn, membre_siteweb, membre_avatar, membre_signature, membre_localisation, membre_inscrit, membre_derniere_visite) VALUES ('".$pseudo."','".$pass."','".$email."','".$msn."','".$website."','".$nomavatar."','".$signature."','".$localisation."','".$temps."','".$temps."'"; //soumission de la requette $requette_insert=mysql_query($query) or die ("Pb avec l'insertion ".mysql_error()); if($requette_insert){ //c'est seulement quand la requette d'insertion a réussi // qu'on définit les variables de sessions $_SESSION['pseudo'] = $pseudo; $_SESSION['id'] = mysql_insert_id(); $_SESSION['level'] = 2; //on ne réaffiche pas le formulaire $affich_formulaire=false; //et met le message echo'<h1>Inscription terminée</h1>'; echo'<p>Bienvenue '.stripslashes(htmlspecialchars($_POST['pseudo'])).' vous êtes maintenant inscrit sur le forum</p> <p>Cliquez <a href="./index.php">ici</a> pour revenir à la page d accueil</p>'; }else{ echo'<h1>Votre inscription a échoué suit à un problème avec la base de données</h1>'; } } else { $message_alert = 'Inscription interrompue'; } mysql_close(); } if($affich_formulaire==true){ ?> <h1>Inscription 1/2</h1> <?php // messages alert pb saisies if($message_alert != ""){ echo '<span class="msg_err">'.$message_alert.'</span><br />';} ?> <form method="post" action="register.php" enctype="multipart/form-data"> <fieldset><legend>Identifiants</legend> <label for="pseudo">* Pseudo :</label> <input name="pseudo" type="text" id="pseudo" value="<?php echo $pseudo;?>" /> (le pseudo doit contenir entre 3 et 15 caractères)<br /> <?php // messages d'erreur pseudo if($pseudo_erreur1 != ""){ echo '<span class="msg_err">'.$pseudo_erreur1.'</span><br />';} if($pseudo_erreur2 != "") { echo '<span class="msg_err">'.$pseudo_erreur1.'</span><br />';} //tu fais pareil pour les autres ?> <label for="password">* Mot de Passe :</label> <input type="password" name="password" id="password" value="<?php echo $pass;?>" /><br /> <label for="confirm">* Confirmer le mot de passe :</label> <input type="password" name="confirm" id="confirm" value="<?php echo $confirm;?>" /> </fieldset> <fieldset><legend>Contacts</legend> <label for="email">* Votre adresse Mail :</label> <input type="text" name="email" id="email" value="<?php echo ?>" /><br /> </fieldset> <fieldset><legend>Informations supplémentaires</legend> <label for="localisation">Localisation :</label> <input type="text" name="localisation" id="localisation" value="<?php echo $localisation ?>" /> </fieldset> <fieldset><legend>Profil sur le forum</legend> <label for="avatar">Choisissez votre avatar :</label> <input type="file" name="avatar" id="avatar" />(Taille max : 10Ko<br /> <label for="signature">Signature :</label> <textarea cols="40" rows="4" name="signature" id="signature">La signature est limitée à 200 caractères</textarea> </fieldset> <label>Se souvenir de moi ?</label> <input type="checkbox" name="souvenir" value="oui" <?php if($souvenir == "oui"){echo 'checked="checked"';} ?>/><br /> <p>Les champs précédés d un * sont obligatoires</p> <p><input type="submit" name="s_inscrire" value="S'inscrire" /></p> </form> <?php } //fin if affich formulaire ?> </div> </body> </html>
Merci pour ton code, et surtout merci de l'avoir tant commenté :)
Je vais encore profiter de toi car le site me dit "Parse error: syntax error, unexpected ';' in /home/minecra4/public_html/register.php on line 229" je pense que ça voulais dire que tu avais oublié un point virgule à la ligne 229, mais je ne vois pas trop ou il faut en rajouter pour le coup... Je me sens très con !
Je vais encore profiter de toi car le site me dit "Parse error: syntax error, unexpected ';' in /home/minecra4/public_html/register.php on line 229" je pense que ça voulais dire que tu avais oublié un point virgule à la ligne 229, mais je ne vois pas trop ou il faut en rajouter pour le coup... Je me sens très con !
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
21 juin 2012 à 10:45
21 juin 2012 à 10:45
il manque même la variable après echo
je viens aussi de voir ligne 69 suprimer cette ligne
et ligne 100 c'est $email au lieu de $mail
Tu devrais t'inscrire sur le site c'est gratuit et sans soucis.
<input type="text" name="email" id="email" value="<?php echo $email; ?>" /><br />
je viens aussi de voir ligne 69 suprimer cette ligne
et ligne 100 c'est $email au lieu de $mail
$query="SELECT COUNT(*) AS nbr FROM forum_membres WHERE membre_email ='".$email."'";
Tu devrais t'inscrire sur le site c'est gratuit et sans soucis.
Je vais m'enregistrer tout de suite, tu as raison !
J'ai remarqué qu'à la ligne 26 et à la 59, il y a des commentaires ressemblant fortement à du code, est ce fait exprès ou je peux les transformer en code ?
Et aussi, je ne comprend pas ce qui se passe, mais il ne se passe rien quand je clique sur s'inscrire, le formulaire ne remet à zéro en fait !
Tu peux tester si tu veux, http://minecraft-35000.craft-web.com/register.php
Ne t'inquiètes pas, utilise le pseudo Alain_42 + un mot de passe bison, et je supprimerais tes informations si elle s'inscrivent, ce qui n'est pour l'instant pas le cas lol.
Et je ne te le dirais jamais assez, mais merci pour tout ce que tu fais !
J'ai remarqué qu'à la ligne 26 et à la 59, il y a des commentaires ressemblant fortement à du code, est ce fait exprès ou je peux les transformer en code ?
Et aussi, je ne comprend pas ce qui se passe, mais il ne se passe rien quand je clique sur s'inscrire, le formulaire ne remet à zéro en fait !
Tu peux tester si tu veux, http://minecraft-35000.craft-web.com/register.php
Ne t'inquiètes pas, utilise le pseudo Alain_42 + un mot de passe bison, et je supprimerais tes informations si elle s'inscrivent, ce qui n'est pour l'instant pas le cas lol.
Et je ne te le dirais jamais assez, mais merci pour tout ce que tu fais !