Page 1 sur 1

Problème ecriture de file avec fonction fopen

Posté : 04 août 2008, 11:56
par blubsy
Bonjour,
afin d'enregistrer des logs pour un paiement sécurisé je crait un fichié txt avec la fonction :
 $file    = $date."-".$time."--".$transaction_id.".txt";
$fp = fopen("$logfile","w+");
La fonction marche en gros (création du fichié), mais voilà de temps en temps (souvent même) à la place du texte que j'enregistre dedans qui est classique, je me retrouve avec un fichier remplis de hieroglyphe

Exemple :

Code : Tout sélectionner

㉣㈳㘰㔲㉦㔳㕣㉡㉣㌳㈴㔰㉣㈳㘰㔰㉣㌳㈴㉡㉣㌳㈴㔱㉣㈳㘰㔰㉣㐳㘰㔰㕣㈲㐳㈴㔱㉣㐳㘰㔰㉣㈳㈸㔰㉣㘰㐸㔱㉣㌳㉣㔰㉣㈳㉣㔱㌰㔴㈵㌲㌱㈵㕤㈳㌳㔵㌵㉥㌵㈵㈹㌹㉦㌴㌹㌲㌰㌲㔱㈹㌴㈵㕤㈳㌳㔵㌵㉥㌵㈵㈹㌹㉦㌴㌹
Si quelqu'un à une idée cela m'aiderait beaucoup.

Merci par avance

Posté : 04 août 2008, 11:57
par _activmik
Quand tu fais ton fopen(), tu penses bien à refermer le fichier apres ?

Posté : 04 août 2008, 11:59
par zeus
Bonjour,

Pour commencer, sache qu'il est inutile de mettre des " autour d'une variable. Tu va utiliser du processeur pour rien ;)

Sinon, le bout de code ne nous montre pas grand chose
- que contient la variable $logfile ?
- comment est-ce que tu pousses les données dans ton fichier ? (fwrite, ...)

Posté : 04 août 2008, 12:00
par blubsy
Oui oui le fichier est bien refermé avec
fclose($fp);

Et bon la création fonction de temps en temps alors c'est assé bizare et illogique.

Voici une partie du code :
    // Initialisation du chemin du fichier de log
    $date = date("Y-m-d");$date = str_replace("-", "", $date);
    $time = date("H:i:s");$time = str_replace(":", "", $time);

    $file    = $date."-".$time."--".$transaction_id.".txt";    // A modifier  OK NOTEST
    $logfile = "../log/".$file;

if($fp = fopen($logfile,"w+")){ /* ouverture du fichier en écriture */
//-----------------------------------
    // OK, Sauvegarde des champs de la réponse
    fwrite( $fp, "$don \n\nresult: $cgi_url\n");
    fwrite( $fp, "bank reponse: $bank_response_code\n\n");

    fwrite( $fp, "cgi_url: $cgi_url\n\n");

    fwrite( $fp, "merchant_id : $merchant_id\n");
    fwrite( $fp, "merchant_country : $merchant_country\n");
    fwrite( $fp, "amount : $amount\n");
    fwrite( $fp, "-------------------------------------------\n");
//-----------------------------------
    fclose($fp);

}else{ // L'ouverture a échouée
echo "Ouverture du fichier impossible";
exit();}
Pour tout expliqué les informations enregistré provienne d'un get url et d'un passage par un log de décryptage fournis par la banque (paiement type atos).

J'aurais pensé que les données n'était pas décrypter mais le script de test fonctionne lui corectement ce qui me fait dire que les données sont bien décrypté.

Je me demande donc si cela ne peut pas provenir d'un problème avec le serveur mais bon...[/quote]

Posté : 04 août 2008, 12:09
par zeus
Est-ce que tu as essayé d'afficher à l'écran le nom du fichier généré, les données url récupérée de la banque ?
Histoire d'être sûr que c'est l'écriture dans le fichier qui pose soucis ...

Sinon, à confirmer, mais il me semble que tu peux écrire directement
$date = date("Ymd");
a la place de
$date = date("Y-m-d");$date = str_replace("-", "", $date);

Posté : 04 août 2008, 12:13
par blubsy
pour la date c'est vrai que pourquoi faire simple quand on peut faire compliqué.

Pour le file depuis les problèmes j'ai fait un second script dans la même page pour récupéré les données décrypter envoyé par la banque et les enregistrés dans un autre files (fichier créé une seul fois et donnée ajouté à la fin du file). Et là aucun problème les données sont bien enregistré.