Connection à ma bdd en PHP en fonctionne pas
Résolu/Fermé
Snox5
Messages postés
1482
Date d'inscription
samedi 25 juin 2016
Statut
Contributeur
Dernière intervention
11 juin 2021
-
Modifié par Snox5 le 22/10/2016 à 21:46
Snox5 Messages postés 1482 Date d'inscription samedi 25 juin 2016 Statut Contributeur Dernière intervention 11 juin 2021 - 23 oct. 2016 à 11:50
Snox5 Messages postés 1482 Date d'inscription samedi 25 juin 2016 Statut Contributeur Dernière intervention 11 juin 2021 - 23 oct. 2016 à 11:50
A voir également:
- Connection à ma bdd en PHP en fonctionne pas
- Se connecter à ma boite hotmail - Guide
- Gmail connection - Guide
- Easy php - Télécharger - Divers Web & Internet
- Comment connecter chromecast à la télé - Guide
- Facebook connection - Guide
4 réponses
jordane45
Messages postés
38384
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 janvier 2025
4 727
Modifié par jordane45 le 23/10/2016 à 11:18
Modifié par jordane45 le 23/10/2016 à 11:18
Bonjour,
Commence par activer la gestion des erreurs en PDO
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
En complément de ce que t'a indiqué LegranFilou .. ajoute des blocs TRY/CATCH pour intercepter (et afficher) les erreurs...(sinon ça ne sert à rien ! )
Ensuite... pense à récupérer PROPREMENT tes variables AVANT de les utiliser...
Regarde comment faire ici :
https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
Pour finir ... il manque les quotes autour des variables ainsi que le "$" devant ta variable hash_pass
... le mieux serait tout de même d'utiliser les requêtes préparées pour éviter les soucis d'injection SQL.
Ton code devient donc :
Ton fichier :
Cordialement,
Jordane
Commence par activer la gestion des erreurs en PDO
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
En complément de ce que t'a indiqué LegranFilou .. ajoute des blocs TRY/CATCH pour intercepter (et afficher) les erreurs...(sinon ça ne sert à rien ! )
Ensuite... pense à récupérer PROPREMENT tes variables AVANT de les utiliser...
Regarde comment faire ici :
https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
Pour finir ... il manque les quotes autour des variables ainsi que le "$" devant ta variable hash_pass
INSERT INTO Users(Nick, mail, pass) VALUES($pseudo, $email, hash_pass)
INSERT INTO Users(Nick, mail, pass) VALUES('$pseudo', '$email', '$hash_pass')
... le mieux serait tout de même d'utiliser les requêtes préparées pour éviter les soucis d'injection SQL.
Ton code devient donc :
<?php //fichier ncxBdd.php // Fichier de connexion à la BDD try{ $bdd = new PDO('mysql:host=localhost;dbname=id43509_us****bs;charset=utf8mb4_unicode_ci', 'id43509_lemniscat', '******;D*****'); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); }
Ton fichier :
<?php //Affichage des erreurs PHP error_reporting(E_ALL); //connexion à la bdd require_once "cnxBdd.php"; //Récupération "prorpre" des variables $pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo'] : NULL; $email = !empty($_POST['email']) ? $_POST['email'] : NULL; $password = !empty($_POST['password']) ? $_POST['password']: NULL; $hash_pass= openssl_digest($password, 'sha512'); //tests echo "le pseudo est : $pseudo <br/>"; echo "le mail est : $email <br/>"; echo "le mot de passe hashé est : $hash_pass"; if($pseudo && $email && $hash_pas ){ $sql = "INSERT INTO Users(Nick, mail, pass) VALUES(:pseudo, :email , :hash_pass)"; $datas = array(":pseudo"=>$pseudo , ":email"=>$email , ":hash_pass"=>$hash_pass); try{ $prep = $bdd->prepare($sql); $res = $prep->execute($datas); }catch(Exception $e){ echo "Erreur ! ".$e->getMessage(); } }
Cordialement,
Jordane
Legrandfifou
Messages postés
109
Date d'inscription
samedi 3 mai 2014
Statut
Membre
Dernière intervention
17 mars 2017
5
Modifié par Legrandfifou le 22/10/2016 à 21:48
Modifié par Legrandfifou le 22/10/2016 à 21:48
Salut :)
C'est dans programmation : PHP mais je ne pense pas que ce soit trop grave :p
Je pense que tu dois mettre ta connexion à ta BDD au début du code donc quand tu fais <?php ta bdd /RESTE DE TON CODE/ ?>
Il me semble que c'est ça ^^ je ne suis pas sur :)
C'est dans programmation : PHP mais je ne pense pas que ce soit trop grave :p
Je pense que tu dois mettre ta connexion à ta BDD au début du code donc quand tu fais <?php ta bdd /RESTE DE TON CODE/ ?>
Il me semble que c'est ça ^^ je ne suis pas sur :)
Snox5
Messages postés
1482
Date d'inscription
samedi 25 juin 2016
Statut
Contributeur
Dernière intervention
11 juin 2021
213
22 oct. 2016 à 21:48
22 oct. 2016 à 21:48
Salut ^^ Merci pour ta réponse,
J'ai contacté la modo pour me déplacer ^^
Merci j’essaie ça tout de suite.
+++
J'ai contacté la modo pour me déplacer ^^
Merci j’essaie ça tout de suite.
+++
Snox5
Messages postés
1482
Date d'inscription
samedi 25 juin 2016
Statut
Contributeur
Dernière intervention
11 juin 2021
213
Modifié par Snox5 le 22/10/2016 à 21:53
Modifié par Snox5 le 22/10/2016 à 21:53
re, ca n'a rien donné.^^
stf_frmu
Messages postés
47596
Date d'inscription
mercredi 22 février 2012
Statut
Modérateur
Dernière intervention
15 janvier 2025
93
>
Snox5
Messages postés
1482
Date d'inscription
samedi 25 juin 2016
Statut
Contributeur
Dernière intervention
11 juin 2021
22 oct. 2016 à 22:52
22 oct. 2016 à 22:52
bsr redirigé dans le bon forum
la modération
la modération
Snox5
Messages postés
1482
Date d'inscription
samedi 25 juin 2016
Statut
Contributeur
Dernière intervention
11 juin 2021
213
>
stf_frmu
Messages postés
47596
Date d'inscription
mercredi 22 février 2012
Statut
Modérateur
Dernière intervention
15 janvier 2025
22 oct. 2016 à 23:03
22 oct. 2016 à 23:03
Merci.
Legrandfifou
Messages postés
109
Date d'inscription
samedi 3 mai 2014
Statut
Membre
Dernière intervention
17 mars 2017
5
23 oct. 2016 à 01:38
23 oct. 2016 à 01:38
Essaye de rajouter
Et rempli le formulaire pour l'envoyer voir si tu n'as pas une erreur :)
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);.
Et rempli le formulaire pour l'envoyer voir si tu n'as pas une erreur :)
Snox5
Messages postés
1482
Date d'inscription
samedi 25 juin 2016
Statut
Contributeur
Dernière intervention
11 juin 2021
213
Modifié par Snox5 le 23/10/2016 à 02:04
Modifié par Snox5 le 23/10/2016 à 02:04
du coup j'ai tenté d'autres choses, sans grands résultats :
Ceci n'est pas une signature.
<?php //création variable après récuperation des valeur des champs : $pseudo = $_POST['pseudo']; $email = $_POST['email']; $password = $_POST['password']; // hashage du mot de passe en sha512 : $hash_pass= openssl_digest($password, 'sha512'); //test : echo "le pseudo est : $pseudo <br/>"; echo "le mail est : $email <br/>"; echo "le mot de passe hashé est : $hash_pass"; //variables de connexion : $dsn = 'mysql:dbname=id43***ssubs;host=localhost;'; $user = 'id435*****iscat'; $bddpass = '1********'; //connexion à la bdd : $dbh = new PDO($dsn, $user, $bddpass); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //Envoie des données : $bdd->exec('INSERT INTO Users(Nick, mail, pass) VALUES($pseudo, $email, hash_pass)'); //fermeture de la connexion : $dbh = null; ?>
Ceci n'est pas une signature.
Snox5
Messages postés
1482
Date d'inscription
samedi 25 juin 2016
Statut
Contributeur
Dernière intervention
11 juin 2021
213
23 oct. 2016 à 11:50
23 oct. 2016 à 11:50
Salut,
YES ! Ca a fonctionné ! ;D Merci beaucoup pour ton aide Jordane45 ! ^^
Voilà le code qui fonctionne :
Je passe en résolu,
Bon Dimanche ! @+++
YES ! Ca a fonctionné ! ;D Merci beaucoup pour ton aide Jordane45 ! ^^
Voilà le code qui fonctionne :
<?php //Affichage des erreurs PHP error_reporting(E_ALL); //création variable après récuperation des valeur des champs : $pseudo = !empty($_POST['pseudo']) ? $_POST['pseudo'] : NULL; $email = !empty($_POST['email']) ? $_POST['email'] : NULL; $password = !empty($_POST['password']) ? $_POST['password']: NULL; $hash_pass= openssl_digest($password, 'sha512'); //test : echo "le pseudo est : $pseudo <br/>"; echo "le mail est : $email <br/>"; echo "le mot de passe hashé est : $hash_pass"; //variables de connexion : $dsn = 'mysql:dbname=id4*******bs;host=localhost;'; $user = 'id43*******cat'; $bddpass = '********'; //connexion à la bdd : try{ $bdd = new PDO($dsn, $user, $bddpass); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); }catch(PDOException $e) { die('Erreur : ' . $e->getMessage());} //insertion des données : if($pseudo && $email && $hash_pass ){ $sql = "INSERT INTO Users(Nick, mail, pass) VALUES(:pseudo, :email , :hash_pass)"; $data = array(":pseudo"=>$pseudo , ":email"=>$email , ":hash_pass"=>$hash_pass); try{ $prep = $bdd->prepare($sql); $res = $prep->execute($data); }catch(Exception $e){ echo "Erreur ! ".$e->getMessage();}} ?>
Je passe en résolu,
Bon Dimanche ! @+++
23 oct. 2016 à 02:19
Tout d'abord, merci pour ta réponse.
A quoi correspond le fichier ncxBdd.php ?
J'ai tout mis dans mon fichier register.php qui doit récupérer les infos du formulaire et les inscrire dans la base.
J'apporte les modifs que tu m'as donné tout de suite et vois ce que ca donne.
Je débute en php...^^
+++
23 oct. 2016 à 02:27
Il est préférable de placer le code de connexion dans un fichier à part.... comme ça tu n'as qu'à l'inclure dans les pages où tu en as besoin au lieu de le copier coller dans toutes tes pages...
Modifié par Snox5 le 23/10/2016 à 02:38
Mon code est bien dans un fichier à part, et pour les injections sql, je m'en inquiterai plus tard. ^^
Le nouveau code est donc :
23 oct. 2016 à 02:46
23 oct. 2016 à 02:55
Ça ne marche toujours pas sinon, peut être que c'est ma table que j'ai mal faite ? Tu n'aurai pas de la doc ou un tutoriel abordable sur phpmyadmin / mysql ?
+++