Problème formulaire php

Problème formulaire php - PHP - Programmation

Marsh Posté le 20-04-2003 à 11:27:49    

Salut,
 
Voila quand je vais dans mon formulaire pour faire une news , il y a 3 champs à remplir, (Pseudo, Titre de la news, News) premierement, je ne sais pas comment rendre ces champs obligatoire,  
deuxiement une fois la news publiée, le pseudo est bien ecrit mais je vois ecris titre de la news : de la news, j'aimerais que vous rectifiez mes lignes de code pour corriger l'erreur:(allez voir à cette adresse si vous voulez faire la simulation : http://rap.us.fr.chez.tiscali.fr/poster_une_news.php )
 
<html>
<head><title>Formulaire pour faire une news</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
 
<body bgcolor="#000000" text="#FFFFFF" link="#CCCCCC" vlink="#999999">
<?php
 
// Si vous désirez adopter la même présentation que notre script :
// Indiquez ici la couleur de bordure des tableaux
$borduretable = "#FFFFFF";
// Indiquez ici la couleur de fond des tableaux
$backgroundtable = "#000033";
// Indiquez ici la couleur de fond du tableau contenant les messages du livre d'or
$backgroundtable2 = "#000033";
// Indiquez ici la largeur du tableau
$largeurtable = "600px";
 
// Sinon, libre à vous de modifier la mise en page ci-dessous
echo '
<table style="border: thin solid '.$borduretable.'; font-family: Verdana; font-size: 11px; width: '.$largeurtable.'; background-color: '.$backgroundtable.';">
<tr>
<td width="50%"><a href="poster_une_news.php">Lire les news</a></td>
<td width="50%">Ajouter une news</a></td>
</tr>
</table>
<br><br>';
 
// si le formulaire n'a pas été validé, la variable $poster est différente de "oui"
// on affiche donc le formulaire
 
if($poster!="oui" ){
echo '
<table style="border: thin solid '.$borduretable.'; font-family: Verdana; font-size: 11px; width: '.$largeurtable.'; background-color: '.$backgroundtable.';">
<tr><form action="">
<td>Pseudo</td>
<td><input type="text" name="nom" size="50" style="font-size:11px;"></td>
</tr><tr>
<td>Titre de la news</td>
<td><input type="text" name="Titre de la news" size="50" style="font-size:11px;"></td>
</tr><tr>
<td valign="top">Votre message</td>
<td><textarea cols="34" rows="8" name="message" style="font-size:11px;"></textarea></td>
</tr><tr>
<td colspan="2" align="center">
<input type="hidden" name="poster" value="oui" />
<input type="submit" value="Envoyer" / style="font-size:11px;">
<input type="reset" value="Effacer" / style="font-size:11px;">
</td>
</tr>
</table>
';
}
 
// si le formulaire a été validé, la variable $poster est égale à "oui"
// on traite donc les informations du formulaire
if($poster=="oui" )
{
// On commence pas mettre en forme le message correctement
 
// suppression des balises HTML pour éviter les codes malveillant
$message = htmlspecialchars($message);
 
// convertion des retour chariots par des <br> et suppression des /
$message= nl2br(stripslashes($message));  
 
// suppression des espaces en trop  
// ex: si le visiteur à inséré trois espaces, un seul sera pris en compte
$message = ereg_replace("[ ]{2,}", " ", $message );
 
// On vérifie que le fichier contenant les anciens messages existe
if(file_exists("news.htm" )){
 
// On copie le contenu des anciens messages dans une variable
// pour pouvoir y ajouter le message en cours
$fp=fopen("news.htm","r" );
$contenu=fread($fp,filesize("news.htm" ));
fclose($fp);
 
}
 
// On vide le contenu du fichier pour pouvoir y insérer le contenu
// de la variable contenant les anciens messages + le message en cours
$fp=fopen("news.htm","w" );
fclose($fp);
 
// On ajoute le message en cours et on remet les anciens messages en dessous
 
// On met le nom, la date et l'email du message en cours dans une variable
$data="$nom - ".date('d/m/Y';)." - Titre de la news : $Titre de la news</td></tr></table>";  
 
// On ouvre le fichier contenant les anciens messages  
// (actuellement vide)
$fp=fopen("news.htm","a" );  
 
// On y ajoute le message en cours et les anciens messages
fputs($fp,"<table style='border: thin solid ".$borduretable."; font-family: Verdana; font-size: 11px; width: ".$largeurtable."; background-color: ".$backgroundtable.";'>
<tr><td>$data</td></tr></table><table style='border: thin solid ".$borduretable."; font-family: Verdana; font-size: 11px; width: ".$largeurtable."; background-color: ".$backgroundtable2.";'>
<tr><td> $message </td></tr></table><br>\n<!-- guest -->\n$contenu" );
fclose($fp);  
 
// On affiche un message de remerciement
echo '<span style="font-family: Verdana; font-size: 11px;">News postée!!!</span>';
}
?>
</body>
</html>  
 
Derniere question en passant, comment rendre une partie privée dans une page web?
 
J'espere que vous pourrez repondre à mes questions merci d'avance!
@+

Reply

Marsh Posté le 20-04-2003 à 11:27:49   

Reply

Marsh Posté le 20-04-2003 à 11:39:36    

// On met le nom, la date et l'email du message en cours dans une variable
$data="$nom - ".date('d/m/Y';)." - Titre de la news : $Titre de la news</td></tr></table>";  
 
L'erreur est là.
 
Pour ta deuxième question :
 
Apprend le PHP. Et un conseil, en cas de problème avec un script récupéré ici ou là, pas la peine de venir poster ici. Ici, c'est pour ceux qui FONT leurs scripts.
 
(On est dimanche, c'est pour cela que j'ai quand même répondu à ta question...  [:totozzz] )

Reply

Marsh Posté le 20-04-2003 à 11:48:15    

Un autre détail : Les variables en PHP ne peuvent pas contenir d'espace (ya plusieurs erreurs dans le script que tu as récupéré puis trafiqué).

Reply

Marsh Posté le 20-04-2003 à 11:51:20    

Merci beaucoup, mais par quoi dois-je remplacer  
// On met le nom, la date et l'email du message en cours dans une variable  
$data="$nom - ".date('d/m/Y';)." - Titre de la news : $Titre de la news</td></tr></table>";
 
Sinon tu peux repondre à mes autres questions parceque j'ai deja essayé de me renseigner ailleur, et j'ai pas trouvé  :(

Reply

Marsh Posté le 20-04-2003 à 12:05:29    

yamo_chie a écrit :

Merci beaucoup, mais par quoi dois-je remplacer  
// On met le nom, la date et l'email du message en cours dans une variable  
$data="$nom - ".date('d/m/Y';)." - Titre de la news : $Titre de la news</td></tr></table>";
 
Sinon tu peux repondre à mes autres questions parceque j'ai deja essayé de me renseigner ailleur, et j'ai pas trouvé  :(  


 
$Titre de la news --> $titre
 
et pareil partout où il y a $Titre de la news
 
 
Maintenant, apprends le PHP, ça ne sert à rien de récupérer des scripts tout faits (sauf pour avoir des exemples d'utilisation de telle ou telle fonction), et de plus, c'est pas l'objet de ce forum.  :hello:

Reply

Marsh Posté le 20-04-2003 à 12:08:41    

Merci t'es gentil!
Je vais me mettre à apprendre le PHP, mais la c'était urgent.
@+

Reply

Marsh Posté le 21-04-2003 à 11:48:52    

Sinon vous ne savez pas comment rendre les champs obligatoire?

Reply

Marsh Posté le 21-04-2003 à 11:54:47    

yamo_chie a écrit :

Sinon vous ne savez pas comment rendre les champs obligatoire?


 
Si, tu testes pour savoir s'ils ont été rempli avec des conditions :
 
if (condition){exécution;}
 
--> direction phpdebutant.org  :hello:  A bientôt...

Reply

Marsh Posté le 21-04-2003 à 12:36:27    

Tu peux me dire ou je dois le mettre?
Sinon je suis allé faire un tour sur phpdebutant, c'est cool!

Reply

Marsh Posté le 21-04-2003 à 12:49:18    

yamo_chie a écrit :

Tu peux me dire ou je dois le mettre?
Sinon je suis allé faire un tour sur phpdebutant, c'est cool!


 
Non, ça servirait à rien. Il faut non seulement tester la condition mais également renvoyer une page de résultat puis une redirection vers ton formulaire. ça ne tient pas en une seule ligne, et il est hors de question que je fasse le boulot à ta place.
 
Donc, maintenant tu apprends le PHP et point barre.
 
Si ton problème est urgent, tu fais un test avec du javascript sur ton champs : ya des dizaine d'exemple de code sur google pour cela. ça te permettra de résoudre ton problème rapidement en attendant de connaitre suffisamment le php.
 

Reply

Sujets relatifs:

Leave a Replay

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