Erreur de code de FORM a BDD

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 : Erreur de code de FORM a BDD

Re: Erreur de code de FORM a BDD

par GEDEON62 » 27 déc. 2013, 23:40

Merci bcp Moogli mais comme j'ai expliqué je suis débutant et pour moi sincèrement c'est du chinois mdr !!

Je suis spécialisé html et css et j'avoue que je savais le php plus difficile mais je pensais cette manie bcp accessible !!
Je veux juste mettre a jour ces 2 variables $prenom_mere et $nom_mere dans ma table famille via un formulaire, c'est tout...

Je te remerçie pour tes explications mais pour l'instant cela ne fait pas encore parti de mes champs de compétences. :oops:

Re: Erreur de code de FORM a BDD

par moogli » 27 déc. 2013, 22:02

salut,

Si tu as copier coller le code de sirakawa (sans corriger) tu dois avoir une erreur (il manque une ' ).
Si tu n'as pas de message d'erreur il faut activer l'affichage des erreurs (display_error = on) et afficher toutes les erreurs (error_reporting = E_ALL).

ensuite est ce qu'il y a un message d'erreur retourné par PDO ?

utilise un try catch autour du prépare et de l'execute.


il faut vérifier le retour de la méthode execute. si c'est false il faut afficher le message d'erreur disponible avec la méthode errorinfo() de ton objet $req (pdoStatement).

La gestion des erreurs est primordiale pour savoir ce qui ne va pas et donc les afficher correctement est obligatoire en developpement.


@sirakawa : la méthode execute, utilise quote pour les données qui lui sont données à manger. C'est d'ailleurs pour cela que les requêtes préparée sont utilisées a tors et à travers alors que la plus part du temps c'est inutile.


@+

Re: Erreur de code de FORM a BDD

par GEDEON62 » 27 déc. 2013, 21:04

Je n'ai toujours pas trouve avis aux amateurs ;.)

Re: Erreur de code de FORM a BDD

par GEDEON62 » 27 déc. 2013, 17:35

merci beaucoup SIrakawa !!!

le viens de tester avec tes corrections et cela ne fonctionne pas...
Je ne comprends pas pour quoi c'est si complexe simplement pour ajouter 2 entrées dans une table par un formulaire...
Il n'y a pas plus simple ?

J'avais intégrer le if pour signaler dès que l'on clique sur valider cela poste dans la base les infos...
Pourquoi "false" ? nous ne sommes pas sur du booléen...
Je pense que tu as raison il doit y avoir un problème de syntaxe avec le DPO...

En tout cas merci d'essayer de m'aider car je pensais qu'une petite manie' comme celle-ci ne réclamait pas autant de code :wink:

Re: Erreur de code de FORM a BDD

par sirakawa » 27 déc. 2013, 16:06

<?php
 if (isset ($_POST['valider']))
 {
 $req = $bdd->prepare('INSERT INTO famille(nom_mere, prenom_mere) VALUES(:nom_mere, :prenom_mere)');
 $req->execute(array(
 'nom_mere' => $nom_mere,
 'prenom_mere' => $prenom_mere,
 ));

 }
?> 
donne forcément des erreurs de ce genre:
Undefined variable: nom_mere in
Undefined variable: prenom_mere in
1) Tester si le bouton a bien été activé(isset ($_POST['valider'])) me semble peu utile, puisqu'il a fallu l'activer pour arriver ci.
2) Il faut extraire les données du $_POST:
$nom_mere = (isset ($_POST['nom_mere])) ? $_POST['nom_mere'] : false;
$prenom_mere = (isset ($_POST['prenom_mere])) ? $_POST['prenom_mere'] : false;
/*ou des tests plus sophistiqués*/
if (($prenom_mere !== false) and ($nom_mere != false))
{
$req = $bdd->prepare('INSERT INTO famille(nom_mere, prenom_mere) VALUES(:nom_mere, :prenom_mere)');
/*il faudait échapper les variables par quote de pdo http://www.php.net/manual/fr/pdo.quote.php, me semble-t-il*/
 $req->execute(array(
 'nom_mere' => $nom_mere,
 'prenom_mere' => $prenom_mere,
}
3) remplacer mysql par mysqli

Erreur de code de FORM a BDD

par GEDEON62 » 27 déc. 2013, 14:24

Bonjour,

Je suis débutant en php et j'essaye d'inscrire via un formulaire 2 infos dans ma base le nom de la mère et le prénom de la mère.
Ma base est bien crée avec Phpmyadmin et les champs nom_mere et prenom_mere sont dans une table famille
Pouvez-vous m'aider je ne trouve pas mon erreur... :cry:

D'avance merci !!!

Voici mon code


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Inscription famille</title>
</head>
<?php
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=mabase', 'root', 'root');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
?>

<html>
    <head><title>Formulaire d'inscription des familles</title></head>
    <body>
        <h2>Veuillez remplir le formulaire ci-dessous :</h2>
        <form name="inscription" method="post" action="inscription.php">
            <p>Nom de la mère: <input type="text" name="nom_mere"/> <br/></p>
            <p>Prénom de la mère : <input type="text" name="prenom_mere"/><br/></p>
            <input type="submit" name="valider" value="OK"/>
        </form>
<?php
        if (isset ($_POST['valider']))
        {
            $req = $bdd->prepare('INSERT INTO famille(nom_mere, prenom_mere) VALUES(:nom_mere, :prenom_mere)');
			$req->execute(array(
			'nom_mere' => $nom_mere,
			'prenom_mere' => $prenom_mere,
								));

        }
?>        
    </body>
</html>