Impossible de poster dans une BDD
Résolu
animostab
Messages postés
2829
Date d'inscription
Statut
Membre
Dernière intervention
-
animostab Messages postés 2829 Date d'inscription Statut Membre Dernière intervention -
animostab Messages postés 2829 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Bonjour,
Avec wamp server je n'arrive plus a poster dans ma BDD
ma config :
php 7.2.4
MySQL 5.7.14
Apache 2.4.23
windows 10
Le code ci dessous marche sur mon hebergement OVH (avec bien sur la connexion à la bdd ovh et pas la connexion local comme ci dessous)
le contenu de la bdd s'affiche donc la connection à la bdd est correcte
le nom de la table est correcte
Aucune erreur ne s'affiche lors du post
tous les privilèges dans phpmyadmin sont cochés
Le nom de la page est bien avisclient10.php
J'aimerais bien savoir pourquoi ca ne poste pas
le php
.
le code html du formulaire
Merci d'avance pour celui qui me donne un début de soluce ou au moins qui me dise comment savoir ce qui cloche.
Bonjour,
Avec wamp server je n'arrive plus a poster dans ma BDD
ma config :
php 7.2.4
MySQL 5.7.14
Apache 2.4.23
windows 10
Le code ci dessous marche sur mon hebergement OVH (avec bien sur la connexion à la bdd ovh et pas la connexion local comme ci dessous)
le contenu de la bdd s'affiche donc la connection à la bdd est correcte
le nom de la table est correcte
Aucune erreur ne s'affiche lors du post
tous les privilèges dans phpmyadmin sont cochés
Le nom de la page est bien avisclient10.php
J'aimerais bien savoir pourquoi ca ne poste pas
le php
if (!empty($_POST['envoi'])) { $hote = '127.0.0.1'; $base = 'clownrobsql'; $user = 'root'; $pass = ''; $link = mysqli_connect($hote, $user, $pass, $base); mysqli_set_charset($link, "utf8"); if (!$link) { die('Erreur de connexion : ' . mysqli_connect_errno()); } $pseudo = strip_tags(mysqli_real_escape_string($link, $_POST['pseudo'])); $message = strip_tags(mysqli_real_escape_string($link, $_POST['message'])); $date = date('Y-m-d') ."\n"; $interdit ="href=(.*)|href|http(.*)|www(.*)|\bcon\b|\bconnard\b|\bsalope\b|\bmerde\b|\bchier\b|\babrutit\b|\benfoiré\b|\bputain\b|\bempafé\b|\bcouille\b|\bbite\b|\bpute\b|\benculé\b|\bprêt\b|\bargent\b|\bcialis\b|\bviagra\b|\bporn\b|\bpharmacy\b|\bbuy\b|\bpenis\b|\bporno\b|\bsuck\b|\bdick\b"; if((!empty($_POST['pseudo'])) && (!empty($_POST['message'])) && ($_POST['surname']=="") && !preg_match('#'.$interdit.'#i', $_POST["message"]) && !preg_match('#'.$interdit.'#i', $_POST["pseudo"])) { mysqli_query($link, "INSERT INTO livre_or VALUES('', '" . $pseudo . "','" . $date . "', '" . $message . "')"); echo '<div id="loaderavis"></div><div id="mauvaisavis"><h2>Votre message a été posté</h2><p>Pour voir votre message</p><a href="avisclient10.php#avis">Cliquez ici</a><br><br></div>'; } else if ($_POST['surname']!="") { echo '<div id="loaderavis"></div><div id="mauvaisavis"><h2>Les robots sont interdits !</h2><p><button class="fermeravis">Recommencer</button></p></div>';} else if ( preg_match('#'.$interdit.'#i', $_POST["message"]) || preg_match('#'.$interdit.'#i', $_POST["pseudo"])) {echo '<div id="loaderavis"></div><div id="mauvaisavis"><h2>Votre message n\'a pas été posté</h2><p>Vous avez posté un lien</p><p>Ou bien</p><p>Votre message ou pseudo contient une injure</p><p><button class="fermeravis">Recommencer</button></p></div>';} else { echo '<div id="loaderavis"></div><div id="mauvaisavis"><h2>Votre message n\'a pas été posté</h2><p>Un champ du formulaire n\'a pas été rempli</p><p><button class="fermeravis">Recommencer</button></p></div>'; } mysqli_close($link);
.
le code html du formulaire
<form action="avisclient10.php" method="post"> <p><label for="pseudo">Prénom/Nom ou pseudo :</label><br> <input type="text" id="pseudo" name="pseudo"></p> <p class="Surname"><label for="surname">honeypot</label><br> <input type="text" id="surname" name="surname"></p> <p><label for="message">Votre avis :</label><br> <textarea name="message" id="message" rows="5" cols="35"></textarea></p> <p><input type="submit" value="Envoyer" class="bouton" name="envoi"></p> </form>
Merci d'avance pour celui qui me donne un début de soluce ou au moins qui me dise comment savoir ce qui cloche.
Configuration: Windows / Firefox 65.0
A voir également:
- Impossible de poster dans une BDD
- 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
- Site pour poster des photos - Guide
- Ronyasoft poster printer - Télécharger - Impression
2 réponses
Bonjour
Commence par gérer les éventuels erreurs de ta requête en y plaçant un mysqli_error
https://www.w3schools.com/php/func_mysqli_error.asp
Fais également un print_r($_POST) afin de voir ce que retourne ton formulaire.
Montre nous ensuite ton code modifié et donne nous la structure exacte de ta table
.
Commence par gérer les éventuels erreurs de ta requête en y plaçant un mysqli_error
https://www.w3schools.com/php/func_mysqli_error.asp
Fais également un print_r($_POST) afin de voir ce que retourne ton formulaire.
Montre nous ensuite ton code modifié et donne nous la structure exacte de ta table
.
j'ai fais ce que as demandé
le r_print($_POST) retourne bien la saisie du formulaire
mais l'echo donne une erreur
Incorrect integer value: '' for column 'id' at row 1
c'est la colonne id
clé primaire / Type : int(6) / interclassement : / Attribut : / Null : non / Valeur par defaut : aucune / commentaire : / Extra : AUTO_INCREMENT/
voici la capture d'ecran de la structure
de plus c'est la même structure que sur mon hebergement et la ca fonctionne
version sql distante 5.5.60-0+deb7u1-log (qui marche sur OVH)
version SQL locale 5.7.14 - MySQL Community Server (GPL) erreur en local
voici le code modifié si a te dit mais bon vu que je t'ai donné l'erreur je ne sais pas si ca te sert a quelque chose
Il faut éviter de faire comme tu le fais et bien indiquer dans la requête les CHAMPS dans lesquels doivent être enregistrées les données...
Et comme l'ID est AUTOINCREMENTE .. il ne faut pas l'indiquer dans une requête INSERT
Donc :