Mon script PHP ne fonctionne plus

Résolu/Fermé
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 - 23 oct. 2008 à 08:30
 toto - 24 oct. 2008 à 08:31
Bonjour,

voila j'ai crée un script qui crée un compteur de clic sur un lien et me recupere la date et l'url de provenance et cela dans deux fichiers separés. Quand j'ai fait mes premiers test tout fonctionné parfaitement mais la si l'la date et l'url est bien recuperer le compteur ne fonctionne plus et je ne voit pas pourquoi

Mon script :
<?php
session_start();
$uscookies="no";
$hours="24";
$date= date('d-m-Y');
$url=$date .'|'.$_SERVER["HTTP_REFERER"];

// NOM DES FICHIERS CLIC et URL
$file1="compteur.clic";
$file2="url.clic";
    
// VERIFICATION SI CLIC AUTORISE
if($uscookies=="yes")
	{
	if($pagevue==$file1) {$incr="no";}
        if($pagevue==$file2) {$incr="no";}   
	}
  
// CREATION DU FICHIER CLIC CORRESPONDANT A L'URL S'IL N'EXISTE PAS
if(!file_exists("$file1"))
{
     $fp=fopen("$file1","w");
     fputs($fp,"0");
     fclose($fp);

if(!file_exists("$file2"))
{
     $fu=fopen("$file2","w");
     fputs($fu,"URLS\n");
     fclose($fu);
}
}
// INCREMENTATION DU COMPTEUR DE L'URL
if($incr!="no")
{
     $fp=fopen("$file1","r+");
     $fu=fopen("$file2","a+");
     $nb=fgets($fp,10);
     $nb++;
     fseek($fp,0);
     fwrite($fp,$nb);
     fwrite($fu,$url ."\n");
     fclose($fp);
     fclose($fu);
} 
// POSE DU COOKIE ET REDIRECTION VERS L'URL

if($usecookies=="yes" && $incr!="no") {SetCookie("pagevue","$file1","$file2",time()+$hours*3600,"/","",0);}
header("location:" . $_SERVER["HTTP_REFERER"]);

?> 


Avez vous une idée?
Merci
A voir également:

13 réponses

hani_ Messages postés 333 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 18 novembre 2009 20
23 oct. 2008 à 09:09
if(!file_exists("$file1")) n'est pas fermé

if(!file_exists("$file2")) est fermé deux fois...

tu a donc un problème d'accolade ici.
0
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 22
23 oct. 2008 à 09:17
Merci pour cette remarque mais après modification cela ne change rien, toujours pas de compteur.
0
Bonjour
if($uscookies=="yes") Comment $uscookies pourrait-il valoir "yes", tu l'as initialisé à "no" quelques lignes avant et il ne s'est rien passé entre les deux ?
Et c'est $uscookies ou $usecookies ?

Mais tout ça ne change rien à ton poblème de compteur.

Si le compteur reste à 1, peux-tu forcer une valeur plus grande (15 par exemple) dans le fichier compteur.clic (avec un éditeur de texte) et faire un echo de la valeur lue, avant et apprès l'incrémentation, dans le script ?
0
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 22
23 oct. 2008 à 10:07
Alors j'ai forcé la valeur a 20 et lorsque je fais un echo de $nb que ce soit avant ou apres incrementation , cette valeur reste a 20 donc il n'y a pas d'incrementation hors je n'ai rien changé a mon script et il fontionnait tres bien auparavent. Je ne comprends pas!!

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
hani_ Messages postés 333 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 18 novembre 2009 20
23 oct. 2008 à 11:15
essaie de faire un echo de $uscookies juste avant ton if $uscookies=='yes'
0
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 22
23 oct. 2008 à 11:55
l'echo affiche no ce qui est normal car la variable est initialisé a no . Mais bon meme en mettant les lignes qui se rapporte au coockies en commentaire je n'ai pas d'incrementation donc le souci n'a rien avoir avec les coockies.

Merci
0
Au fait, ton script, il marchait bien avant quoi ? Qu'est ce que tu as changé ?
0
Si tu fais un echo $nb immédiatement et immédiatement après le $nb++, tu vois 2020 ?
0
Je viens de faire un essai et je crois que j'ai trouvé
En éditant ton fichier à la main, tu as dû ajouter un caractère fin de ligne après le nombre. Et là, $nb contient en fait "20\n" et ça, ça ne s'incrémente pas. Il faut virer cette fin de ligne soit dans le fichier, soit par script
0
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 22
23 oct. 2008 à 13:27
Merci. Effectivement c'est une bonne idée que tu as eu mais ce n'est pas cela car j'ai verifie avec gvim il n'y a pas de retour a la ligne et pour en être sur j'ai fait un petit SED 1,$s/$\n//g dans gvim afin s'il existait de le supprimer.

Merci de votre aide, j'apprécie.
0
pour en être sur j'ai fait un petit SED 1,$s/$\n//g
ça ne teste que le \n, il s'agit peut-être d'un autre caractère (chr(26) est classique en fin de fichier texte.
Regarde la longueur du fichier ou fait un strlen($nb), c'est plus fiable
0
Bon et bin je ne sais pas pourquoi mais le compteur refonctionne et je n'ai rien modifié. Je ne comprends pas mais bon cela refonctionne donc tant mieux. Merci a tous
0
le compteur refonctionne et je n'ai rien modifié
ça, ça m'étonnerait bien. Tu AS modifié quelque chose.
0