Envoyer des données d'un formulaire vers une base de données

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Envoyer des données d'un formulaire vers une base de données

Re: Envoyer des données d'un formulaire vers une base de données

par Saian » 01 mars 2020, 14:01

Le mail en int(255) y a comme un problème non ?
Je ne comprends pas comment afficher les erreurs, désolé je débute..
As tu consulté le lien fournis par or 1 ? car les exemples de la page sont tout de même assez explicites.
https://www.php.net/manual/fr/pdostatem ... orinfo.php
<?php
/* Provoque une erreur -- la table BONES n'existe pas */
$sth = $dbh->prepare('SELECT skull FROM bones');
$sth->execute();

echo "\nPDOStatement::errorInfo():\n";
$arr = $sth->errorInfo();
print_r($arr);
?>
L'exemple ci-dessus va afficher :
PDOStatement::errorInfo():
Array
(
    [0] => 42S02
    [1] => -204
    [2] => [IBM][CLI Driver][DB2/LINUX] SQL0204N  "DANIELS.BONES" is an undefined name.  SQLSTATE=42704
)

Re: Envoyer des données d'un formulaire vers une base de données

par j_saisrien » 01 mars 2020, 03:56

Salut thuillier-charmet

Il y a un tutoriel sur phpfrance qui ne te contredit pas mais ajoute une précision importante.
post446278.html#p446278 ,
Dans ce tutoriel il est spécifié:
A partir de PHP 7, seuls MySQLi et PDO_MySQL sont disponibles.

D'après moi Lenny se sert de PDO_MySQL, ce qui est autorisé.
Moi aussi je me sers de PDO_MySQL et quand j'essaie son code il fonctionne parfaitement. Le blocage est ailleurs.

Je suis aussi un débutant. Je me prononce ici en toute humilité, en attendant l'opinion d'un expert qui pourra trancher. Pour ma part je me suis habitué à la syntaxe de PDO_MYSQL et ça ne me tente pas du tout d'apprendre MySQLi, que je trouve bizarre.
a+

Re: Envoyer des données d'un formulaire vers une base de données

par thuillier-charmet » 29 févr. 2020, 18:33

bon je suis super vrai débutant aussi et j'ai vu ton post qui est un peu aprés le mien , je travaille sur le même problème car avec php 7 il faut utiliser mysqli
le lien interessant est ici
https://www.linuxtricks.fr/wiki/php-pas ... es-de-base

euh sous toutes réserves (je bidouilles c'est pas mon job :!: )

Re: Envoyer des données d'un formulaire vers une base de données

par Lenny » 28 févr. 2020, 22:12

Re: Envoyer des données d'un formulaire vers une base de données

par Lenny » 28 févr. 2020, 22:10

Il y a id, pseudo, mail et motdepasse.
Je ne comprends pas comment afficher les erreurs, désolé je débute..

Re: Envoyer des données d'un formulaire vers une base de données

par or 1 » 28 févr. 2020, 22:07

il faut afficher les erreurs pour debuguer :
https://www.php.net/manual/fr/pdostatem ... orinfo.php

quelle est la structure de la table membres ?

Re: Envoyer des données d'un formulaire vers une base de données

par Lenny » 28 févr. 2020, 22:01

Non ça m'écris simplement: Votre compte a bien été crée. Mais rien n’apparaît dans la base de donnée..
https://cdn.discordapp.com/attachments/ ... nknown.png
https://cdn.discordapp.com/attachments/ ... rreur1.PNG

Re: Envoyer des données d'un formulaire vers une base de données

par or 1 » 28 févr. 2020, 21:14

un message d'erreur s'affiche ? si oui, lequel ?

Envoyer des données d'un formulaire vers une base de données

par Lenny » 28 févr. 2020, 21:03

Bonjour à tous, je m'appelle Lenny et je débute en programmation. Je voudrais créer un site mais tout d'abord, il faut que je crée un formulaire d'inscription. J'ai donc écrit ce code:

Code : Tout sélectionner

<?php $bdd = new PDO('mysql:host=localhost;dbname=espace_membre', 'root', ''); if(isset($_POST['forminscription'])) { $pseudo = htmlspecialchars($_POST['pseudo']); $mail = htmlspecialchars($_POST['mail']); $mail2 = htmlspecialchars($_POST['mail2']); $mdp = sha1($_POST['mdp']); $mdp2 = sha1($_POST['mdp2']); if(!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2'])) { $pseudolength = strlen($pseudo); if($pseudolength <= 255) { if($mail == $mail2) { if(filter_var($mail, FILTER_VALIDATE_EMAIL)) { if($mdp == $mdp2) { $insertmbr = $bdd->prepare("INSERT INTO membres(pseudo, mail, motdepasse) VALUES(?, ?, ?)"); $insertmbr->execute(array($pseudo, $mail, $mdp)); $erreur = "Votre compte a bien été crée."; } else { $erreur = "Vos mots de passe ne correspondent pas."; } } else { $erreur = "Votre adresse e-mail n'est pas valide."; } } else { $erreur = "Vos adresses e-mail ne correspondent pas."; } } else { $erreur = "Votre pseudo ne doit pas dépasser 255 caractères."; } } else { $erreur = "Tous les champs doivent être complétés."; } } ?> <html> <head> <title>TUTO PHP</title> <meta charset="utf-8"> </head> <body> <div align="center"> <h2><u>S'inscrire</u></h2> <br> <form method="POST" action=""> <table> <tr> <td align="right"> <label for="pseudo"><u>Pseudo:</u></label> </td> <td> <input type="text" placeholder="Entrez un pseudo" name="pseudo" id="pseudo" size="11" value="<?php if(isset($pseudo)) { echo $pseudo; }?>"> </td> </tr> <tr> <td align="right"> <label for="mail"><u>Mail:</u></label> </td> <td> <input type="email" placeholder="Entrez une adresse e-mail" name="mail" id="mail" size="19" value="<?php if(isset($mail)) { echo $mail; }?>"> </td> </tr> <tr> <td align="right"> <label for="mail2"><u>Confirmation du Mail:</u></label> </td> <td> <input type="email" placeholder="Confirmez votre adresse e-mail" name="mail2" id="mail2" size="23" value="<?php if(isset($mail2)) { echo $mail2; }?>"> </td> </tr> <tr> <td align="right"> <label for="mdp"><u>Mot de passe:</u></label> </td> <td> <input type="password" placeholder="Entrez un mot de passe" name="mdp" id="mdp" size="16"> </td> </tr> <tr> <td align="right"> <label for="mdp2"><u>Confirmation du Mot de passe:</u></label> </td> <td> <input type="password" placeholder="Confirmez votre mot de passe" name="mdp2" id="mdp2" size="22"> </td> </tr> <tr> <td></td> <td> <br> <input type="submit" value="Valider" name="forminscription"> </td> </tr> </table> </form> <?php if(isset($erreur)) { echo '<font color="red">'.$erreur."</font>"; } ?> </div> </body> </html>
Mais quand j'appuis sur Valider, ça n'envoi pas les données dans ma base de donnée. Merci d'avance.