logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
18 visiteur(s) et 1 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 109 408 164

  • Nb. de membres 8 696
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  Le coin des codeurs »» PHP - Pb script

PHP - Pb script#10510

3Contributeur(s)
girl_bonddeveloppeurarnodu59
3 Modérateur(s)
developpeurjpbJireck
girl_bond girl_bondicon_post
Ibonjour,

j'ai réaliser ce script, donc, pourriez vous le vérifier parce qu'il comporte des erreurs, je vous remercie
l m'indique les erreurs suivantes :

<?php
{
if (file_exists($pf_fichierLog_loc))
{ $handler = fopen($pf_fichierLog_loc,"r+");
print "Le fichier $pf_fichierLog_loc existe";
}
else { print "Le fichier $pf_fichierLog_loc n'existe pas";
}
return $handler; => il y a une erreur sur la fonction if mais je ne sais pas si return $handler; est bien placé dans mon script

{
fclose( $pf_fichierLog_loc);
}

{
//Se mettre à la fin du fichier
$handler = fopen($pf_fichierLog_loc,"a+");
$texte =$nom_loc. "".$date_loc."\n";
fwrite($pf_fichierLog_loc,$texte);
fseek($pf_fichierLog_loc,0,SEEK_END); => à ce niveau il m'indique une erreur, je ne sais pas sur quelle fonction
}
//function afficheDatesFichierLog($pf_fichierLog_loc,$nom_loc)
{
//il va falloir parcourir tout le fichier texte en partant du debut
=> là je bloque je ne vois pas comment faire pour me placer au début du fichier ?

while(!feof($handler) {
$texte=fgets($handler,1024); => cela ne fonctionne pas pourquoi ?
$nom => $nom=$_POST["nom"];
$time_stamp=time();
}

{
if ($nom=$nom_loc)
echo "Nom timeStamp est ".$time_stamp
}
//si le nom ($nom) est égale au nom recherché ($nom_loc) alors afficher le time stamp associé , ici il faudrait que j'utilise if + strcmp mais je ne connais pas la syntaxe, j'ai bidouillé avec l'aide trouvé sur PHPdebutant mais cela ne fonctionne pas

//Quelles sont les dates de passage de l utilisateur
afficheDatesFichierLog($pf_fichierLog,$nom);
echo $$time_stamp . $nom;
if ($nom !=""){
ecritureFichierLog($handle,$nom,$date);
}

fermetureFichierLog($handle);
echo "retour
";

j'ai eu quelques indications pour la suite de mon script par mon prof mais je bloque complètement, pouvez vous m'apporter votre aide, merci
developpeur developpeuricon_post
{ <=== c'est quoi
if (file_exists($pf_fichierLog_loc))
{ $handler = fopen($pf_fichierLog_loc,"r+");
print "Le fichier $pf_fichierLog_loc existe";
}
else { print "Le fichier $pf_fichierLog_loc n'existe pas";
}
return $handler;

{ <=== c'est quoi
fclose( $pf_fichierLog_loc);
} <=== c'est quoi

la syntaxe php est pas top à mon sens
girl_bond girl_bondicon_post
désolé mais je suis débutante en PHP :
cette partie du script consistait à dire si le fichier $pf_fichierLog_loc existe alors l'ouvrir autrement ne pas l'ouvrir et j'ai utilisé l'instruction return qui me permet de renvoyer une valeur (ici le file handler) :-o
developpeur developpeuricon_post
met ton script complet SVP
girl_bond girl_bondicon_post
bonjour,
je vous transmet mon script complet + quelques explications :
Bonjour,

Le but de cet exercice est le suivant : un utilisateur entre son nom dans un formulaire et valide
ce nom est récupéré par un script php qui relève la date et écrit dans un fichier texte (appelé fichier log) le nom et la date (sous la forme d'un timeStamp
le script affiche ensuite toutes les dates associées au nom, contenues dans le fichier log
ex : soit le fichier log suivant, au timStamp :
vincent 1078391185
marc 1078391190
paul 1078391185
supposons que l'utilisateur Vincent valide le formulaire au timeStamp 1078391195
alors le script php appelé par le formulaire relève la date (1078391195) et ajoute au fichier log la ligne contenant "Vincent"et1078391195
le fichier log a donc maintenant pour forme
vincent 1078391185
marc 1078391190
paul 1078391185
vincent 1078391195
le script PHP repère alors dans le fichier log toutes les apparitions de vincent, relève les timeStamp associées et les converties en date lisible, ex
Vincent est venu le(s)
04/03/2004 à 10h06min25sec
04/03/2004 à 10h06min25sec

voici le script que j'ai trouvé, il m'indique plusieurs erreurs d'accolades à la lig 19 , 35 et 46 et le problème que j'ai c'est que rien ne s'affiche dans mon fichier log alors que je devrais récupèrer le nom et le timeStamp il ne m'indique pourtant pas d'autre erreurs bizarre non ?? pouvez vous m'aidez à y voir plus claire parce que cela fait 3 jours que je planche dessus, merci de votre aide

<?php
//Les fonctions utiles
function ouvertureFichierLog($pf_fichierLog_loc)
{
if (file_exists($pf_fichierLog_loc)) // si fichier Log existe alors l'ouvrir
{ $pf_fichierLog_loc= fopen(FichierLog,"r+");

}



function fermetureFichierLog($pf_fichierLog_loc){
fclose( $pf_fichierLog_loc);
}

function ecritureFichierLog($pf_fichierLog_loc,$nom_loc,$date_loc){



$handler = fopen($pf_fichierLog_loc,"a+");//Se mettre à la fin du fichier
fseek($handler,0,SEEK_END);
$texte =$nom_loc. "".$date_loc."\n";//formater la ligne que l on va inserer
fwrite($handler,$texte);
}

function afficheDatesFichierLog($pf_fichierLog_loc,$nom_loc)
//il va falloir parcourir tout le fichier texte en partant du debut
//Se placer au début du fichier

while(!feof($handler) { // récupérer la ligne avec un fgets
$texte=fgets($handler,1024);
fseek($handler,0,SEEK_END); // mettre le nom dans $nom
$time_stamp=time(); // et le time stamp dans $time_stamp
}

//si le nom ($nom) est égale au nom recherché ($nom_loc) alors afficher le time stamp associé
//utiliser la combinaison if + strcmp

{
if (strcm($nom==$nom_loc)
echo $nom_loc. "Nom timeStamp est ".$time_stamp;
}


//Début du code
//je déclare une variable
$pf_fichierLog; //c'est un file handler sur le fichier de log...
//il va servir à toutes nos fonctions qui manipulent ce fichier
/ouverture du fichier log


$handler = ouvertureFichierLog($pf_fichierLog);

//préparation des données

//***********
$date = time();
$nom = $_POST["nom"];
//**********
///////////////


//ecriture dans le fichier

if($nom != ""){

ecritureFichierLog($handler,$nom,$date);

}

//Quelles sont les dates de passage de l utilisateur

afficheDatesFichierLog($pf_fichierLog,$nom);

echo $time_stamp . $nom;


fermetureFichierLog($handler);

//fermeture du fichier log
fermetureFichierLog($pf_fichierLog);
echo "retour
";
?>

Le prolème est qu'il ne m'affiche rien dans mon fichierLOg qui est un fichier.txt alors que je devrais récupérer le nom insérer dans le formulaire et la date timeStamp, donc pouvez vous vérifier merci
arnodu59 arnodu59icon_post
Citation : "13-03-2004 09:22, girl_bond a écrit :
<?php

//Les fonctions utiles 

function ouvertureFichierLog($pf_fichierLog_loc)



if (file_exists($pf_fichierLog_loc)) // si fichier Log existe alors l'ouvrir

{ $pf_fichierLog_loc= fopen(FichierLog,"r+"); //
Et tu ne referme pas ?????




}







function fermetureFichierLog($pf_fichierLog_loc){

fclose( $pf_fichierLog_loc);





function ecritureFichierLog($pf_fichierLog_loc,$nom_loc,$date_loc){







$handler = fopen($pf_fichierLog_loc,"a+");//Se mettre à la fin du fichier 

fseek($handler,0,SEEK_END); 

$texte =$nom_loc. "".$date_loc."\n";//formater la ligne que l on va inserer

fwrite($handler,$texte);





function afficheDatesFichierLog($pf_fichierLog_loc,$nom_loc) //
Tu n'ouvre pas ta fonction ???


//il va falloir parcourir tout le fichier texte en partant du debut

//Se placer au début du fichier



while(!feof($handler) { // récupérer la ligne avec un fgets

$texte=fgets($handler,1024); 

fseek($handler,0,SEEK_END); // mettre le nom dans $nom

$time_stamp=time(); // et le time stamp dans $time_stamp

}



//si le nom ($nom) est égale au nom recherché ($nom_loc) alors afficher le time stamp associé 

//utiliser la combinaison if + strcmp 



{ // Y fait koi lui ?????

if (strcm($nom==$nom_loc) 

echo $nom_loc. "Nom timeStamp est ".$time_stamp;

}





//Début du code

//je déclare une variable

$pf_fichierLog; //c'est un file handler sur le fichier de log...

//il va servir à toutes nos fonctions qui manipulent ce fichier

/ouverture du fichier log 





$handler = ouvertureFichierLog($pf_fichierLog);


// Et ta fonction, tu ne la referme pas ???

//préparation des données



//***********

$date = time();

$nom = $_POST["nom"]; 

//**********

/////////////// 





//ecriture dans le fichier 



if($nom != ""){



ecritureFichierLog($handler,$nom,$date); 



}



//Quelles sont les dates de passage de l utilisateur



afficheDatesFichierLog($pf_fichierLog,$nom);



echo $time_stamp . $nom;





fermetureFichierLog($handler);



//fermeture du fichier log

fermetureFichierLog($pf_fichierLog);

echo "<a href=formEnr3.html>retour</a><br>";

?>

arnodu59 arnodu59icon_post
Ce que je propose... maintenant, c'est pe être faux, mais a tester :-D

<?php

//Les fonctions utiles 

function ouvertureFichierLog($pf_fichierLog_loc)



if (file_exists($pf_fichierLog_loc)) // si fichier Log existe alors l'ouvrir

{ $pf_fichierLog_loc= fopen(FichierLog,"r+"); }

}

function fermetureFichierLog($pf_fichierLog_loc){

fclose( $pf_fichierLog_loc);



function ecritureFichierLog($pf_fichierLog_loc,$nom_loc,$date_loc){



$handler = fopen($pf_fichierLog_loc,"a+");//Se mettre à la fin du fichier 

fseek($handler,0,SEEK_END); 

$texte =$nom_loc. "".$date_loc."\n";//formater la ligne que l on va inserer

fwrite($handler,$texte);





function afficheDatesFichierLog($pf_fichierLog_loc,$nom_loc) { 

//il va falloir parcourir tout le fichier texte en partant du debut

//Se placer au début du fichier



while(!feof($handler) { // récupérer la ligne avec un fgets

$texte=fgets($handler,1024); 

fseek($handler,0,SEEK_END); // mettre le nom dans $nom

$time_stamp=time(); // et le time stamp dans $time_stamp

}

//si le nom ($nom) est égale au nom recherché ($nom_loc) alors afficher le time stamp associé 

//utiliser la combinaison if + strcmp 



if (strcm($nom==$nom_loc) {

echo $nom_loc. "Nom timeStamp est ".$time_stamp;

}

}

//Début du code

//je déclare une variable

$pf_fichierLog; //c'est un file handler sur le fichier de log...

//il va servir à toutes nos fonctions qui manipulent ce fichier

/ouverture du fichier log 

$handler = ouvertureFichierLog($pf_fichierLog);



//préparation des données



//***********

$date = time();

$nom = $_POST["nom"]; 

//**********

/////////////// 

//ecriture dans le fichier 

if($nom != ""){

ecritureFichierLog($handler,$nom,$date); 



}

//Quelles sont les dates de passage de l utilisateur

afficheDatesFichierLog($pf_fichierLog,$nom);

echo $time_stamp . $nom;

fermetureFichierLog($handler);

//fermeture du fichier log

fermetureFichierLog($pf_fichierLog);

echo "<a href=formEnr3.html>retour</a><br>";

?>

girl_bond girl_bondicon_post
bonsoir,

je te remercie beaucoup pour ton aide je vais essayé ce que tu m'a donné et je te tiens au courant
encore merci