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>