fichier txt

max1854
Invité n'ayant pas de compte PHPfrance

02 févr. 2012, 16:13

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>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

02 févr. 2012, 16:48

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.


@+
Il en faut peu pour être heureux ......

max1854
Invité n'ayant pas de compte PHPfrance

02 févr. 2012, 18:07

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).

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

02 févr. 2012, 18:14

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)

@+
Il en faut peu pour être heureux ......