Création formulaire php, mysql...
Résolu/Fermé
Neffast
Messages postés
137
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
7 décembre 2010
-
11 mai 2010 à 18:45
gabbermaniac Messages postés 137 Date d'inscription mercredi 4 mars 2009 Statut Membre Dernière intervention 23 août 2011 - 12 mai 2010 à 00:02
gabbermaniac Messages postés 137 Date d'inscription mercredi 4 mars 2009 Statut Membre Dernière intervention 23 août 2011 - 12 mai 2010 à 00:02
A voir également:
- Création formulaire php, mysql...
- Creation compte gmail - Guide
- Création compte google - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Création organigramme - Guide
- Formulaire de réclamation facebook - Guide
21 réponses
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 504
11 mai 2010 à 19:01
11 mai 2010 à 19:01
Neffast
Messages postés
137
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
7 décembre 2010
3
11 mai 2010 à 19:05
11 mai 2010 à 19:05
Merci pour ce commentaire, qui ne m'aide pas.
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 504
11 mai 2010 à 19:09
11 mai 2010 à 19:09
Comment ça il ne t'aide pas ?
Désolé, mais pour moi aider ce n'est pas donner des scripts tout faits.
Désolé, mais pour moi aider ce n'est pas donner des scripts tout faits.
Neffast
Messages postés
137
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
7 décembre 2010
3
11 mai 2010 à 19:16
11 mai 2010 à 19:16
Oui, mais le tuto indique comment créer un formulaire qui renvoi les données sur un .php et je ne vois pas où c'est citer comment faire pour que cela s'enregistre sur la bdd mysql...
Donc, cela ne m'aide pas. ;)
Donc, cela ne m'aide pas. ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 504
11 mai 2010 à 19:20
11 mai 2010 à 19:20
Désolé, je pensais que tu connaissais déjà le PHP.
Pour apprendre ce langage :
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql
Pour apprendre ce langage :
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql
Neffast
Messages postés
137
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
7 décembre 2010
3
11 mai 2010 à 21:01
11 mai 2010 à 21:01
Je n'y arrive pas, j'ai fait un petit truc...
sur index.php
(le formulaire) :
Cible.php qui répond au formulaire :
Help, please... :)
sur index.php
(le formulaire) :
<form action="cible.php" method="post"> <p> Pseudo <input type="pseudo" name="pseudo" /> Message <input type="message" name="message" /> <input type="submit" value="Valider" /> </p> </form>
Cible.php qui répond au formulaire :
<?php prepare('INSERT INTO vdb(pseudo, message) VALUES(:nom, :possesseur, :console, :prix, :nbre_joueurs_max, :commentaires)'); execute(array( 'pseudo' => $pseudo, 'message' => $message )); echo 'Le message a bien été ajouté !'; ?>
Help, please... :)
gabbermaniac
Messages postés
137
Date d'inscription
mercredi 4 mars 2009
Statut
Membre
Dernière intervention
23 août 2011
12
11 mai 2010 à 21:10
11 mai 2010 à 21:10
dans le cible.php
tu sécurises et crées deux variables qui vont te servir pour le INSERT
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST["pseudo"]));
$message = mysql_real_escape_string(htmlspecialchars($_POST["message"]));
tu insères dans ta table vdb le psuedo et le message envoyé
$bdd->exec('INSERT INTO vdb(pseudo, message) VALUES('$speudo', '$message'));
tu sécurises et crées deux variables qui vont te servir pour le INSERT
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST["pseudo"]));
$message = mysql_real_escape_string(htmlspecialchars($_POST["message"]));
tu insères dans ta table vdb le psuedo et le message envoyé
$bdd->exec('INSERT INTO vdb(pseudo, message) VALUES('$speudo', '$message'));
Neffast
Messages postés
137
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
7 décembre 2010
3
11 mai 2010 à 21:16
11 mai 2010 à 21:16
Donc dans cible.php
je dois retrouver :
<?php
prepare('INSERT INTO vdb(pseudo, message) VALUES(:pseudo, :message)');
execute(array(
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST["pseudo"]));
$message = mysql_real_escape_string(htmlspecialchars($_POST["message"]));
$bdd->exec('INSERT INTO vdb(pseudo, message) VALUES('$speudo', '$message'));
));
echo 'Le message a bien été ajouté !';
?>
Si oui, cela ne marche pas...
je dois retrouver :
<?php
prepare('INSERT INTO vdb(pseudo, message) VALUES(:pseudo, :message)');
execute(array(
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST["pseudo"]));
$message = mysql_real_escape_string(htmlspecialchars($_POST["message"]));
$bdd->exec('INSERT INTO vdb(pseudo, message) VALUES('$speudo', '$message'));
));
echo 'Le message a bien été ajouté !';
?>
Si oui, cela ne marche pas...
gabbermaniac
Messages postés
137
Date d'inscription
mercredi 4 mars 2009
Statut
Membre
Dernière intervention
23 août 2011
12
11 mai 2010 à 21:20
11 mai 2010 à 21:20
il faut déjà que tu lui indique quel est ta bdd
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
et tu n'a pas besoin d'une requête préparé donc pas de prepare ni de execute, il faut virer ces lignes
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
?>
et tu n'a pas besoin d'une requête préparé donc pas de prepare ni de execute, il faut virer ces lignes
Neffast
Messages postés
137
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
7 décembre 2010
3
11 mai 2010 à 21:29
11 mai 2010 à 21:29
Donc je met juste :
Message d'erreur : Parse error: syntax error, unexpected T_VARIABLE in /home/scryaa/domains/netoall.org/public_html/farnem/cible.php on line 19
<?php $pseudo = mysql_real_escape_string(htmlspecialchars($_POST["pseudo"])); $message = mysql_real_escape_string(htmlspecialchars($_POST["message"])); $bdd->exec('INSERT INTO vdb(pseudo, message) VALUES('$speudo', '$message')); ?>
Message d'erreur : Parse error: syntax error, unexpected T_VARIABLE in /home/scryaa/domains/netoall.org/public_html/farnem/cible.php on line 19
gabbermaniac
Messages postés
137
Date d'inscription
mercredi 4 mars 2009
Statut
Membre
Dernière intervention
23 août 2011
12
11 mai 2010 à 21:37
11 mai 2010 à 21:37
corrige le $speudo en $pseudo dans VALUES
Neffast
Messages postés
137
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
7 décembre 2010
3
11 mai 2010 à 21:38
11 mai 2010 à 21:38
Toujours le même problème :(
Parse error: syntax error, unexpected T_VARIABLE in /home/scryaa/domains/netoall.org/public_html/farnem/cible.php on line 19
Parse error: syntax error, unexpected T_VARIABLE in /home/scryaa/domains/netoall.org/public_html/farnem/cible.php on line 19
gabbermaniac
Messages postés
137
Date d'inscription
mercredi 4 mars 2009
Statut
Membre
Dernière intervention
23 août 2011
12
11 mai 2010 à 21:43
11 mai 2010 à 21:43
$bdd->exec('INSERT INTO vdb(pseudo, message) VALUES('$pseudo', '$message')');
il manque un '
il manque un '
Neffast
Messages postés
137
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
7 décembre 2010
3
11 mai 2010 à 21:47
11 mai 2010 à 21:47
En ayant ça dans cible.php :
avec biensur les infos de connexion a la bdd avant,
Le même message d'erreur apparait!
<?php $pseudo = mysql_real_escape_string(htmlspecialchars($_POST["pseudo"])); $message = mysql_real_escape_string(htmlspecialchars($_POST["message"])); $bdd->exec('INSERT INTO vdb(pseudo, message) VALUES('$pseudo', '$message')'); ?>
avec biensur les infos de connexion a la bdd avant,
Le même message d'erreur apparait!
Neffast
Messages postés
137
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
7 décembre 2010
3
11 mai 2010 à 21:49
11 mai 2010 à 21:49
Peut-être car il n'y a rien qui signale de créer dans le champ "id" de la bdd l'id qui suit le précédent...
Enfin je ne pense pas, ce message d'erreur est pour un problème d'une , ou d'un ' ou autre je crois..
Enfin je ne pense pas, ce message d'erreur est pour un problème d'une , ou d'un ' ou autre je crois..
gabbermaniac
Messages postés
137
Date d'inscription
mercredi 4 mars 2009
Statut
Membre
Dernière intervention
23 août 2011
12
11 mai 2010 à 22:08
11 mai 2010 à 22:08
sans passer par pdo ça donne ça;
<?php
mysql_connect("localhost","root","");
mysql_select_db("vdb");
mysql_query('SET NAMES UTF8');
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$sql= "INSERT INTO vdb (pseudo, message) VALUES('$pseudo', '$message')";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
?>
<?php
mysql_connect("localhost","root","");
mysql_select_db("vdb");
mysql_query('SET NAMES UTF8');
$pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
$message = mysql_real_escape_string(htmlspecialchars($_POST['message']));
$sql= "INSERT INTO vdb (pseudo, message) VALUES('$pseudo', '$message')";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
?>
Neffast
Messages postés
137
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
7 décembre 2010
3
11 mai 2010 à 22:11
11 mai 2010 à 22:11
SUPER !!!!! Ca marche.
Comment mettre un message de reussite "Votre message a bien été mis"
Comment mettre un message de reussite "Votre message a bien été mis"
gabbermaniac
Messages postés
137
Date d'inscription
mercredi 4 mars 2009
Statut
Membre
Dernière intervention
23 août 2011
12
11 mai 2010 à 22:18
11 mai 2010 à 22:18
tu mets cela a la suite:
echo 'Le message a bien été ajouté !';
ensuite tu va devoir sans doute redirigé puisque maintenant l'internaute se trouve dans la page cible.php
donc la dernière ligne sur cible est :
header("Location: index.php"); //le lien ou se trouve le formulaire
echo 'Le message a bien été ajouté !';
ensuite tu va devoir sans doute redirigé puisque maintenant l'internaute se trouve dans la page cible.php
donc la dernière ligne sur cible est :
header("Location: index.php"); //le lien ou se trouve le formulaire
Neffast
Messages postés
137
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
7 décembre 2010
3
11 mai 2010 à 22:37
11 mai 2010 à 22:37
Just super!
Un grand merci à toi!!!
Un grand merci à toi!!!
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 504
11 mai 2010 à 22:44
11 mai 2010 à 22:44
@gabbermaniac : le problème n'est pas de PDO, autant l'utiliser plutôt que les fonctions "mysql_". Le problème c'est que dans la requête SQL tu entoures les chaines par des guillemets simples, hors, ta requête SQL est elle-même entre guillemets simples.
Voilà mon script avec PDO :
Voilà mon script avec PDO :
<?php $formulaire = <<<END <form method="post" action=""> <p> <label for="pseudo">Pseudo :</label><br/> <input type="text" name="pseudo" id="pseudo" /> </p> <p> <label for="message">Message :</label><br/> <textarea name="message" id="message" cols="45" rows="8"></textarea> </p> <p> <input type="submit" value="Envoyer" /> </p> </form> END; if(!empty($_POST)) { $pseudo = trim($_POST['pseudo']); $message = trim($_POST['message']); if(empty($pseudo) || empty($message)) echo $formulaire; else { try { $pdo = new PDO('mysql:host=localhost;dbname=vdb','root',''); $sql = 'INSERT INTO 'vdb'('Pseudo','Message') VALUES('.$pdo->quote($pseudo).','.$pdo->quote($message).')'; $pdo->exec($sql); echo 'Le message a bien été ajouté !'; } catch(PDOException $e) { echo 'Une erreur s\'est produite'; } } } else echo $formulaire; ?>