Page 1 sur 1

fichier txt

Posté : 02 févr. 2012, 16:13
par max1854
Bonjour

J'ai crée un formulaire HTML sur une page et lorsque je valide ce formulaire, les information s'affichent dans un tableau sur une autre page et sont enregistrés dans un fichier txt qui se crée par la même occasion. Le problème c'est que la première fois que je valide le formulaire( donc le premier contact que je valide) un message d'erreur apparait, il faut que j'actualise la page pour que le tableau s'affiche. J'imagine que cela vient du fait que le fichier n'est pas encore crée mais comment faire pour que éviter d'avoir à actualiser et que le tableau apparaisse aussitôt?

Code : Tout sélectionner

<?php session_start(); session_destroy(); session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><title>Liste de contacts.php</title></head> <BODY BGCOLOR="#48D1CC"> <body><center><font size="18"><b>Liste de contacts</b></font></center><br><br><br><br></body> <center><tr>Coordonnées</tr></center> <center><table border="10" cellpadding="5" cellspacing="5" width="30%"><tbody></br></br> <?php if( !empty($_POST['nom'])) if( !empty($_POST['prénom'])) if( !empty($_POST['email'])) if( !empty($_POST['téléphone'])) { $file = "Liste.txt"; $f = file("liste.txt"); $f = fopen($file, 'a+'); if ($f) { $nom = $_POST['nom'].";"; $prénom = $_POST['prénom'].";"; $email = $_POST['email'].";"; $téléphone = $_POST['téléphone'].";".PHP_EOL; fwrite($f, $nom).''; fwrite($f, $prénom).''; fwrite($f, $email).''; fwrite($f, $téléphone).''; fclose($f); } } ?> <?php $f=file ("liste.txt"); ?> <?php $users=array(); foreach($f as $k=>$v){ list($nom,$prénom,$email,$téléphone)=explode(";",$v); $users[$nom]=array($prénom,$email,$téléphone); } ksort($users); echo "<tr><td><strong>Nom</strong></td><td><strong>Prénom</strong></td><td><strong>Email</strong></td><td><strong>Téléphone</strong></td></tr>"; foreach($users as $k=>$v){ echo "<tr><td>$k</td><td>".$v[0]."</td><td>".$v[1]."</td><td>".$v[2]."</td></tr>"; } ?> </tbody></table> <form method="POST" action="formulaire de contact.php" name="formulaire"><br><br> <center><input type='submit' name='valider' value='Ajouter un contact'/></center></form></br> <form method="post" action="mailto:"> <center><input type='submit' name='valider' value='Envoyer'/></center></form> </html>

Re: fichier txt

Posté : 02 févr. 2012, 16:48
par moogli
Salut,

Y a du mélange dans ton code utilisation de la fonction file et de fopen avec la même variable.
Le plus simple étant de lire le fichier après insertion, pour l'affichage.


@+

Re: fichier txt

Posté : 02 févr. 2012, 18:07
par max1854
Effectivement, merci beaucoup!!

J'aimerais bien que le format de l'adresse mail soit vérifié avant d'être envoyé ainsi que le numéro de téléphone (10 chiffres et uniquement des chiffres).

Re: fichier txt

Posté : 02 févr. 2012, 18:14
par moogli
pour cela il y a filter_var etles filtres utilisables avec


pour le numéro de téléphone une demande rapide à google et l'on tombe la dessus (par exemple)

@+