Impasse avec PDO

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 : Impasse avec PDO

Re: Impasse avec PDO

par Ryle » 13 oct. 2015, 09:48

Bonjour,

D'après ton code, le formulaire envoi les données saisie vers une page nommée "form.php" (<form method='post' action='form.php'>) et qui se trouve dans le même répertoire que la page que tu es en train de consulter. Est-ce bien comme ça que s'appelle ton script ? (Attention : les majuscules/minuscules sont importantes)

Re: Impasse avec PDO

par abdoulayecoumba » 12 oct. 2015, 21:32

s'agit il du fichier que j'ai créé au début avec Notap++ et que j'ai logé dans le repertoire www de Wamp ?

Re: Impasse avec PDO

par or 1 » 12 oct. 2015, 20:20

ton fichier php ne s’appelle vraisemblablement pas form.php

Re: Impasse avec PDO

par abdoulayecoumba » 12 oct. 2015, 20:09

Bonsoir, j'ai essayé de rectifier mon code comme vous me l'aviez suggère maintenant wamp ne me signale plus aucune erreur et m'affiche correctement mon formulaire , le seul problème auquel je suis actuellement confronté est que lorsque je tente de saisir des informations avec le formulaire, dés que j'appuis sur le bouton ''ENVOYER'' le navigateur m'affiche ''PAGE WEB INTROUVABLE''
quel est le problème

Code : Tout sélectionner

<html> <head> </head> <body> <?php if ( isset( $_POST['prenom'] )) { $prenom = $_POST['prenom'] ; $nom = $_POST['nom'] ; $adresse = $_POST['adresse'] ; $bdd = new PDO('mysql:host=localhost;dbname=amateurs','root',''); $req = $bdd->prepare("INSERT INTO agent(prenom,nom,adresse) VALUE (:prenom, :nom, :adresse)"); $req->bindValue(':prenom', $prenom, PDO::PARAM_STR); $req->bindValue(':nom', $nom, PDO::PARAM_STR); $req->bindValue(':adresse', $adresse, PDO::PARAM_STR); $req->execute(); echo'Merci de vous être enregistré'; } else { echo" // Le formulaire // <form method='post' action='form.php'> Prenom : <br/> <input type='text' name='prenom'/> <br/> Nom : <br/> <input type='text' name='nom'/> <br/> Adresse : <br/> <input type='text' name='adresse'/> <input type='submit' value='Inscription'/> </form> "; } ?> </body> </html>

Re: Impasse avec PDO

par Ryle » 12 oct. 2015, 09:31

Bonjour,

L'erreur vient du fait qu'il manque les apostrophes autour des noms de tes paramètres lors de l'appel à bindValue() afin que php les considère comme des chaines de caractères et non comme des variables. Par ailleurs, tu as ajouté ces apostrophes autour de tes variables contenant les valeurs, résultat, c'est la chaine et non la valeur contenue dans la variable qui serait utilisée :)
// utilise 
$req->bindValue(':prenom', $prenom, PDO:ARAM_STR);
// au lieu de 
$req->bindValue(:prenom, '$prenom', PDO: ARAM_STR);

http://php.net/manual/fr/pdostatement.bindvalue.php

Re: Impasse avec PDO

par abdoulayecoumba » 12 oct. 2015, 00:22

j'ai pu essayé de faire de construire ceci pour resoudre mon probleme quelqu'un pourrait il regarder et me rectifier s'il y'a lieu
Wamp me signale une erreur à la ligne l 31 c'est au niveau de la ligne '' $req->bindValue(:prenom, '$prenom', PDO: ARAM_STR); ''
j'ai beau cherché mais je sais pas à quoi cela est dû
le méssage d'erreur est le suivant:
Parse error: syntax error, unexpected ':' in C:\wamp\www\Nouveau dossier (2)\Site2\mon quatrieme site.php on line 31
merci

[quotej'ai pu essayé de faire de construire ceci pour resoudre mon probleme quelqu'un pourrait il regarder et me rectifier s'il y'a lieu
Wamp me signale une erreur à la ligne l 31 c'est au niveau de la ligne '' $req->bindValue(:prenom, '$prenom', PDO: ARAM_STR); ''
j'ai beau cherché mais je sais pas à quoi cela est dû
le méssage d'erreur est le suivant:
Parse error: syntax error, unexpected ':' in C:\wamp\www\Nouveau dossier (2)\Site2\mon quatrieme site.php on line 31
merci

<html>
<head>
</head>
<body>

<?php

$prenom = $_POST['prenom'] ;
$nom = $_POST['nom'] ;
$adresse = $_POST['adresse'] ;

echo"

<form method='post' action='form.php'>
Prenom :
<br/>
<input type='text' name='prenom'/>
Nom :
<br/>
<input type='text' name='nom'/>
Adresse :
<br/>
<input type='text' name='adresse'/>
<input type='submit' value='Inscription'/>

</form>
";
$bdd = new PDO('mysql:host=localhost;dbname=amateurs','root','');

$req = $bdd->prepare("INSERT INTO agent(prenom,nom,adresse) VALUE (:prenom, :nom, :adresse)");
$req->bindValue(:prenom, '$prenom', PDO: ARAM_STR);
$req->bindValue(:nom, '$nom', PDO: ARAM_STR);
$req->bindValue(:adresse, '$adresse', PDO: ARAM_STR);
$req->execute();

?>

</body>
</html>][/quote

Impasse avec PDO

par abdoulayecoumba » 11 oct. 2015, 05:05

Bonjour,
je Suis nouveau en programmation et depuis un certain temps je me suis mis en PDO depuis que j'ai appris que la procédure de connexion à une base de donnée par Mysql_connect et Mysql_query étaient périmé
maintenant j’éprouve d'énormes difficultés et je ne trouve pas de solution par rapport à une question très simple , comment parvenir à alimenter une table contenue dans une base via un petit formulaire avec PDO . J'ai consulté toute la littérature ,les tutos , etc faits sur PDO je ne trouve rien qui puisse répondre à ma préoccupation.
J'ai créé une base de donnée avec phpMyadmin nommée  : ''amateurs'' et
une table nommée :''inscription''
La table est constituée des 3 champs suivants : ''prénom'' , ''nom'' , ''adresse''
Je comprend comment faire pour me connecter à la base j'ai parfaitement réussi cette étape avec le code suivant :

<?php
$bdd = new PDO('mysql:host=localhost;dbname=amateurs','root','');
echo"Connection a la base réuissie"
?>

maintenant je cherche quelqu'un pour m'aider à écrire le reste du code qui me permettra :
de construire un formulaire pour remplir ma table et la requette appropriée pour transférer les données saisies dans le formulaire vers la table.
Ca me sera d'un grand apport si quelqu'un pourrait m'apporter son aide
merci d'avance