Problème d'écriture sur un fichier .txt

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème d'écriture sur un fichier .txt

par sadeq » 01 juin 2006, 17:23

tu ne dis rien sur ce que représentent $domaine et donnees : est-ce deux répertoires ou un seul ?
si donnees est un sous-répertoire de $domaine il faut écrire $domaine."/donnees/fichier.txt"

et t'as pas besoins d'utiliser le mode "w+" seul "w" suffit voir fopen().

Si c'est un problème de droit d'accès utilise un chmod($fichier, 755)
755: tout pour le propriétaire, lecture et exécution pour les autres

par goeb » 01 juin 2006, 17:06

salut,

peut-être que le nom du fichier est un peu moisi. Par exemple :
XXdonnees/fichier.txt

si le répertoire "XXdonnees" n'existe pas, alors ça fera une erreur.
fais un echo $fichier; just'avant le fopen, pour vérifier ce genre de problème.

il peut aussi y avoir des droits d'écriture insuffisants sur un fichier.txt déjà existant.

par lulumOriss » 30 mai 2006, 12:03

Non non, le domaine envoyé est correct. J'ai essayé avec ta proposition : ça ne change rien.

Pour affiner, la lecture de mon fichier me renvoit une chaine vide :
if ($ouverture = fopen ($fichier, "r"))
{
	$texte = fgets ($ouverture, 4096);
	echo "&etatTraitement=Résultat : ".$texte."&";
	fclose ($ouverture);
}
J'obtiens "Résultat : "

Pourtant fpassthru me renvoit 554.

par jojolapine » 30 mai 2006, 11:54

est-ce que le problème viendrait pas du fait que le $domaine est à null?
je sais pas si concaténer null à une chaine est possible...
essaye de faire
$domaine = (isset ($_POST['domaine']) && $_POST['domaine'] != null) ? $_POST['domaine']: ""; 

Problème d'écriture sur un fichier .txt

par lulumOriss » 30 mai 2006, 11:28

Bonjour,

je n'arrive pas à écrire dans un fichier .txt avec la fonction suivante :
<?php

$contenu = (isset ($_POST['contenu']) && $_POST['contenu'] != null) ? $_POST['contenu']: null;
$domaine = (isset ($_POST['domaine']) && $_POST['domaine'] != null) ? $_POST['domaine']: null;

$fichier = $domaine . "donnees/fichier.txt";
if ($ouverture = fopen ($fichier,'w+'))
{
	fputs ($ouverture, stripslashes ($contenu));
	fclose ($ouverture);
	echo "&etatTraitement=true&";
}
else
{
	echo "&etatTraitement=Problème&";
	exit ();
}

?>
Je reçois "Problème".

C'est peut-être une histoire de droit mais j'ai passé le safe mode de php5 à on (je suis en local avec MAMP).

Quelqu'un a une idée ?
Merci. lulu.