Erreur pseudo/password/email inconnue ..
Résolu/Fermé
Legrandfifou
Messages postés
109
Date d'inscription
samedi 3 mai 2014
Statut
Membre
Dernière intervention
17 mars 2017
-
Modifié par jordane45 le 30/07/2015 à 17:42
Legrandfifou Messages postés 109 Date d'inscription samedi 3 mai 2014 Statut Membre Dernière intervention 17 mars 2017 - 2 août 2015 à 00:26
Legrandfifou Messages postés 109 Date d'inscription samedi 3 mai 2014 Statut Membre Dernière intervention 17 mars 2017 - 2 août 2015 à 00:26
A voir également:
- Erreur pseudo/password/email inconnue ..
- Erreur 0x80070643 - Accueil - Windows
- Comment creer un compte email - Guide
- Pseudo facebook - Guide
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Winrar password unlocker - Télécharger - Récupération de données
3 réponses
jordane45
Messages postés
38354
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 décembre 2024
4 719
Modifié par jordane45 le 1/08/2015 à 13:51
Modifié par jordane45 le 1/08/2015 à 13:51
Essayes ça :
Edit : Code corrigé
Cordialement,
Jordane
$pass_hache = sha1($password); $sql = "INSERT INTO membres(pseudo, password, email, birthday, country, lvl, groupe) VALUES(:pseudo, :pass_hache, :email, :birthday, :country , :level, '1')"; $params = array( ':pseudo' => $pseudo , ':pass_hache' => $pass_hache , ':email' => $email , ':birthday' => $birthday , ':country' => $country , ':level' => $level ); $query = array($sql,$params); // pour le debug try { $req = $bdd->prepare($sql); $req->execute($params); $new_id = $bdd->lastInsertId(); echo "Insertion faite ! id :".$new_id ; } catch(Exception $e) { echo "<pre><br>".$e->getMessage()."<br>"; print_r($query); echo "</pre>"; }
Edit : Code corrigé
Cordialement,
Jordane
Utilisateur anonyme
30 juil. 2015 à 17:30
30 juil. 2015 à 17:30
Alors déjà, il faut enlever lma ligne $bdd, car là tout le monde a accès à votre Base de donnée, vu qu'on à l'host, le username et password.
Sinon qu'elle est l'erreur exact, il doit bien afficher un message en disant la ligne.
Sinon qu'elle est l'erreur exact, il doit bien afficher un message en disant la ligne.
Legrandfifou
Messages postés
109
Date d'inscription
samedi 3 mai 2014
Statut
Membre
Dernière intervention
17 mars 2017
5
30 juil. 2015 à 17:47
30 juil. 2015 à 17:47
OOOuf oui , oups erreur de ma part pour la ligne BDD , je sais pas pourquoi j'y ai pas pensé .
Il n'y a pas d'erreur PHP mais lorsque j'essaye de m'inscrire sur le site https://www.hostinger.com/free-eol?utm_source=fri&utm_medium=www&utm_campaign=free_eol
Et que je remplis les 3 premiers champs , il m'indique que les champs sont vide et ne veut rien placer dans la base de données alors qu'il y a bien des données :/
Il n'y a pas d'erreur PHP mais lorsque j'essaye de m'inscrire sur le site https://www.hostinger.com/free-eol?utm_source=fri&utm_medium=www&utm_campaign=free_eol
Et que je remplis les 3 premiers champs , il m'indique que les champs sont vide et ne veut rien placer dans la base de données alors qu'il y a bien des données :/
jordane45
Messages postés
38354
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 décembre 2024
4 719
Modifié par jordane45 le 30/07/2015 à 18:18
Modifié par jordane45 le 30/07/2015 à 18:18
Bonjour,
Voici déjà une partie de ton code corrigé et "amélioré"
Au passage ... pour tes "level" plutot que d'écrire manuellement tes 150 lignes.... tu aurais pu faire une simple boucle en php ..
Dernier point .. tu as DEUX balises
alors qu'une seule est nécessaire.... pour qu'elle englobe l'ensemble des champs que tu souhaites récupérer via ton submit.
Cordialement,
Jordane
Voici déjà une partie de ton code corrigé et "amélioré"
<?php //connexion à la BDD $host = "mysql.hostinger.fr"; $dbName = "bdd"; $user = 'user'; $password = 'password'; try{ $bdd = new PDO ('mysql:host='.$host.';dbname='.$dbName, $user, $password); }catch (PDOException $e) { echo "<br>".$e."<br>"; printf("%s:%d %s (%d) [%s]\n", $e->getFile(), $e->getLine(), $e->getMessage(), $e->getCode(), get_class($e)); } /** * Fonction pour faire les requêtes de type SELECT */ function querySelect($sql,$params=null){ global $bdd; // variable bdd de ta connexion $query=array("sql"=>$sql,"params"=>$params); // pour le debug en cas de pb try{ $prepare = $bdd->prepare($sql); $prepare->execute($a_data); //retourne le resultat sous forme d'array return $prepare->fetchAll(); }catch(Exception $e) { echo "<pre><br>".$e->getMessage()."<br>"; print_r($query); echo "</pre>"; } } //Récupération "PROPRE" des variables // AVANT de les utiliser ! $pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo'] : NULL; $password = !empty($_POST['password']) ? $_POST['password'] : NULL; $email = !empty($_POST['email']) ? $_POST['email'] : NULL; $birthday = !empty($_POST['bday']) ? $_POST['bday'] : NULL; $country = !empty($_POST['email']) ? $_POST['email'] : NULL; $email = !empty($_POST['pays']) ? $_POST['pays'] : NULL; $level = !empty($_POST['lvl']) ? $_POST['lvl'] : NULL; $CGU = !empty($_POST['CGU']) ? $_POST['CGU'] : NULL; // On vérifie que le formulaire à été complété et si les champs ne sont pas vides if(isset($_POST['submit'])) { if (!$user && !$password && !$email){ echo '<div class="error_message_pseudo_case"> <img src="attention.png"></img> <div class="error_message_pseudo"> Merci de renseigner un pseudo/mot de passe/email! </div> </div>'; }else{ if($CGU && $CGU == 'oui'){ $sql = "SELECT pseudo FROM membres WHERE pseudo = :pseudo "; $params = array(":pseudo"=>$pseudo); $query = querySelect($sql,$params); $sql = "SELECT email FROM membres WHERE email = :email "; $params = array(":email"=>$email); $query2 = querySelect($sql,$params); $count1 = count($query); $count2 = count($query2); if($count1 || $count2){ // Pseudo ou email déjà utilisé echo "<div class='error_pseudo'> <img src='refused.png'></img> <div class='refused_message'> Ce pseudo/email est déjà utilisé </div> </div>"; }else{ // Pseudo libre, on l'insère dans la table $pass_hache = sha1($password); $req = $bdd->prepare("INSERT INTO membres(pseudo, password, email, birthday, country, lvl) VALUES(:pseudo, :pass_hache, :email, :birthday, :country , :level) "); $params = array( ':pseudo' => $pseudo, ':pass_hache' => $pass_hache, ':email' => $email, ':birthday' => $birthday, ':country' => $country, ':level' => $level ); try{ $query = array($req,$params); $req->execute($params); }catch(Exception $e) { echo "<pre><br>".$e->getMessage()."<br>"; print_r($query); echo "</pre>"; } }//Fin du IF COUNT } else { echo '<div class="error_message_pseudo_case"> <img src="attention.png" /> <div class="error_message_pseudo"> Merci d\'accepter les CGU ! </div> </div>'; }// Fin du IF CGU } $cle = md5(microtime(TRUE)*100000); try{ $sql = 'UPDATE membres SET cle = :cle WHERE pseudo = :pseudo '; $stmt = $bdd->prepare($sql); $stmt->execute(array( ':cle' => $cle, ':pseudo' => $pseudo)); }catch(Exception $e) { echo "<pre><br>".$e->getMessage()."<br>"; echo "</pre>"; } $destinataire = $email; $sujet = "Activation de votre compte " . $pseudo . " sur QuadDutchClan.com" ; $entete = "From: activation@qdc.esy.es" ; // Le lien d'activation est composé du login(log) et de la clé(cle) $message = 'Bienvenue sur QuadDutchClan, Pour activer votre compte, veuillez cliquer sur le lien ci dessous ou copier/coller dans votre navigateur internet. www.qdc.esy.es/activation.php?pseudo='.urlencode($pseudo).'&cle='.urlencode($cle).' --------------- Ceci est un mail automatique, Merci de ne pas y répondre.'; mail($destinataire, $sujet, $message, $entete) ; // Envoi du mail } // Fin du IF SUBMIT
Au passage ... pour tes "level" plutot que d'écrire manuellement tes 150 lignes.... tu aurais pu faire une simple boucle en php ..
<select name="lvl" class="lvl"> <?php for($i=1;$i<=140;$i++){ echo "<option value='$i'>Level $i</option>"; } ?> </select>
Dernier point .. tu as DEUX balises
<form action="" method = "POST"> ... </form>
alors qu'une seule est nécessaire.... pour qu'elle englobe l'ensemble des champs que tu souhaites récupérer via ton submit.
Cordialement,
Jordane
Legrandfifou
Messages postés
109
Date d'inscription
samedi 3 mai 2014
Statut
Membre
Dernière intervention
17 mars 2017
5
30 juil. 2015 à 23:12
30 juil. 2015 à 23:12
Merci , le problème est réglé dans le code que tu m'as donné ? Si oui quel était l'erreur ?
jordane45
Messages postés
38354
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 décembre 2024
4 719
30 juil. 2015 à 23:36
30 juil. 2015 à 23:36
Ta requête d'insertion. ...
Legrandfifou
Messages postés
109
Date d'inscription
samedi 3 mai 2014
Statut
Membre
Dernière intervention
17 mars 2017
5
31 juil. 2015 à 01:49
31 juil. 2015 à 01:49
Ah oui merci j'avais pas remarqué dans ton code , j'ai une question 'bête' avec le php j'ai des valeurs inconnues que je reprend du formulaire et que j'insère dans ma table quand toute les conditions sont remplies mais j'aimerais ajouter une nouvelle valeur qui est la valeur "group" , pas de soucis pour l'insert mais il faudrait que cet valeur soit par défaut '1' , je n'arrive pas a trouver comment je dois faire , des indications ?
jordane45
Messages postés
38354
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 décembre 2024
4 719
31 juil. 2015 à 09:40
31 juil. 2015 à 09:40
cette valeur 'group' ... tu la sors d'où ? de ton formulaire ?
Si oui.. tu peux, au moment de la récupération des variables faire :
Sinon.. tu peux aussi, dans ta BDD.. définir des valeurs par défaut sur tes champs....
Si oui.. tu peux, au moment de la récupération des variables faire :
$group = !empty($_POST['group']) ? $_POST['group'] : 1 ;
Sinon.. tu peux aussi, dans ta BDD.. définir des valeurs par défaut sur tes champs....
Legrandfifou
Messages postés
109
Date d'inscription
samedi 3 mai 2014
Statut
Membre
Dernière intervention
17 mars 2017
5
31 juil. 2015 à 10:29
31 juil. 2015 à 10:29
Non justement elle n'est pas accessible par le joueur car par défaut elle a 1
0 = visiteur
1 = membre
2 = admin
Donc quand il s'inscris il faut que directement sa mette 1 dans la table de donnée si toutes les conditions sont remplie j'ai essayé en mettant la valeur de $group : 1; Mais si je fait ca il n'insert plus rien dans la table :/
0 = visiteur
1 = membre
2 = admin
Donc quand il s'inscris il faut que directement sa mette 1 dans la table de donnée si toutes les conditions sont remplie j'ai essayé en mettant la valeur de $group : 1; Mais si je fait ca il n'insert plus rien dans la table :/
Modifié par Legrandfifou le 1/08/2015 à 12:39
1 août 2015 à 12:45
1 août 2015 à 12:50
1 août 2015 à 13:26
1 août 2015 à 13:49