[RESOLU] afficher la dernière date de passage du visiteur

Petit nouveau ! | 7 Messages

30 avr. 2018, 16:23

Bonjour, je galère à afficher la dernière date de visite du site, sans BDD.

:priere: :priere: :priere: HELP ME PLEASE GUYS OR WOMENS ! :priere: :priere: :priere:

Voici mon code :
<?php
$date = date("d-m-Y");
$heure = date("H:i");
$madate = fopen('compteur/madernierevisite_anissa.txt',"r+");
$date_vue = fgets($madate); // On lit la première ligne (dernière date vue)
$dernieredate = file_put_contents('compteur/madernierevisite_anissa.txt', $date, $heure); // écrase le contenu du fichier
fseek($madate, 0); // On remet le curseur au début du fichier
fputs($dernieredate, $date_vue); // On écrit la nouvelle date
fclose($dernieredate);
echo("$date - $heure");
?>


La date s'affiche, mais ça me retourne les lignes suivantes : :

"Warning: fopen(compteur/madernierevisite_anissa.txt): failed to open stream: Aucun fichier ou dossier de ce type in /opt/lampp/htdocs/www/Planning_franky/PlanningAnissa.php on line 52

Warning: fgets() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/www/Planning_franky/PlanningAnissa.php on line 53

Notice: A non well formed numeric value encountered in /opt/lampp/htdocs/www/Planning_franky/PlanningAnissa.php on line 54

Warning: file_put_contents(compteur/madernierevisite_anissa.txt): failed to open stream: Aucun fichier ou dossier de ce type in /opt/lampp/htdocs/www/Planning_franky/PlanningAnissa.php on line 54

Warning: fseek() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/www/Planning_franky/PlanningAnissa.php on line 55

Warning: fputs() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/www/Planning_franky/PlanningAnissa.php on line 56

Warning: fclose() expects parameter 1 to be resource, boolean given in /opt/lampp/htdocs/www/Planning_franky/PlanningAnissa.php on line 57

Une idée les warriors du code svp ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

30 avr. 2018, 18:20

Bonjour,

Mon conseil serait que tu utilises uniquement les fonctions file_get_contents() pour lire et file_put_contents() pour écrire.
Ça va te simplifier la vie.

Et vérifie les paramètres de file_put_contents(), tu ne l'utilises pas correctement : https://php.net/file_put_contents
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 7 Messages

30 avr. 2018, 23:25

J'ai retravaillé mon code.
Je n'ai plus de message d'erreur qui s'affiche, par contre, lorsque je lis le fichier il ne s'affiche que le nombre 7, et lorsque je vais voir dans le fichier *.txt, il n'y a que le fameux chiffre 7, aucune date. Sans doute un souci à l'enregistrement, mais là je sèche complètement. car il me semble bien avoir vraiment respecter l'instruction ... une idée les boss ?

Code ci-dessous :
<?php
$date = date("d-m-Y");
$heure = date("H:i");
$fichier = 'compteurs/madernierevisite_anissa.txt';
// Ouvre un fichier pour lire un contenu existant
$courant = file_get_contents($fichier);
//
$courant = $date - $heure;
// Écrit le résultat dans le fichier
file_put_contents($fichier, $courant);
$voirladate = file_get_contents($fichier, $courant);
echo $voirladate;
?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

01 mai 2018, 14:38

Tu peux faire un var_dump($courant ); pour débuguer et voir ce que tu demandes d'écrire dans le fichier.


Le problème vient du fait que tu essayes de faire un calcul, une soustraction de la variable $date par la variable $heure, ce qui ne peut pas fonctionner.
Si tu veux concaténer des chaines de caractères, il faut utiliser l'opérateur de concaténation point "." et surtout mettre ta chaine espace-tiret-espace entre guillemets :
$courant = $date.' - '.$heure;
A noter que si tu n'as pas besoin de tes variables $date et $heure ailleurs dans ton code, autant construire directement la variable que tu veux plutôt que d'en créer 2 que tu assembles ensuite :
$dateheure = date("d-m-Y - H:i");
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 7 Messages

01 mai 2018, 21:40

Mille merci @rthur, ça marche nickel ! Tu es vraiment super !