Estoy tratando de escribir los datos del formulario entradas a un archivo de texto usando PHP. El archivo parece que carga correctamente, pero no escribe los datos.

Me han hecho eco de la entrada directa de los valores antes de intentar escribir para asegurarse de que no están vacías.

El archivo de texto se encuentra en el mismo directorio que el archivo php.

Me orginally tengo el error «Advertencia: fwrite(): se suministra el argumento no es válido flujo de recursos», pero corregido mediante el ajuste de los permisos en el archivo de texto.

Mi actual código

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

¿Por qué son los valores, no de obtener por escrito el documento de texto?

Hay nada en el servidor que php necesita ser configurado para que me debe comprobar?

Esto está siendo utilizado en un blog de WordPress.

Gracias!

****** Problema se ha resuelto. El archivo estaba siendo creado y escrito en el lugar equivocado. Gracias por toda su ayuda y sugerencias. *******

  • probar: ini_set(‘display_errors’, ‘on’); error_reporting(E_ALL|E_STRICT); en algún lugar en el principio y ver si hay errores
  • No se devolverá ningún error con «ini_set(‘display_errors’, ‘on’); error_reporting(E_ALL|E_STRICT);»
InformationsquelleAutor Joe | 2010-01-14

2 Comentarios

  1. 1

    El código como obras escritas para mí, me gustaría sugerir la adición de los siguientes para determinar dónde está el error que está sucediendo:

    <?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');
    ?>

    El error original acerca de un inválido flujo de recursos fue el resultado de no controlar sus valores de retorno, que la «or die()» hace esencialmente para usted. fopen estaba fallando, y devolver false, y que fueron pasando falso como el primer argumento a fwrite.

    Además, usted puede comprobar si hay errores, examinando el valor de retorno 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");
    ?>
    • Yo hice el de arriba. No mueren los errores devueltos, y se hizo eco de que escribió un 50 bytes, lo que parece bastante precisa para la pequeña cantidad de datos escritos. El archivo de texto está todavía en blanco, aunque
    • Intente cambiar el modo de archivo de ‘w’ en lugar de ‘a’, a ver si algo aparece en el archivo.
    • También, trate de cambiar su nombre de archivo a una ruta de acceso absoluta, algo así como «/home/user/sidebar_subscribers.txt» y ver si hay algo escrito. Podría ser que usted está, de hecho, el llenado de un archivo con el texto, pero es un archivo diferente que el que está comprobando.
    • Meagar usted está exactamente correcto. Un nuevo archivo fue creado en el directorio raíz y tenía escrito allí. ¿Cómo puedo especificar la ruta de acceso absoluta, realpath(‘test.com/this/is/my/file/subscribe.txt) ?
    • Usted sólo necesita especificar una ruta de acceso a un archivo tiene permisos de escritura, comenzando por «/», en el directorio raíz.
    • me puse la ruta como «$fp = fopen(‘/wp-content/themes/sitename/sidebar_subscribers.txt’, ‘a’);» y se está diciendo que el archivo o directorio no existe. Esta es una instalación de WordPress, hay algo que deba hacer diferente?
    • Trate de $fp = fopen($_SERVER['DOCUMENT_ROOT'] . '/wp-content/themes/sitename/sidebar_subscribers.txt', 'a');
    • Que funcionó! Maravilloso. Gracias a todos por su ayuda.

Dejar respuesta

Please enter your comment!
Please enter your name here