Formulaire PHP et base de donnée PHPMYADMIN

Fermé
-
Messages postés
2
Date d'inscription
lundi 22 avril 2013
Statut
Membre
Dernière intervention
1 août 2014
-
Bonjour, je suis tout ce qu'il y a de plus novice en php et je tente de créer un formulaire afin que les gens puissent s'inscrire à une newsletters. J'ai crée ma base de donnée qui est chez un hébergeur. Comment je fais pour que les données de mon formulaire s'enregistre dans ma base de donnée ?

Voici ce que j'ai de fait :

<?php

CREATE TABLE newsletters (
id int(100) NOT NULL auto_increment,
email varchar(150) NOT NULL default '',
nom varchar(150) NOT NULL default '',
date date NOT NULL default '0000-00-00',
PRIMARY KEY (id)
) TYPE=MyISAM;

?>

<form method="POST" action="inscription.php" name="monform">
<table width="64" border="1" cellspacing="2" cellpadding="0">
<tr>
<td>
Nom : <input type="text" name="nom" size="100" maxlength="150"><br />
Courriel : <input type="text" name="mail" size="100" maxlength="150"><br />
</td>
</tr>
</table>
<input type="submit" value="Envoyer">
</form>

J'espère que vous serez en mesure de me donner un petit coup de main.

Merci

17 réponses

Messages postés
174
Date d'inscription
mercredi 21 février 2007
Statut
Membre
Dernière intervention
21 mai 2008
51
Salut,

je vais te donner diférents liens très utiles.

Création d'une base de données & la modifier : https://openclassrooms.com/fr/courses#ss_part_1
Connexion à une base de données & récupérer des données : https://openclassrooms.com/fr/courses#ss_part_1
Ajouter, Modifier et Supprimer une données : https://openclassrooms.com/fr/courses#ss_part_1

Voila bonne chance et re-post si quelque chose est vraiment flou pour toi.
Bonjour,

merci beaucoup pour les liens, je suis allée voir, j'ai tout lu et je l'avoue, comprend pas très bien encore tout ce qui se passe. J'ai suivi pas mal tout à la lettre au mieux de mes connaissances et je n'arrive pas à trouver pourquoi cela ne marche pas ... le pire c'est que présentement c'est un problème de htlm je crois. Lorsque je clique sur mon lien pour que s'affiche ma page avec mes champs "nom" et "email" j'ai une erreur dans le bas de mon browser qui dit "error on page" et rien ne fonctionne. Sur mon système tout fonctionne et dès que je transfert le tout j'ai droit à ce message d'erreur. grrrr il y a des journées où on dirait qu'on est bon à rien.

Merci quand même pour votre aide, j'imagine qu'un jour je vais finir par savoir comment faire ...
Je t'envoi le tout :

Seulement te mensionner que je travail sur un hébergeur en linux (il n'accepte pas le php en windows).
Comme je le disais dans mon précédent courriel, quand je le test sur mon ordi ca fonctionne mais lors que je transfert le tout sur le web ca ne fonctionne pas. Si tu veux voir le résultat finale voici l'adresse www.barleinn.com tu cliques dans BAR (orange). Tu veras surement l'erreur dont je te parle.

<!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" />
<meta name="generator" content="Adobe GoLive" />
<title>Bar Billard Le Inn</title>
<link href="css/basic.css" rel="stylesheet" type="text/css" media="all" />
<csactions>
<csaction name="3bdd323" class="Open Window" type="onevent" val0="inscriptions.html" val1="" val2="700" val3="200" val4="true" val5="true" val6="true" val7="true" val8="true" val9="true" val10="true" urlparams="1"></csaction>
</csactions>
<csscriptdict import="import">
<script type="text/javascript" src="GeneratedItems/CSScriptLib.js"></script>
</csscriptdict>
<csactiondict>
<script type="text/javascript"><!--
CSAct'3bdd323' = new Array(CSOpenWindow,/*URL*/ 'inscriptions.html','',700,200,true,true,true,true,true,true,true);

// --></script>
</csactiondict>
</head>
<body leftmargin="0" marginheight="0" marginwidth="0" topmargin="0">
<div style="position:relative;width:779px;height:701px;margin:auto;-adbe-g:p;">
<div style="position:absolute;top:0px;left:0px;width:778px;height:153px;">
<img src="images/bar/site-orange_01.jpg" alt="" height="153" width="778" usemap="#site-orange_01" border="0" /></div>
<div style="position:absolute;top:153px;left:0px;width:256px;height:153px;">
<img src="images/bar/site-orange_02.jpg" alt="" height="153" width="256" border="0" /></div>
<div style="position:absolute;top:153px;left:256px;width:522px;height:51px;">
<csobj csref="../web-data/Components/Menu_orange.html" h="51" occur="32" t="Component" w="522"><img src="images/bar/site-orange_03.jpg" alt="" height="51" width="522" usemap="#site-bleu_03" border="0" /><map name="site-bleu_03"><area shape="rect" coords="433,0,505,33" href="barcontact.html" alt="" /><area shape="rect" coords="342,0,414,33" href="baremploi.html" alt="" /><area shape="rect" coords="253,0,325,33" href="galeriebar/index.php" alt="" /><area shape="rect" coords="163,1,235,34" href="barservices.html" alt="" /><area shape="rect" coords="78,0,146,33" href="bar.html" alt="" /></map></csobj></div>
<div style="position:absolute;top:204px;left:256px;width:522px;height:144px;">
<img src="images/bar/site-orange_04.jpg" alt="" height="144" width="522" border="0" /></div>
<div style="position:absolute;top:306px;left:0px;width:256px;height:394px;">
<img src="images/bar/site-orange_05.jpg" alt="" height="394" width="256" usemap="#site-orange_05ee9341" border="0" /></div>
<div style="position:absolute;top:348px;left:440px;width:338px;height:352px;">
<img src="images/bar/site-orange_07.jpg" alt="" height="352" width="338" border="0" /></div>
<div style="position:absolute;top:546px;left:256px;width:184px;height:154px;">
<img src="images/bar/site-orange_08.jpg" alt="" height="154" width="184" border="0" /></div>
<div style="position:absolute;top:348px;left:256px;width:184px;height:198px;">
<img src="images/bar/site-orange_06.jpg" alt="" height="198" width="184" border="0" /></div>
</div>
<map name="site-orange_05ee9341"><area onclick="CSAction(new Array(/*CMP*/'3bdd323'));return CSClickReturn()" shape="rect" coords="39,243,219,319" href="#" alt="" csclick="3bdd323" /></map>
<p></p>
</body>

</html>
Messages postés
174
Date d'inscription
mercredi 21 février 2007
Statut
Membre
Dernière intervention
21 mai 2008
51
Ok sa marche :P

Déja pour commencer ce code :


<?php

CREATE TABLE newsletters (
id int(100) NOT NULL auto_increment,
email varchar(150) NOT NULL default '',
nom varchar(150) NOT NULL default '',
date date NOT NULL default '0000-00-00',
PRIMARY KEY (id)
) TYPE=MyISAM;

?>

doit ètre executer une fois seulement afin de créer la table après tu peu le suprimer.

Maintenant montre moi le contenue (entier) de ta page html.

On va réussir lol
Pour une raison inconnu, ca semble marcher. Lorsque je clique sur mon lien j'ai ma windows pop-up qui apparaît mais je ne comprend pas très bien le message d'erreur que m'envoi le système lorsque je fais "envoyer"

Voici le code :

<?php

$em = '';
$nom = '';

mysql_connect($hostname = "localhost" , $username = "Innnews", $password = "b362436Inn");
mysql_select_db("Innnews")
mysql_query("INSERT INTO "newsletters" VALUES(email,nom,date) VALUES('$em','$nom',NOW())";
mysql_close();
?>

Merci énormément pour ton aide !
Messages postés
174
Date d'inscription
mercredi 21 février 2007
Statut
Membre
Dernière intervention
21 mai 2008
51
C'est sur quel page ou le problème se situ ?
Bonjour,

La page où il y a le lien pour l'inscription est la suivante : www.barleinn.com/bar.html (inscrivez-vous ...) dans le bas de la page.

Lorsque j'entre les informations dans le formulaire (nom et courriel) et que je clique sur envoyer j'ai le message suivant qui apparaît :

Parse error: parse error, unexpected T_VARIABLE in /home/content/b/a/r/barleinn/html/newsletters.php on line 8

Voici le code pour ma page d'inscription :


<!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" />
<meta name="generator" content="Adobe GoLive" />
<title>Inscrivez-vous à la newsletters du Inn</title>
<link href="css/basic.css" type="text/css" rel="stylesheet" media="all" />
</head>

<body marginheight="0" topmargin="0">
<p><font face="Verdana, Arial, Helvetica, sans-serif">Inscrivez-vous afin de recevoir les dernières nouvelles du Inn par courriel.</font><form method="POST" action="newsletters.php" name="monform">
<table width="64" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif">Nom</font> : <input type="text" name="nom" size="100" maxlength="150"><br />
<font face="Verdana, Arial, Helvetica, sans-serif">Courriel :</font> <input type="text" name="mail" size="100" maxlength="150"><br />
</td>
</tr>
</table>
<p><input type="submit" value="Envoyer"></p>
</form></p>
</body>

</html>



Pour ce qui est du reste tout fonctionne maintenant, il ne me reste que cette erreur que je ne comprend pas.

Voici le fichier php qui est supposée envoyer les informations à la base de donnée :

<?php

$em = '';
$nom = '';

mysql_connect($hostname = "localhost" , $username = "Innnews", $password = "**********");
mysql_select_db("Innnews")
$q = "INSERT INTO newsletters (email,nom,date) VALUES('$em','$nom',NOW())";
mysql_query($q);
mysql_close();
?>
Messages postés
174
Date d'inscription
mercredi 21 février 2007
Statut
Membre
Dernière intervention
21 mai 2008
51
ok mais il me faudrait la page newsletters.php en entier stop :P
Je crois que j'ai compris une petite chose avec ce que tu m'as dit à propos du fichier complet. Je t'envoi donc ce que je crois être correct. J'ai par contre encore une erreur qui dit "Parse error: parse error, unexpected T_VARIABLE in /home/content/b/a/r/barleinn/html/newsletters.php on line 10"

C,est quoi au juste comme erreur ?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<?php

$em = '';
$nom = '';

mysql_connect($hostname = "localhost" , $username = "Innnews", $password = "b362436Inn");
mysql_select_db("Innnews")
$q = "INSERT INTO newsletters (email,nom,date) VALUES('$em','$nom',NOW())";
mysql_query($q);
mysql_close();
?>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta name="generator" content="Adobe GoLive" />
<title>Inscrivez-vous à la newsletters du Inn</title>
<link href="css/basic.css" type="text/css" rel="stylesheet" media="all" />
</head>

<body marginheight="0" topmargin="0">
<p><font face="Verdana, Arial, Helvetica, sans-serif">Inscrivez-vous afin de recevoir les dernières nouvelles du Inn par courriel.</font><form method="POST" action="newsletters.php" name="monform">
<table width="64" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif">Nom</font> : <input type="text" name="nom" size="100" maxlength="150"><br />
<font face="Verdana, Arial, Helvetica, sans-serif">Courriel :</font> <input type="text" name="mail" size="100" maxlength="150"><br />
</td>
</tr>
</table>
<p><input type="submit" value="Envoyer"></p>
</form></p>
</body>

</html>
Messages postés
174
Date d'inscription
mercredi 21 février 2007
Statut
Membre
Dernière intervention
21 mai 2008
51
Bon pour commencer édit tes post pour éviter de montrer ton mot de passe :P

Après je vais te montrer comment je ferait car je comprend rien à comment sont organisés tes pages ;)

Créer une page de formulaire newsletters.html

<!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" />
<meta name="generator" content="Adobe GoLive" />
<title>Inscrivez-vous à la newsletters du Inn</title>
<link href="css/basic.css" type="text/css" rel="stylesheet" media="all" />
</head>

<body marginheight="0" topmargin="0">
<p><font face="Verdana, Arial, Helvetica, sans-serif">Inscrivez-vous afin de recevoir les dernières nouvelles du Inn par courriel.</font><form method="POST" action="newsletters.php" name="monform">
<table width="64" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif">Nom</font> : <input type="text" name="nom" size="100" maxlength="150"><br />
<font face="Verdana, Arial, Helvetica, sans-serif">Courriel :</font> <input type="text" name="mail" size="100" maxlength="150"><br />
</td>
</tr>
</table>
<p><input type="submit" value="Envoyer"></p>
</form></p>
</body>

</html>

Puis une page php newsletters.php ou tu peu insérer le design de ton site :

<?php
$em = $_POST['mail'];
$nom = $_POST['nom'];

mysql_connect($hostname = "***" , $username = "***", $password = "***");
mysql_select_db("***")
mysql_query("INSERT INTO newsletters VALUES('" . $em . "','" . $nom . "',NOW())";);
mysql_close();
?>

Je conais pas NOW() donc peu pas t'aider sur sa :P Sinon c'est un minimum de code qui te permet de voir si sa marche et rendre ton code plus clair pour éviter les erreurs.
Merci beaucoup pour le hint, j'avais complètement oublié que j'avais déjà inscrit les informations dans mon php. Pour ce qui est du NOW, je vais avouer que moi non plus je ne suis pas certaine de ce que sais. Je vais avouer que j'ai tentée de prendre un code source sur un site pour tenter de m'aider. En réalité c'est la date qui serait supposé être là. Je vais chercher voir ce que je pourrais mettre à la place pour que ce soit plus clair.

Merci encore !
Messages postés
174
Date d'inscription
mercredi 21 février 2007
Statut
Membre
Dernière intervention
21 mai 2008
51
De rien sinon je te conseil d'aller voir ce tuto pour la date :

https://openclassrooms.com/fr/courses#ss_part_1

Bonne chance et n'hesite pas à poster si sa pose encore problème :P

@ bientot
He oui encore moi,

j'ai un dernier problème ... tout semble fonctionner mais lorsque je test le tout j'ai la réponse "pas de connection" et les données ne s'enregistre pas dans ma base de donnée. J'ai recommencée le travail afin d'essayer de trouver les erreurs. Je te renvoi les codes que j'ai fait. (en beaucoup moins mélangeant)

NEWSLETTERS.HTML
<!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" />
<meta name="generator" content="Adobe GoLive" />
<title>Inscrivez-vous à la newsletters du Inn</title>
<link href="file:////Serveur/cezam%20clients/000%20071%20-%20Bar%20Le%20Inn/Site%20Web%20-%20Inn/Le%20Inn/web-content/css/basic.css" type="text/css" rel="stylesheet" media="all" />
</head>
<body marginheight="0" topmargin="0">
<p><font face="Verdana, Arial, Helvetica, sans-serif">Inscrivez-vous afin de recevoir les dernières nouvelles par courriel.</font><form method="POST" action="newsletters.php" name="inscription">
<table width="64" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif">Nom</font> : <input type="text" name="nom" size="100" maxlength="150"><br />
<font face="Verdana, Arial, Helvetica, sans-serif">Courriel :</font> <input type="text" name="mail" size="100" maxlength="150"><br />
</td>
</tr>
</table>
<p><input type="submit" value="Envoyer"></p>
</form></p>
</body>
</html>


NEWSLETTERS.PHP
<?php
$mabasededonnee = "newsletters";

$connection = mysql_connect("10.6.166.184","newshantee","news362436H");
// test la connection
if ( ! $connection )
die ("connection impossible");
// Connecte la base
mysql_select_db($mabasededonnee) or die ("pas de connection");


$em = ''; // email
$nom = ''; // Nom ou auteur ou pseudo ou ...

// insertion de la news dans sa table:
$q = "INSERT INTO newsletters (email,nom,date) VALUES('$em','$nom',date(d/m/y))";
mysql_query($q);

?>

Encore un gros merci pour tout l'aide.
salut Marie,
vous avez un des noms les plus magnifiques.
Bon µ, pour votre problème, C smple comme bonjour.
Le code du formulaire est correcte, mais il faut céer ta table news letters avec Phpmyadmin, mais pas dans le code du
formulaire.
- enlève la syntaxe de création de ta Table
- crée tes table avec Easyphp dans l'interface Administation
- dans le code du formulaire, Ajoute:
<?php
mysql_connect("localhost","utlisateur","mot de passe");
mysql_select_db("nom de la base de données");
mysql_query("INSERT INTO nom table VALUES('','','','','',)");
mysql_close();
?>
je m'explique:
pour ajouter des données il faut que tu utilise cette rêquete mysql_query.
on j'ai mis VALUES tu ajoutes tes infos qui sont sépérées par deux apostrophes c'est à dire ' '
tu en ajoutent autant que tu veux.
d'abord, t'as un bon nom vraiment comme a dit notre ami, et puis ton problème là c'est que tu dois avoir un code comme celui là, tu peux le copier coller et il marchera car c'est le tien avec mes modifications:P

<!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-6" />
<meta name="generator" content="Adobe GoLive" />
<title>Inscrivez-vous à la newsletters du Inn pour recevoir nos dernière news</title>
<link href="file:////Serveur/cezam%20clients/000%20071%20-%20Bar%20Le%20Inn/Site%20Web%20-%20Inn/Le%20Inn/web-content/css/basic.css" type="text/css" rel="stylesheet" media="all" />
</head>
<body marginheight="0" topmargin="0">
<p><font face="Verdana, Arial, Helvetica, sans-serif">Inscrivez-vous afin de recevoir les dernières nouvelles par courriel.</font><form method="POST" action="newsletters.php" name="inscription">
<table width="64" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-sherif">Nom:</font> <input type="text" name="nom" size="100" maxlength="150"><br />
<font face="Verdana, Arial, Helvetica, sans-sherif">Courriel: </font> <input type="text" name="mail" size="100" maxlength="150"><br />
</td>
</tr>
</table>
<p><input type="submit" value="Envoyer"></p>
</form></p>
</body>
</html>



Une autre chose que j'ai remarqué est que tu ne mets pas de code pour les accents mais tu les écrits comme dans un fichier texte, pour cela je pourrai t'aider:P, a savoir le code de chaque accent.
é=&<B>e</B>grave;
è=&<B>e</B>acute;
ê=&<B>e</B>circ;

Et rappelle toi que chaque fois que tu veux par exemple avoir un a ou u ou o avec l'une des accents, tu n'as qu'ai remplacé la lettre en gras dans le code par la lettre ou tu veux insérer un accent.
Bonne chance et n'hesite pas à poster si sa pose encore problème :P

@ bientot
vous parlez tjrs de localhost pour se connecter a la base de donne mais localhost seulement pour faire des teste
localemment localhost cest un serveur cree localemment sur notre post
mais ma question comment faire si on ai sur un hebergeur
bon j crer un compte sur www.justfree.com
j ai cree ma base sur cet hebergeu
alors je veux me connecter a cet hebergeurr
j'ai une base de donnée deja créer et je veut ajouter des table a partir mon site web sans passer au phpadmin
Messages postés
2
Date d'inscription
lundi 22 avril 2013
Statut
Membre
Dernière intervention
1 août 2014
1
je ne sais pas si on peut insérer le script SQL dans php comme vous venez de le faire