Reccup les donners d'un formulaire pour les publier automatiquement

Reccup les donners d'un formulaire pour les publier automatiquement - PHP - Programmation

Marsh Posté le 20-01-2006 à 21:20:01    

Salut, je débute en php et n'y connai rien de rien. Alors voila, j'aimerai inclure dans mon site un formulaire afin de permettre aux visiteurs d'inscrire des commentaires. Le formulaire n'est pas diffcile a creer (c'est deja fait ;)), mais j'aimerai reccuperer les commentaires inscrit dans le formulaire et les publier sur une page automatiquement (comme sur un blog/espace perso msn). Malgrer d'intensives recheches pas de resultats :( Si quelqu'un sait comment faire, merci de laisser un message. Thank's a lot  :hello:  


---------------
http://nasty3d.free.fr [site en REconstruction]    ## Electronicien/Infographiste/Gratteux ##
Reply

Marsh Posté le 20-01-2006 à 21:20:01   

Reply

Marsh Posté le 20-01-2006 à 21:55:36    

Si tu commençai par apprendre les bases de php [:itm]


---------------
Débuter la moo chez les moants@HFR | Nikon D800 | On ne fait pas un calin chaste à une pute !, Lapattefolle
Reply

Marsh Posté le 21-01-2006 à 02:09:20    

Ben en faite je n'ai ni le temps ni forcement l'envi d'aprendre ce langage. C'est juste parce que c'est impossible en HTML que je me dirige vers le php. Les bases (a ce que j'ai pu constater) ressemble un peu au langage C (que je connai bien). J'ai aussi decripté quelques petits exemples pour debutant trouvés sur google.


---------------
http://nasty3d.free.fr [site en REconstruction]    ## Electronicien/Infographiste/Gratteux ##
Reply

Marsh Posté le 21-01-2006 à 10:45:49    

on est pas là pour faire pour toi.


---------------
Débuter la moo chez les moants@HFR | Nikon D800 | On ne fait pas un calin chaste à une pute !, Lapattefolle
Reply

Marsh Posté le 21-01-2006 à 11:16:47    

dans ton formulaire: tu rajoute sa:  
<form method="post" action="tapage.php">
 
ensuite dans tapage.php tu récupere les informations : $variable=$_POST(['lenomquetuauradonner'])
pour la suite tu dois écrire le contenu de ta variable dans un fichier (texte), des tutoriaux trés bien faits existent sur le net!
je ne suis pas sur que sa soit juste donc vérifie par toi meme que sa marche!
@++

Reply

Marsh Posté le 21-01-2006 à 11:59:00    

brains a écrit :

on est pas là pour faire pour toi.


C'est pas ce que je demande ;)
Je veux juste une methode generale pour savoir a peu pres comment commencer, apres je me debrouille tout seul  :bounce:  
 
 

hugoOo a écrit :

dans ton formulaire: tu rajoute sa:  
<form method="post" action="tapage.php">
 
ensuite dans tapage.php tu récupere les informations : $variable=$_POST(['lenomquetuauradonner'])
pour la suite tu dois écrire le contenu de ta variable dans un fichier (texte), des tutoriaux trés bien faits existent sur le net!
je ne suis pas sur que sa soit juste donc vérifie par toi meme que sa marche!
@++


 
Merci beaucoup, je vais verifier ca  :hello:  


---------------
http://nasty3d.free.fr [site en REconstruction]    ## Electronicien/Infographiste/Gratteux ##
Reply

Marsh Posté le 21-01-2006 à 13:15:09    

vas voir la ya un exemple :
http://erwann.conan.free.fr/codes.php
en tout cas ca concerne l'integration dans une base de données


---------------
http://www.ypikay.com
Reply

Marsh Posté le 23-01-2006 à 00:53:14    

Bon alors voila un petit test pour les commentaires automatiques (livre d'or).
On a besoin de 3 fichiers et un 4em sera créé automatiquement.
 
Le premier fichier contient le formulaire (livredor.htm):
 

Citation :

<html>
<head>
<title>Livre d'or</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
</head>
<body bgcolor="#b1b1b1">
 
<h1>Le Livre d'OR</h1>
 
<!-- On commence le formulaire, pour le resultat on invoquera la page "message.php" gâce à l'attribut action de la balise form -->
<form action="message.php" method="post">
<div>
<fieldset> <legend>Votre Nom</legend>
<input type="text" name="pseudo" />
</fieldset>
<fieldset><legend>Postez un message pour le livre d'or</legend>
<textarea cols="66" rows="6" name="message"></textarea>
</fieldset>
<input type="submit" />
<!-- On va créer un lien pour ceux qui veulent consulter le livre d'or sans poster dedans -->
<p>
Pour consultez simplement le livre d'or <a href="consultezlo.php">cliquez ici</a>
</p>
</div>
</form>
<!-- Notre formulaire est fini on ferme la balise form -->
 
 
</body>
</html>


 
Le second fichier (message.php) est le script exectué lors de la validation du message dans livredor.htm :
 

Citation :

<?php
// Pour éviter qu'une unique personne poste 50 fois dans le livre d'or, on va insérer un cookie
//setcookie("ip",$_SERVER['REMOTE_ADDR'],time()+.3600*60*90);
 
// Si le cookie est égale à l'ip du client alors on le stop
//if(isset($_COOKIE['ip']) && $_COOKIE['ip']==$_SERVER['REMOTE_ADDR'])
//{
//        echo "<h1>Vous ne pouvez émettre qu'un seul avis et vous l'avez déjà donné !</h1>";
 
        // On stop le script
//        exit;
//}
// Mettons le (future) fichier dans une variable
$commentaires="messages.html";
 
// assignons nos 2 variables du formulaire et on en profite pour les protégers des balises HTML
$pseudo=htmlentities($_POST['pseudo']);
$message=htmlentities($_POST['message']);
 
// Pensons au retour à la ligne et au stripslashes pour la variable $message
$message=stripslashes(nl2br($message));
 
// On met en place quelques conditions pour les cellules (nom et message)
// On vérifie avant tout si le fichier existe si ce n'est pas le cas on le crée
if(!is_file($commentaires))
{
        $verif=@fopen($commentaires,"w+" );
}
 
// On vérifie que le login ou le message ne soient pas vide
elseif (trim($message)=="" || trim($pseudo)=="" )
{
        echo "Vous devez remplir tous les champs ! <a href=\"livredor.htm\">Retour sur le livre d'or</a>";
       
        // On sort du script !
        exit;
}
 
// Après ces quelques vérification d'usage on passe  à l'exécution de ce formulaire
 
       
        // Si ok on ouvre en écirture-enregistrement du fichier message.txt
        $verif=@fopen($commentaires,"r+" );
               
        // On analyse les anciennes données et on les stocks
        $stock=@fread($verif,filesize($commentaires));
       
        // On met la date dans une varialbe
        $date=date ("d/m/Y à H:i" );
       
        // On paramère le tout dans la variable $opinion
        $opinion="<b>".$pseudo."</b> a écrit le : ".$date."<br />\n".$message."<br />\n<hr />";
       
        // On remet le curseur du fichier en début de ligne
        rewind($verif);
       
        // On insère le nouveau commentaire
        fputs($verif,$opinion." \n".$stock);
       
        // On clore le fichier
        fclose($verif);
       
        // On affiche le tout
        readfile($commentaires);
 
 
?>


 
Comme on peut le voir, un fichier messages.html est créé afin de stocker les commentaires.
 
Le dernier fichier est consultezlo.php (il permet de consulter les commentaires) :
 

Citation :

<?php
$consultez="messages.html";
readfile($consultez);
?>


 
 
Cette méthode fonctionne parfaitement, cependant j'aimerai apporter quelques modifs ;).
 
Après un petit essai je reccupère le fichier messages.html et il est écrit comme ceci :
 

Citation :

<b>nom</b> a écrit le : 23/01/2006 à 00:34<br />
test de commentaires<br />
<hr />

<html>
<head>
<title>Livre d'or</title>
</head>
<body bgcolor="#b1b1b1">
 
<h1>Le Livre d'OR</h1>
 
 
 
</body>
</html>


 
Seulement cela donne ceci http://nasty3d.free.fr/messages.html
 
Le titre (livre d'or) apparai en dessous des commentaires :(
Y'a t il un moyen d'ecrire le fichier messages.html de la facon suivante ? :
 

Citation :

<html>
<head>
<title>Livre d'or</title>
</head>
<body bgcolor="#b1b1b1">
 
<h1>Le Livre d'OR</h1>
 
<b>nom</b> a écrit le : 23/01/2006 à 00:34<br />
test de commentaires<br />
<hr />

 
</body>
</html>


 
Le commentaire suivant peut apparaitre en dessus ou en dessous du precedent cela n'a pas d'importance :)
Vala merci d'avance pour l'aide  :bounce:  
 
 
 


---------------
http://nasty3d.free.fr [site en REconstruction]    ## Electronicien/Infographiste/Gratteux ##
Reply

Marsh Posté le 23-01-2006 à 01:36:33    

Heu... quelqu'un pour filer un coup de main au mooooossieur ?


---------------
http://www.ypikay.com
Reply

Marsh Posté le 23-01-2006 à 10:38:14    

Pourquoi un @ devant fopen et fread? T'as peur que le php te préviennes s'il arrive pas à ouvrir le fichier ou manipuler son contenu?
 
Quanhd à ton probléme, si tu prends tout le contenu du fichier et que tu rajoutes tes commentaires, alors c'est normal que le commentaire se retrouve avant le reste. Si tu veux que les commentaires se retrouvent entre </H1> et </BODY>, alors il faut que t'analyse ton fichier pour placer avant le nouveau commentaire ce qui doit être placé avant ton nouveau commentaire. Il y a largement assez de fonction en php pour faire ça. (regarde dans la documentation du côté des fonctions commencant par "str" )

Reply

Marsh Posté le 23-01-2006 à 10:38:14   

Reply

Marsh Posté le 23-01-2006 à 19:14:46    

Ben en faite pour les "@" j'en sais rien c'est pas moi qui est ecrit ce code  :whistle:  
 
Sinon pour ecrire en </H1> et </BODY>
Cette fonction : <? $ptr = ftell($inF); ?> peut-elle etre utile?
Si quelqu'un pouvai m'expliquer comment elle fonctionne. (je sais juste qu'on peut la modifier comme ceci : <? $ptr = fseek($inF,$ptr-10); ?> a quoi tout cela correspond-il?)
Merci pour vos réponses  :hello:


---------------
http://nasty3d.free.fr [site en REconstruction]    ## Electronicien/Infographiste/Gratteux ##
Reply

Marsh Posté le 23-01-2006 à 19:56:55    

voilà le meilleur endroit pour ta question :
 
www.siteduzero.org
 
dans leurs cours ils ont un livre d'or déjà fait même si je n'aime pas le "tout-fait"

Reply

Marsh Posté le 30-01-2006 à 21:01:10    

Bon ben c'est fait :D
Pas facile a comprendre au départ le Mysql, mais finalement c'est pas si compliqué.
Si vous voulez voir le resultat : http://nasty3d.free.fr --> livre d'or ;)


---------------
http://nasty3d.free.fr [site en REconstruction]    ## Electronicien/Infographiste/Gratteux ##
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed