Comment connecter base de donné à un formulaire de contact [Fermé]
Signaler
samdepanam
jordane45
- Messages postés
- 18
- Date d'inscription
- jeudi 19 mars 2015
- Statut
- Membre
- Dernière intervention
- 1 octobre 2019
jordane45
- Messages postés
- 31094
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 20 janvier 2021
A voir également:
- Comment lier un formulaire à une base de données
- Lier formulaire à une base de donnée ✓ - Forum - Webmaster
- Php/Mysql problème d'envoi de formulaire vers la base de données ✓ - Forum - PHP
- Transférer les champs d'un formulaire dans une base de donnée - Forum - PHP
- Comment connecter base de donné à un formulaire de contact - Forum - MySQL
- Lier un formulaire a sa base de données - Forum - SQL Server
2 réponses
jordane45
- Messages postés
- 31094
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 20 janvier 2021
jordane45
- Messages postés
- 31094
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 20 janvier 2021
Tu n'as plus de message d'erreur... donc c'est un bon début.
Par contre... le "ça ne marche pas" .. ne nous permet pas d'identifier le problème...
il faut donc :
1 - Que tu expliques exactement ce que le code devrait faire... et qui.. selon toi.. ne fait pas.
2 - Que tu nous montres ton code (celui que tu viens de corriger....)
Au cas où ... penses à faire un ECHO de la variable $sql ... puis à tester la requête (ainsi affichée sur ta page...) directement dans ta BDD pour t'assurer que sa syntaxe est la bonne.
Je t'invite à regarder ceci : https://codes-sources.commentcamarche.net/faq/10778-heidisql-tester-ses-requetes-sql
Par contre... le "ça ne marche pas" .. ne nous permet pas d'identifier le problème...
il faut donc :
1 - Que tu expliques exactement ce que le code devrait faire... et qui.. selon toi.. ne fait pas.
2 - Que tu nous montres ton code (celui que tu viens de corriger....)
Au cas où ... penses à faire un ECHO de la variable $sql ... puis à tester la requête (ainsi affichée sur ta page...) directement dans ta BDD pour t'assurer que sa syntaxe est la bonne.
Je t'invite à regarder ceci : https://codes-sources.commentcamarche.net/faq/10778-heidisql-tester-ses-requetes-sql
samdepanam
- Messages postés
- 18
- Date d'inscription
- jeudi 19 mars 2015
- Statut
- Membre
- Dernière intervention
- 1 octobre 2019
mon code doit me permettre de récupérer les information qui seront renseigner dans le formulaire de contact. voilà le code
<?php mysql_select_db("portfolio"); //variables : //* $host = "localhost"; $dbName="portfolio"; $user = "root"; $password = "root"; //connexion try{ $dsn = "mysql:host=$localhost;dbname=$portfolio"; $options = array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8' ); $dbh = new PDO($dsn, $user, $password, $options); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { echo 'Échec lors de la connexion : ' . $e->getMessage(); } $sql = "INSERT INTO contacts VALUES('', '$NOM','$PRENOM','$EMAIL','$Num_TELEPHONE','$MESSAGE')"; $dbh->exec($sql); ?>
jordane45
- Messages postés
- 31094
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 20 janvier 2021
Premier pb ......
je vois un mysql_select_db au dabut de ta code ....
Ensuite...
comme je te l'ai dit .. fais un ECHO de $sql.. et testes ta reqête en direct dans ta BDD
je vois un mysql_select_db au dabut de ta code ....
Ensuite...
comme je te l'ai dit .. fais un ECHO de $sql.. et testes ta reqête en direct dans ta BDD
<?php //variables : //* $host = "localhost"; $dbName="portfolio"; $user = "root"; $password = "root"; //connexion try{ $dsn = "mysql:host=$localhost;dbname=$portfolio"; $options = array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8' ); $dbh = new PDO($dsn, $user, $password, $options); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch (PDOException $e) { echo 'Échec lors de la connexion : ' . $e->getMessage(); } $sql = "INSERT INTO contacts VALUES('', '$NOM','$PRENOM','$EMAIL','$Num_TELEPHONE','$MESSAGE')"; echo "<br> La requete est :<br>".$sql; if (!$dbh->exec($sql)) { echo "\nPDO::errorInfo():\n"; print_r($dbh->errorInfo()); } ?>
jordane45
- Messages postés
- 31094
- Date d'inscription
- mercredi 22 octobre 2003
- Statut
- Modérateur
- Dernière intervention
- 20 janvier 2021
- Messages postés
- 18
- Date d'inscription
- jeudi 19 mars 2015
- Statut
- Membre
- Dernière intervention
- 1 octobre 2019
Donc on attaque le second problème ...
A quel moment .. initialises tu tes variables '$NOM','$PRENOM','$EMAIL','$Num_TELEPHONE','$MESSAGE' ??
Il faut remettre dans ton code :
A quel moment .. initialises tu tes variables '$NOM','$PRENOM','$EMAIL','$Num_TELEPHONE','$MESSAGE' ??
Il faut remettre dans ton code :
$NOM =htmlentities(trim($_POST['NOM'])); $PRENOM =htmlentities(trim($_POST['PRENOM'])); $EMAIL =htmlentities(trim($_POST['EMAIL'])); $Num_TELEPHONE =htmlentities(trim($_POST['Num_TELEPHONE'])); $SUJET =htmlentities(trim($_POST['SUJET'])); $MESSAGE =htmlentities(trim($_POST['MESSAGE'])); $sql = "INSERT INTO contacts VALUES('', '$NOM','$PRENOM','$EMAIL','$Num_TELEPHONE','$MESSAGE')"; echo "<br> La requete est :<br>".$sql; if (!$dbh->exec($sql)) { echo "\nPDO::errorInfo():\n"; print_r($dbh->errorInfo()); }
Tu utilises l'extension Mysql_ ... alors que dans le troisième lien il est expliqué qu'il faut désormais éviter...
Je te conseilles d'utiliser la PDO.
Quoi qu'il en soit.. dans ton code actuel... tu as oublié de mettre le nom de ta BDD entre quotes...
... mais j'insiste... passes à la PDO
En PDO pour se connecter à une BDD Mysql :
Bien sûr .. il faut modifier ton code pour utiliser cette nouvelle connexion...
par exemple.. pour faire une requête SELECT..
PS: Evites de mettre des caractères spéciaux dans le nom de tes variables ... N°TELEPHONE risque de ne pas passer !
EDIT : correction de la variable $dsn (avec des " " au lieu des ' ' )
ça marchera mieux avec de doubles-quotes