Comment connecter base de donné à un formulaire de contact

Fermé
samdepanam
Messages postés
18
Date d'inscription
jeudi 19 mars 2015
Statut
Membre
Dernière intervention
1 octobre 2019
- 19 mars 2015 à 15:07
jordane45
Messages postés
35510
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mai 2022
- 25 mars 2015 à 18:33
bonjour, je créee actuellement mon Premier site internet en PHP, HTML et je voudrais savoir comment relier mon formulaire de contact à ma base de données afin de pouvoir récupérer les données sur la base.

merci d'avance pour votre aide
A voir également:

2 réponses

samdepanam
Messages postés
18
Date d'inscription
jeudi 19 mars 2015
Statut
Membre
Dernière intervention
1 octobre 2019

19 mars 2015 à 16:18
rebonjour voilà ce que j'ai fait pouvez vous me dire ceux qui n'est pas correct car ça ne fonctionne toujours pas
<?php 
if(isset ($_POST['submit']))
 {
 {

$connect = mysql_connect('localhost','root','root');
mysql_select_db(portfolio); 
}

$NOM = addslashes(mysql_real_escape_string($_POST['NOM']));
$PRENOM = addslashes(mysql_escape_string($_POST['PRENOM']));
$EMAIL = mysql_escape_string($_POST['EMAIL']);
$N°TELEPHONE = mysql_escape_string($_POST['N°TELEPHONE']);
$MESSAGE = mysql_escape_string($_POST['MESSAGE']);
mysql_query("INSERT INTO "contacts" VALUES('', '" . $NOM . "', '" . $PRENOM . "', '" . $EMAIL . "', '".$N°TELEPHONE."', '" .$MESSAGE."')");

 

$NOM =htmlentities(trim($_POST['NOM']));
$PRENOM =htmlentities(trim($_POST['PRENOM']));
$EMAIL =htmlentities(trim($_POST['EMAIL']));
$N°TELEPHONE =htmlentities(trim($_POST['N°TELEPHONE']));
$SUJET =htmlentities(trim($_POST['SUJET']));
$MESSAGE =htmlentities(trim($_POST['MESSAGE']));
}

?>


merci
0
jordane45
Messages postés
35510
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mai 2022
4 164 > samdepanam
Messages postés
18
Date d'inscription
jeudi 19 mars 2015
Statut
Membre
Dernière intervention
1 octobre 2019

Modifié par jordane45 le 19/03/2015 à 19:09
Déjà .. tu n'as pas regardé TOUS les liens que je t'ai donné...
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...
mysql_select_db("portfolio"); 


... mais j'insiste... passes à la PDO



En PDO pour se connecter à une BDD Mysql :
<?php
//variables :
$host = "localhost";
$dbName="portfolio";
$user = "root";
$password = "root";

//connexion
try{
 $dsn = "mysql:host=$host;dbname=$dbName";
 $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();
}
?>

Bien sûr .. il faut modifier ton code pour utiliser cette nouvelle connexion...
par exemple.. pour faire une requête SELECT..
$sql = "INSERT INTO contacts
           VALUES('', '$NOM','$PRENOM','$EMAIL','$Num_TELEPHONE','$MESSAGE')";
$dbh->exec($sql);



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 ' ' )
0
samdepanam
Messages postés
18
Date d'inscription
jeudi 19 mars 2015
Statut
Membre
Dernière intervention
1 octobre 2019
> jordane45
Messages postés
35510
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mai 2022

19 mars 2015 à 16:45
j'en prend note, j'essaie et je vous dit ce qu'il en est
0
samdepanam
Messages postés
18
Date d'inscription
jeudi 19 mars 2015
Statut
Membre
Dernière intervention
1 octobre 2019

19 mars 2015 à 18:32
rebonjour j'ai fait les modification nécessaire mais j'ai un message d'erreur qui s'affiche le voilà : Échec lors de la connexion : SQLSTATE[HY000] [2005] Unknown MySQL server host '$host' (0)
0
jordane45
Messages postés
35510
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mai 2022
4 164 > samdepanam
Messages postés
18
Date d'inscription
jeudi 19 mars 2015
Statut
Membre
Dernière intervention
1 octobre 2019

19 mars 2015 à 19:08
Oupsss... petite erreur de copier/coller...
ça marchera mieux avec de doubles-quotes
 $dsn ="mysql:host=$host;dbname=$dbName";
0
jordane45
Messages postés
35510
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mai 2022
4 164
20 mars 2015 à 18:19
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

0
samdepanam
Messages postés
18
Date d'inscription
jeudi 19 mars 2015
Statut
Membre
Dernière intervention
1 octobre 2019

Modifié par jordane45 le 20/03/2015 à 18:41
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);
?>
0
jordane45
Messages postés
35510
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mai 2022
4 164
20 mars 2015 à 18:45
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
<?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()); 
 }

?>

0
samdepanam
Messages postés
18
Date d'inscription
jeudi 19 mars 2015
Statut
Membre
Dernière intervention
1 octobre 2019

25 mars 2015 à 17:40
bonjour j'ai fait les modification nécessaire et voilà ceux que m'affiche ma page :
La requete est :
INSERT INTO contacts VALUES('', '','','','','')
0
jordane45
Messages postés
35510
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 mai 2022
4 164 > samdepanam
Messages postés
18
Date d'inscription
jeudi 19 mars 2015
Statut
Membre
Dernière intervention
1 octobre 2019

25 mars 2015 à 18:33
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 :

$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()); 
 }
0