Souci PDO insertion donnée
Pallard_damien
-
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, et bonne année à tout le monde !
Voilà je vous contact car j'ai un petit souci de code php , j'ai coder mon petit bout de code de façon à insérer des informations dans une base de donnée, le problème est que je voudrais faire ça en PDO donc j'aimerais savoir si je peut avoir votre aide pour terminé mon code php .
commentaire.php
En sachant que le code que je vous montre ici prend les données d'un formulaire dans une autre page que voici :
FORMULAIRE :
Merci d'avance pour votre aide
Voilà je vous contact car j'ai un petit souci de code php , j'ai coder mon petit bout de code de façon à insérer des informations dans une base de donnée, le problème est que je voudrais faire ça en PDO donc j'aimerais savoir si je peut avoir votre aide pour terminé mon code php .
commentaire.php
//Connexion à la BDD
$db = new PDO('mysql:host=localhost;dbname=test;charset=utf8mb4', 'test', 'password');
//récupération des valeurs des champs:
$nom = mysql_real_escape_string($_POST["nom"]);
$prenom = mysql_real_escape_string($_POST["prenom"]);
$message = mysql_real_escape_string($_POST["message"]);
if(isset($_POST["nom"]) AND ($_POST["prenom"]) AND ($_POST["message"]))
{
// création des requêtes SQL:
$req = $db->prepare('INSERT INTO message_client(nom, prenom, message) VALUES(:nom, :prenom, :message)')
or exit(print_r($db->errorInfo()));
$req->execute(array('nom' => $nom, 'prenom' => $prenom, 'message' => $message ));
header('Location: ../client.aspx');
exit;
}
else
{
header('Location: ../client.aspx');
exit;
}
En sachant que le code que je vous montre ici prend les données d'un formulaire dans une autre page que voici :
FORMULAIRE :
echo '<form action="config/commentaire.php" method="post" id="formulaire_commentaire" name="formulaire_commentaire">'; echo '<br/>'; echo '<label for="inputEmail3" class="col-sm-2 control-label">Votre Nom</label>'; echo '<input class="form-control" type="text" placeholder="Entrer votre nom" id="nom" name="nom" required="required">'; echo '<br/>'; echo '<label for="inputPassword3" class="col-sm-2 control-label">Votre Prénom</label>'; echo '<input class="form-control" type="text" placeholder="Entrer votre Prénom" id="prenom" name="prenom" required="required">'; echo '<br/>'; echo '<label for="inputPassword3" class="col-sm-2 control-label">Votre Message :</label>'; echo '<textarea class="form-control" rows="5" placeholder="Votre message .... " id="message" name="message" required="required"></textarea>'; echo '<br/>'; echo '<br/>'; echo '<button type="submit" class="bouton_envoyer" border="0" name="bouton_envoyer" id="bouton_envoyer" title="Envoyer mon message !"></button>'; echo '</form>';
Merci d'avance pour votre aide
1 réponse
-
Bonjour,
- Commence par faire ça :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
-Retire toutes tes instructions :mysql_real_escape_string
-Récupère "proprement" tes variables AVANT de les utiliser
(comme dans l'exemple d'ici : https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index )
-
J'ai procéder ainsi, ais-je bon ?
//Connexion à la BDD $db = new PDO('mysql:host=localhost;dbname=test;charset=utf8mb4', 'test', 'password'); //récupération des valeurs des champs: $nom = $_POST["nom"]; $prenom = $_POST["prenom"]; $message = $_POST["message"]; if(isset($_POST["nom"]) AND ($_POST["prenom"]) AND ($_POST["message"])) { // création des requêtes SQL: $req = $db->prepare('INSERT INTO message_client(nom, prenom, message) VALUES(:nom, :prenom, :message)') or exit(print_r($db->errorInfo())); $req->execute(array('nom' => $nom, 'prenom' => $prenom, 'message' => $message )); header('Location: ../client.aspx'); exit; } else { header('Location: ../client.aspx'); exit; }- hum très accueillant parfait pour dérouter les personnes qui veulent apprendre, donc je doit remplacer isset par ça ce que tu n'indique en liens web ?
Doit-je remplacer complètement ça :$nom = $_POST["nom"]; $prenom = $_POST["prenom"]; $message = $_POST["message"];
Par ça :$nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL; $prenom = !empty($_POST['prenom']) ? $_POST['prenom'] : NULL; $message = !empty($_POST['message']) ? $_POST['message'] : NULL;
Ou alors complètement enlevéif(isset($_POST["nom"]) AND ($_POST["prenom"]) AND ($_POST["message"])) { jusqu'à ça fermeture }
De plus tu me montre un liens pour les sessions quel est le rapport ?
-