Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/06/2007, 19h29   #1
Invité de passage
 
Inscription : février 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 7
Points : 3
Points : 3
Par défaut Interprétation de fichier

Bonjour,

Je suis novice en php et j'ai un probleme avec le script que j'ai développé, la partie ajout de données dans le fichier fonctionne bien mais les resultats dans la partie lecture sont toujours à 0.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 
<form action="<?php $_SERVER["PHP_SELF"]?>" method="post">
<fieldset><legend>Votez pour votre joueur favori</legend>
<input type="radio" name="nom" value="Zidan" /><label>Zidane</label><br />
<input type="radio" name="nom" value="Ronal" /><label>Ronaldo</label><br />
<input type="radio" name="nom" value="Barth" /><label>Barthez</label><br />
<input type="submit" name="Voter" />					 
</fieldset>
</form>
 
<?php
$vote = array("zidan" => "Zidane", "Ronal" => "Ronaldo", "Barth" => "Barthez");
 
if (isset($_POST['nom']))
{
$id_files = fopen("fichier_vote.txt", "a+");
flock($id_files, 2);
fwrite($id_files, $_POST["nom"] . "\n");
flock($id_files, 3);
fclose($id_files);
}
else
{		   
 
	$id_files = fopen("fichier_vote.txt", "r");
	flock($id_files, 1);	   
 
	$result = array("Zidane" => 0, "Ronaldo" => 0, "Barthez" => 0);	  		   
 
	while ($ligne=fread($id_files, 5))
		{
 
		switch ($ligne)
			{
			case "Zidan\n";
			$result["Zidane"]++;
			break;
 
			case "Ronal\n";
			$result["Ronaldo"]++;
			break;
 
			case "Barth\n";
			$result["Barthez"]++;
			break;
			}  
 
		}	
 
	flock($id_files, 3);	
	fclose($id_files); 
 
	foreach($result as $joueur => $vote)
		{
		print ("$joueur à $vote<br />");
		}
 
}  
?>
Xavier44214 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 13h17   #2
Membre du Club
 
Inscription : mars 2003
Messages : 50
Détails du profil
Informations forums :
Inscription : mars 2003
Messages : 50
Points : 49
Points : 49
Salut,

Dans ton code tu lit 5 caractères
Code :
$ligne=fread($id_files, 5)
Mais tu compare ton résultat avec 6 caractères ("\n" compte comme un caractère)
Conclusion: Il faut que tu lises un caractère de plus, soit :
Code :
$ligne=fread($id_files, 6)
Accessoirement, le "else" après le "if(isset($_POST['nom']))", ne permet pas de voir directement le resultat après avoir voté, ce serait plus logique de l'enlever.
Pysk0B0b est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h08.


 
 
 
 
Partenaires

Hébergement Web