2010-01-14 6 views
0

J'essaie d'écrire des données à partir d'entrées de formulaire dans un fichier texte en utilisant PHP. Le fichier semble se charger correctement, mais n'écrit pas les données.Je n'écris pas dans un fichier, mais aucune erreur PHP

J'ai répercuté les valeurs d'entrée directement avant d'essayer d'écrire pour m'assurer qu'elles ne sont pas vides.

Le fichier texte se trouve dans le même répertoire que le fichier php.

J'ai reçu l'erreur "Attention: fwrite(): l'argument fourni n'est pas une ressource de flux valide" mais corrigé en ajustant les permissions sur le fichier texte.

Mon code actuel

$fp = fopen('sidebar_subscribers.txt', 'a'); 
fwrite($fp, $name."\t".$email."\t".$leader."\t".$industry."\t".$country."\t".$zip."\r\n"); 
fclose($fp); 

Pourquoi les valeurs ne s'écrit dans le document texte?

Y at-il quelque chose sur le serveur que php doit être configuré pour ce que je devrais vérifier?

Ceci est utilisé sur un blog WordPress.

Merci!

****** Le problème est maintenant résolu. Le fichier était créé et écrit au mauvais endroit. Merci pour votre aide et vos suggestions. *******

+0

essayer: ini_set ('display_errors', 'on'); error_reporting (E_ALL | E_STRICT); quelque part au début et voir s'il y a des erreurs – Jamol

+0

Aucune erreur retournée avec "ini_set ('display_errors', 'on'); error_reporting (E_ALL | E_STRICT);" – Joe

Répondre

1

Le code tel qu'il est écrit fonctionne pour moi; Je vous suggère d'ajouter ce qui suit pour déterminer où l'erreur se produit:

<?php  
    $fp = fopen('sidebar_subscribers.txt', 'a') or die('fopen failed'); 

    fwrite($fp, "$name\t$email\t$leader\t$industry\t$country\t$zip\r\n") or die('fwrite failed'); 
?> 

L'erreur initiale au sujet d'une ressource de flux non valide a été un résultat de ne pas vérifier vos valeurs de retour, que le « ou mourir() » fait essentiellement pour toi. fopen échouait, et renvoyait false, et vous passiez false comme premier argument pour fwrite.

Vous pouvez encore vérifier les erreurs en examinant la valeur de retour de fwrite:

<?php 

$ret = fwrite($fp, "$name\t$email\t$leader\t$industry\t$country\t$zip\r\n"); 

if ($ret === false) 
    die("Fwrite failed"); 
echo ("fwrite wrote $ret bytes"); 
?> 
+0

J'ai fait ce qui précède. Aucune erreur de matrice n'est retournée, et il a fait écho qu'il a écrit 50 octets, ce qui semble assez précis pour la petite quantité de données écrites. Le fichier texte est toujours vide si – Joe

+0

Essayez de changer le mode de fichier à «w» au lieu de «a», voir si quelque chose apparaît dans le fichier. – meagar

+1

Aussi, essayez de changer votre nom de fichier en un chemin absolu, quelque chose comme "/home/user/sidebar_subscribers.txt" et voyez si quelque chose est écrit. Il se peut que vous remplissiez effectivement un fichier avec du texte, mais c'est un fichier différent de celui que vous vérifiez. – meagar

0

Essayez fflush($fp) avant de fermer.

+1

fclose vide toujours implicitement le tampon. – meagar

+0

Désolé, cela n'a pas fonctionné. – Joe

Questions connexes