Page 1 sur 2

Bouton envoyer de mon formulaire

Posté : 30 déc. 2009, 09:43
par Maya27
Bonjour,

Je suis toute nouvelle et débutante en php.

Je dois créer un livre d'or. Pour cela, j'ai déjà créee ma page config.php avec comme USER= root, HOST=localhost et le nom de ma base de données et password =""
J'ai aussi créee un formulaire.html.
Dans ce formulaire, j'ai donc le bouton envoyer (et annuler). Je dois créer (je pense) une page envoyer.php qui enverra le tout sur ma bdd (sur phpmyadmin).
Le pb c'est que là je cale, je ne sais pas comment du tout faire vu que je débute..

Auriez-vous des idées, des cours ou autre qui pourraient m'aider?

merci bien.

Ah encore une chose, je dois faire en sorte que les visiteurs de mon livre d'or puissent écrire mais pas voir les messages des autres visiteurs.. j'ai vu un truc avec hidden est-ça?

merci.

Maya

Re: Bouton envoyer de mon formulaire

Posté : 30 déc. 2009, 10:17
par macgawel
Bonjour et bienvenue dans le monde merveilleux de la programmation PHP !

Un truc que tu ne dis pas : tu as de l'expérience en programmation ?

Avant tout, va voir du côté des tutoriels. Si tu débutes complétement, tu peux commencer par ici.

Si tu ne veux pas t'embêter, je te conseille de passer par une solution "prêt à porter" : CMS ou script récupéré sur le net.

Re: Bouton envoyer de mon formulaire

Posté : 30 déc. 2009, 10:29
par maya27
Bonjour

Merci pour ta réponse.
En effet je débute!! Je n'y connais pas grande chose.. j'ai appris quelques trucs via les cours sur le net ;)
ça m'a beucoup aidé en effet mais là je bloque ..

je vais aller voir les tutos :)
merci.

Re: Bouton envoyer de mon formulaire

Posté : 30 déc. 2009, 10:57
par Aureusms
Bonjour Maya27,

Bienvenue dans le monde du PHP, tu vas voir c'est pas très compliqué...
Tout d'abord, attaquer (cela s'appelle comme cela) une base avec les login/mot de passe root/"" c'est pas super super. Si tu reste en local sur easpyphp ou winamp server, pas de (trop) gros problème. Si tu mets cela en ligne, pas bien du tout.
Comme tu utilises phpmyadmin, tu as la possibilités de changer le mot de passe root assez facilement. Exerces toi sur ta base local et si tu te plantes, tu pourras tout réinstaller.
Dans PHPmyAdmin, va dans "privilèges" (j'espère qu'il est en français) puis sélectionne root, clique sur la petite icone avec le stylo puis en bas tu peux changer de mot de passe.
Le mieux est de créer carrément un autre user avec les accès dites "données". De ce fait, si tu te fais hacke le system de ton site, il n'auront le droit qu'à "SELECT, INSERT, UPDATE, DELETE, FILE" mais même cela tu peux le restreindre.
Si tu changes le mot de passe root, penses que PHPmyadmin doit aussi être changer. Si tu passes par le mode coockies, tu auras surement l'erreur #1045 - Accés refusé pour l'utilisateur: 'root'@'@localhost' (mot de passe: NON). Il faudra changer un des paramètres dans les fichiers de configurations de phpMyadmin et tu remplaces la ligne dans le fichier config.inc.php :$cfgServers[1]['password'] = 'tonnouveaumotdepasse' (bien sûr si tu es en local, sinon tu ne peux pas)

Concernant ton formulaire,
tu dois avoir :
<form method="post" action="envoyer.php">
<input type="text" name="ma_variable" value="ma_value" />
...ton formulaire
</form>
La première ligne t'indique que tu es en méthode POST et que tu pointes vers envoyer.php.
Dans cette page envoyer.php (qui doit se trouver dans la même racine que la page où se situe le formulaire sinon => erreur), tu interrogeras les variables de ton formulaire via $_POST["ma_variable"] = "ma value".

Pour continuer, il nous faut le formulaire que tu as créé puis envoyer.php pour le traitement. Avances de ce côté là et dès que tu bloques, reviens nous voir, nous serons ravi de te filer un coup de main.

Re: Bouton envoyer de mon formulaire

Posté : 30 déc. 2009, 11:06
par maya27
Merci vraiment pour les réponses!
Car ça fait 3 jours que je bloque et je commence à perdre patience!

voici mon formulaire :
(bon désolée comme j'ai dis, je débute donc je ne connais ps grand chose )
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                       "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<h1> <center> Formulaire </center> </h1>

<br>

</head>
<body>
<table>
<br>
<tr><td><b>Votre Pseudo: </b></td><td><input name='pseudo' type='text' size='50'></td></tr>
<tr><td><b>Votre mail: </b></td><td><input name='mail' type='text' size='50'></td></tr>

<tr><td><b>Votre message : </b></td><td><textarea name='texte' cols='50' rows='20'></textarea></td></tr>

<FORM method="POST" action="envoyer.php">
<tr><center><td><input name='annuler' type='reset' value='Annuler'></td></center>
<p align ="right" ><td><input name='soumettre' type='submit' value='Envoyer'></td></tr></p>

</table>
</form>
</body>
</html>
 


ensuite pour le envoyer.php et bien justement je bloque ..

j'ai commencé à faire ceci mais perso je n'y comprends pas grand chose .. bon je sais que c'est faux :oops: j'essqye de m'y mettre..mais je n'ai jamais été très bonne en programmation...

 <html>
	<head>
		<title> Envoyer </title>
	</head>
	<body>
	<?php
		$pseudo=$_POST['pseudo'];
		$mail=$_POST['mail'];
		$message=$_POST['message'];
		echo "valeurs" : $pseudo $mail $message;
		?>
	</body>
</html>




<?php

require "config.php";
mysql_connect(DBHOST,DBUSER,DBPASSWD);
mysql_select_db(DBNAME);


$livredor="message";
$nom=""; if(!empty($_POST["pseudo"]))
   $nom=addslashes($_POST["pseudo"]);
$email=""; if(!empty($_POST["mail"]))
   $email=$_POST["mail"];
   $email=""; if(!empty($_POST["mail"]))
   $email=$_POST["mail"];

$query = "INSERT INTO $livredor(pseudo,mail,message)";
$query .= " VALUES('$pseudo','$mail','$message')"; 

$result = mysql_query($query);
 mysql_close(); 

?>


merci

Re: Bouton envoyer de mon formulaire

Posté : 30 déc. 2009, 11:09
par Aureusms
Ton formualire doit être entouré de <form>... </form> sinon cela ne marchera pas :

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<h1> <center> Formulaire </center> </h1>

<br>

</head>
<body>
<FORM method="POST" action="envoyer.php">
<table>
<br>
<tr><td><b>Votre Pseudo: </b></td><td><input name='pseudo' type='text' size='50'></td></tr>
<tr><td><b>Votre mail: </b></td><td><input name='mail' type='text' size='50'></td></tr>

<tr><td><b>Votre message : </b></td><td><textarea name='texte' cols='50' rows='20'></textarea></td></tr>


<tr><center><td><input name='annuler' type='reset' value='Annuler'></td></center>
<p align ="right" ><td><input name='soumettre' type='submit' value='Envoyer'></td></tr></p>

</table>
</form>
</body>
</html>

Re: Bouton envoyer de mon formulaire

Posté : 30 déc. 2009, 11:12
par maya27
<FORM method="POST" action="envoyer.php">
</form>


ça n'est pas ça??
merci

Re: Bouton envoyer de mon formulaire

Posté : 30 déc. 2009, 11:19
par Aureusms
Au passage nous allons mettre cela conforme aux standards du Web (comme tu débutes, tu iras voir les CSS dans pas longtemps). De plus tu as quelques erreur HTML (comme dans tes balises head et dasn ton tableau ; j'ai tout corrigé dessous. essayes de voir ce que j'ai corrigé
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<h1 style="text-align : center;"> Formulaire</h1>
<FORM method="POST" action="envoyer.php">
<table>
  <tr>
    <td>
      <strong>Votre Pseudo: </strong>
    </td>
    <td>
      <input name='pseudo' type='text' size='50'>
    </td>
  </tr>
  <tr>
    <td>
      <strong>Votre mail: </strong>
    </td>
    <td>
      <input name='mail' type='text' size='50'>
    </td>
  </tr>
  <tr>
    <td>
      <strong>Votre message : </strong>
    </td>
    <td>
      <textarea name='texte' cols='50' rows='20'>
      </textarea>
    </td>
  </tr>
  <tr>
    <td>
      <input name='annuler' type='reset' value='Annuler'>
    </td>
    <td>
      <input name='soumettre' type='submit' value='Envoyer'>
    </td>
  </tr>
</table>
</form>
</body>
</html>

Re: Bouton envoyer de mon formulaire

Posté : 30 déc. 2009, 11:21
par maya27
Je te remercie.
Je vais reprendre tout le code afin de voir ce qui n'allais pas.
Merci :)

Re: Bouton envoyer de mon formulaire

Posté : 30 déc. 2009, 11:21
par Aureusms
<FORM method="POST" action="envoyer.php">
</form>


ça n'est pas ça??
merci
Si mais tu ne l'as pas mis au bon endroit. Regardes où je l'ai mis.

Re: Bouton envoyer de mon formulaire

Posté : 30 déc. 2009, 11:24
par Aureusms
Sinon côté PHP... pas de problème (tu vois çà vient) mais je te conseille (comme tu vas travailler avec mysql) de protéger tes retours de formulaire avec une fonction spéciale :
 <html>
        <head>
                <title> Envoyer </title>
        </head>
        <body>
        <?php
                $pseudo=addslashes($_POST['pseudo']);
                $mail=addslashes($_POST['mail']);
                $message=addslashes($_POST['message']);
                echo "valeurs" : $pseudo $mail $message;
                ?>
        </body>
</html>

Re: Bouton envoyer de mon formulaire

Posté : 30 déc. 2009, 11:28
par maya27
<FORM method="POST" action="envoyer.php">
</form>


ça n'est pas ça??
merci
Si mais tu ne l'as pas mis au bon endroit. Regardes où je l'ai mis.

ah oui d'accord je n'avais pas compris

pour le code php merci :) ça commence à venir alors..

merci

Re: Bouton envoyer de mon formulaire

Posté : 30 déc. 2009, 11:32
par Aureusms
Concernant les protection de retour formulaire tu dois savoir trois fonctions :

htmlspecialchars() (permet d'éviter qu'on t'injectes des balises HTML dans ton livre d'or) : http://php.net/manual/fr/function.htmlspecialchars.php
mysql_escape_string (permet d'éviter les injections SQL (et de te faire pirater ta base)) : http://www.manuelphp.com/php/function.m ... string.php
et son équivalent addslahes (elles font la même chose) : http://php.net/manual/fr/function.addslashes.php

Utilises mysql_escape_string ou addslahes, pas les deux en même temps ce qui te donnera (on va utiliser un fonction pour cela (histoire d'apprendre)) :
<?php 
function protection ($valeur)
{
  return htmlspecialchars(addslahes($valeur));
}
?>
 <html>
        <head>
                <title> Envoyer </title>
        </head>
        <body>
        <?php
                $pseudo=protection($_POST['pseudo']);
                $mail=protection($_POST['mail']);
                $message=protection($_POST['message']);
                echo "valeurs" : $pseudo $mail $message;
                ?>
        </body>
</html>

Re: Bouton envoyer de mon formulaire

Posté : 30 déc. 2009, 11:37
par maya27
merci, alors je reste sur addslahes..
merci car je ne connaissais pas cette fonction.

En tout cas merci de prendre le temps de m'expliquer.. tout devient plus clair ;)

Re: Bouton envoyer de mon formulaire

Posté : 30 déc. 2009, 11:52
par maya27
donc alors si j'ai bien compris.
Je dois avoir
- une page config.php avec les paramètre de connexion à la BDD
- une page html contenant le formulaire
- une page envoi.php qui lorsque l'on clique sur envoyer dans le formulaire arrive dans la bdd
pour cela je dois donc me connecter à laide de
mysql_connect(DBHOST,DBUSER,DBPASSWD);
mysql_select_db(DBNAME);
puis envoyer les infos dans la bdd.. à l'aide de POST ou GET
est-ce bien cela?

merci