Pb de fichier avec formulaire PHP Javascript

Pb de fichier avec formulaire PHP Javascript - Programmation

Marsh Posté le 14-06-2001 à 23:27:00    

CE que je n'arrive pas à faire c'est de ne pas écrire dans le fichier lorsque des champs ne sont pas remplis. J'ai bien une boite de dialogue qui me dit le champ qui n'est pas enregistrer mais les donées qui ont été insérées partiellement figurent dans le fichier.
Voici le script (un morceau ) :
<?php
 
$today=(date ('d F  20y - h:i A'));
$error=1;
echo"<html>
<head>
<meta http-equiv='Content-Type'content='text/html charset=iso-8859-1'>
<title>Livre d'or</title>
<SCRIPT LANGUAGE='JavaScript'>
function validation(){
         if (document.LIVREDOR.nom.value=='')
         {window.alert('Veuillez entrez votre nom.');
         return false;
         }
         if (document.LIVREDOR.email.value=='')
         {window.alert('Veuillez entrez votre e-mail.');
         return false;
 
         }
         if (document.LIVREDOR.city.value=='')
         {window.alert('Veuillez entrez votre ville.');
         return false;
 
         }
         if (document.LIVREDOR.country.value=='')
         {window.alert('Veuillez entrez votre pays.');
         return false;
 
         }
         if (document.LIVREDOR.text.value=='')
         {window.alert('Veuillez entrez votre commentaire.');
         return false;
 
        }
return true;
$error=0;
}
</SCRIPT>
 
</head>
<body leftmargin='0' bgcolor='black' text='white' >
<b><marquee><font face='Courier New, Courier, mono' color='#1D323D'> $today </font></marquee></b>
<div align='center'>  <H1> Livre d 'or </H1>
<FORM NAME='LIVREDOR'  onSubmit='validation();'>
<p align='center'>
  </p>
<table cellpadding=2 cellspacing=0 border=0 align='center'>
  <tr>
    <td align=right><font face='verdana, arial, helvetica' size=2>Nom : </font></td>
    <td>
      <input name='nom' size=30 length=20 >
    </td>
  </tr>
  <tr>
    <td align=right><font face='verdana, arial, helvetica' size=2>Email : </font></td>
    <td>
      <input name='email' size=30 length=30 >
    </td>
  </tr>
  <tr>
    <td align=right><font face='verdana, arial, helvetica' size=2>Ville : </font></td>
    <td>
      <input name='city' size=30 length=60 >
    </td>
  </tr>
  <tr>
    <td align=right><font face='verdana, arial, helvetica' size=2>Pays : </font></td>
    <td>
      <input name='country' size=30 length=60 >
    </td>
  </tr>
  <tr>
    <td align=right><font face='verdana, arial, helvetica' size=2>Commentaire :</font></td>
    <td>
      <input name='text' size=30 length=255 >
    </td>
  </tr>
  <tr>
    <td align=right colspan=2>
  <input type='submit' value='Ajouter mon commentaire'>
  <input type='reset' value=CLEAR>
    </td>
  </tr>
</table>
</FORM>";
/********************************
    DEBUT DE LA PROCEDURE DE SAUVEGARDE METHODE FILE
               *****************************************/
 
 
$fich=fopen("ldor.txt","a" );
/* TEST DU FICHIER */
if (!($fich))
{
print (" erreur de fichier : " );
print (" 'ldor.txt' ne peut pas être crée" );
exit;
}
 
 
/* ECRITURE DES LIGNES DANS LE FICHIER */
if ($error==0){
fputs($fich,"\t\t\t\t\t\t $nom \n" );
fputs($fich,"\t $email \n" );
fputs($fich,"\t $city  \n" );
fputs($fich,"\t $country \n" );
fputs($fich,"\t $text \n" );
 
fclose($fich);
 
/* Ouverture - LEcTURE */
$fich=fopen("ldor.txt","r" );
if (!($fich))
{
print ("Erreur sur le fichier !! " );
exit;
}
$i=0;
while (!feof($fich))
{
$myline = fgets($fich,250);
echo " "; print ("<B> $myline </B> <BR> " );
$i++;
}
 
fclose($fich);
 
echo "</body>
</html>";
 
?>
 
MERCI d'avance !!!

Reply

Marsh Posté le 14-06-2001 à 23:27:00   

Reply

Marsh Posté le 15-06-2001 à 00:03:52    

personne ?

Reply

Marsh Posté le 15-06-2001 à 00:55:14    

PHP s'exécute côté serveur avant d'afficher la page HTML au navigateur avec ton code javascript incorporé qui va s'exécuter côté client.
 
Donc au moment où tu affiche la page HTML ta variable error est à 0 et ne sera jamais changé par ton code javascript qui ne peut la connaître. Voilà.
 
Donc fait ta validation aussi en PHP. Pour çà faut nommer ton bouton de type submit déclencher de nouveau la même page de formulaire et tester si tu as effectivement appuyer sur submit.
 
exemple simplifié ( tu le nomme test.php et çà devrait fonctionner) pour te montrer le principe
 
<?php  
if ($submit) {
if (empty($saisie)) {
  echo "g une erreur";
}
else {
  echo "c bon";
}
}
else { // le formulaire de maj n'est pas validé -> on l'affiche  
?>
<html>  
<head>  
<title>Livre d'or</title>  
</head>  
<body leftmargin='0' bgcolor='black' text='white' >  
<FORM METHOD=POST ACTION="test.php">
  <input type='text' name='saisie' size=30 length=30 value="" >  
  <input type='submit' name='submit' value='Ajouter mon commentaire'>  
</FORM>
</body>  
</html>
<?php
}
?>
 
sur mon site c comme çà que g fait çà marche très bien :D

 

[edit]--Message édité par m@nou--[/edit]


---------------
Mes photos,Feed-Back HA/V
Reply

Sujets relatifs:

Leave a Replay

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