Problème poster un commentaire
Résolu
flo39400
Messages postés
596
Date d'inscription
Statut
Membre
Dernière intervention
-
flo39400 Messages postés 596 Date d'inscription Statut Membre Dernière intervention -
flo39400 Messages postés 596 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je n'arrive pas a poster de commentaire via mon formulaire sur mon serveur MySQL.
Je vais vous expliquer comment est constituer la base de donnée:
nom de la db: 'test'
composé de 'coms':
_ 'post_id' et de 'post' ( la ou son stocker les commentaires )
addcom.php
formulaire.php
Aider moi, je sais pas comment faire car mon commentaire au niveau du serveur j'ai un commentaire vide quoi que je marque.
je n'arrive pas a poster de commentaire via mon formulaire sur mon serveur MySQL.
Je vais vous expliquer comment est constituer la base de donnée:
nom de la db: 'test'
composé de 'coms':
_ 'post_id' et de 'post' ( la ou son stocker les commentaires )
addcom.php
<?php
try {
$db = new PDO('mysql:host=192.168.1.22;dbname=test', 'LOGIN', 'PASSWORD', array(1002 => 'SET NAMES utf8'));
$db->exec("SET CHARACTER SET utf8");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
}
catch(PDOException $e) {
echo 'Erreur : '.$e->getMessage();
echo 'N° : '.$e->getCode();
}
$db->exec("INSERT INTO coms(post) VALUES ('".$_POST['commentaire']."')");
?>
formulaire.php
<?php include("addcom.php"); ?>
<p>Votre commentaire:</p>
<form action="formulaire.php" method="post" onsubmit="self.close()">
<input="text" name="post"/>
<textarea name="commentaire" style="width:500px;height:200px;"></textarea><br/>
<input type="submit" value="Envoyer"/>
</form>
Aider moi, je sais pas comment faire car mon commentaire au niveau du serveur j'ai un commentaire vide quoi que je marque.
A voir également:
- Problème poster un commentaire
- Commentaire word - Guide
- Comment poster une vidéo sur tiktok - Guide
- Easy poster printer - Télécharger - Divers Photo & Graphisme
- Poster razor - Télécharger - Divers Photo & Graphisme
- Impossible de mettre une photo en commentaire facebook - Forum Facebook
3 réponses
Bonjour,
Si tu veux envoyer les données de ton formulaire dans la même page... pas besoin de faire ce que tu as fais :
... il suffit de laisser l'attribut ACTION .. à vide.
Comme ceci :
Ensuite...
Place le code de connexion à ta BDD dans un fichier à part ( et UNIQUEMENT CA...)
Ne pas oublier des attributs pour les champs HTML ... comme le "type" de ton input "post" !
Vérifier, avec ISSET que les variables existent AVANT de les utiliser !
Utilisation des requête préparées pour éviter les problèmes d'injection sql, les soucis de quotes/ doubles quotes dans la requête......
Enfin... donc dans ta page formulaire.php :
Cordialement,
Jordane
Si tu veux envoyer les données de ton formulaire dans la même page... pas besoin de faire ce que tu as fais :
<form action="formulaire.php" method="post" onsubmit="self.close()">
... il suffit de laisser l'attribut ACTION .. à vide.
Comme ceci :
<form action="" method="post" >
Ensuite...
Place le code de connexion à ta BDD dans un fichier à part ( et UNIQUEMENT CA...)
<?php //--------------------------------------------// // Fichier de connexion à la BDD // connexionBDD.php //--------------------------------------------// try { $db = new PDO('mysql:host=192.168.1.22;dbname=test', 'LOGIN', 'PASSWORD', array(1002 => 'SET NAMES utf8')); $db->exec("SET CHARACTER SET utf8"); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); } catch(PDOException $e) { echo 'Erreur : '.$e->getMessage(); echo 'N° : '.$e->getCode(); } ?>
Ne pas oublier des attributs pour les champs HTML ... comme le "type" de ton input "post" !
Vérifier, avec ISSET que les variables existent AVANT de les utiliser !
Utilisation des requête préparées pour éviter les problèmes d'injection sql, les soucis de quotes/ doubles quotes dans la requête......
Enfin... donc dans ta page formulaire.php :
<?php //--------------------------------------------------// // fichier : formulaire.php //--------------------------------------------------// // connexion à la BDD: require_once "connexionBDD.php"; // Le temps des tests.. pour voir ce qui est reçu dans la variable // $_POST : echo "<pre> <b>==> POST :</b><br>"; print_r($_POST); echo "</pre>"; //------------------------------------ //traitement du submit : //------------------------------------ //récupération des variables : $post = isset($_POST['post']) ? $_POST['post'] : NULL; $commentaire= isset($_POST['commentaire']) ? $_POST['commentaire'] : NULL; try{ $sql = "INSERT INTO coms(post) VALUES (:commentaire)"; $params = array(":commentaire"=>$commentaire); $prepare = $db->prepare($sql); $prepare->execute($params); }catch(PDOException $e) { echo 'Erreur : '.$e->getMessage(); echo 'N° : '.$e->getCode(); } ?> <!-- formulaire html --> <form action="" method="post"> <p>Votre commentaire:</p> <input type="text" name="post" value="<?php echo $post ;?>"> <textarea name="commentaire" style="width:500px;height:200px;"><?php echo $commentaire ;?></textarea><br/> <input type="submit" value="Envoyer"> </form>
Cordialement,
Jordane
Bonjour,
vous devriez faire le
dans le fichier formulaire.php car c'est lui qui est appelé par le bouton subit et qui reçoit les données
vous devriez faire le
<?php include("addcom.php"); ?>
dans le fichier formulaire.php car c'est lui qui est appelé par le bouton subit et qui reçoit les données
Bonjour, le problème sais la page pour poster le commentaire dès qu'elle est ouverte ça poste même quand il y a rien
Tu peux ajouter un IF
//------------------------------------ //récupération des variables : $post = isset($_POST['post']) ? $_POST['post'] : NULL; $commentaire= isset($_POST['commentaire']) ? $_POST['commentaire'] : NULL; if($post && $commentaire){ try{ $sql = "INSERT INTO coms(post) VALUES (:commentaire)"; $params = array(":commentaire"=>$commentaire); $prepare = $db->prepare($sql); $prepare->execute($params); }catch(PDOException $e) { echo 'Erreur : '.$e->getMessage(); echo 'N° : '.$e->getCode(); } }
Car la il me met deux champs de textes a remplir alors que il devrai en avoir que 1 seul non ?
Mais ce que j'aimerai sais que le membre connecter qui écris le commentaire sois enregistré comme tel que son pseudo apparaisse comme les autres que j'ai entré manuellement mais sais dans une autre table les membres ( "membre" ).
Avec l'id, le pseudo ( "login" ) , le mot de passe ( " pass_md5 ") et l'e-mail ( " email " ).
Je vous met un lien afin que vous constaté par vous même:
http://www.dieutopgun.synology.me/test/index.php
pseudo: admin mp: admin ( sais informations seront supprimé sous peu de temps )
J'ai repris le code que tu nous avais montré ....
Il y a un INPUT ... ET un TEXTAREA .. donc DEUX champs !
Si tu n'en veut qu'un .. il te faut en retirer un !
Je n'ai rien compris .....
Pourrais-tu être un peu plus clair et précis ?
PS : on écrit " c'est" ... et non "sais" !
PS2 : Le proxy de ma boite m'empêche d'accéder à ton site.. je ne peux pas aller regarder.
PS3 : Il s'agit là d'une nouvelle question ... il serait donc souhaitable que tu place celle-ci en RESOLU .. et que tu en ouvres une autre. Cela facilite les recherches sur le site.....
Merci.
Warning: PDOStatement::execute(): SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'post' cannot be null in /volume1/web/test/postcom2.php on line 25