Foros del Web » Programando para Internet » PHP »

tengo error y no me doy cuenta donde

Estas en el tema de tengo error y no me doy cuenta donde en el foro de PHP en Foros del Web. hola , tengo echo este contador y me tira estos errores tengo php 4 <? $archivo="contador.txt"; $fp=fopen($archivo,"r"); $texto=fgets($fp,26); fclose($fp); $texto=$texto+1; $fp=fopen($archivo,"+w"); fputs($fp,$texto,26); fclose($fp); echo("el numero ...
  #1 (permalink)  
Antiguo 04/06/2004, 08:34
Avatar de diegodnt  
Fecha de Ingreso: mayo-2004
Ubicación: Buenos aires
Mensajes: 227
Antigüedad: 13 años, 6 meses
Puntos: 0
Busqueda tengo error y no me doy cuenta donde

hola , tengo echo este contador y me tira estos errores tengo php 4
<?
$archivo="contador.txt";
$fp=fopen($archivo,"r");
$texto=fgets($fp,26);
fclose($fp);
$texto=$texto+1;
$fp=fopen($archivo,"+w");
fputs($fp,$texto,26);
fclose($fp);
echo("el numero de veces es" . $texto);
?>
---------------------- --------------
y los errores que me tira son:
Warning: fopen(contador.txt): failed to open stream: Success in /usr/local/apache/htdocs/pppp/archivitomio.php on line 7

Warning: fputs(): supplied argument is not a valid stream resource in /usr/local/apache/htdocs/pppp/archivitomio.php on line 8

Warning: fclose(): supplied argument is not a valid stream resource in /usr/local/apache/htdocs/pppp/archivitomio.php on line 9
el numero de veces es1
------------------------------------ -----------------------
creo que por estos errores tampoco me suma el contador.
__________________
. Woo hoo When I feel heavy metal
  #2 (permalink)  
Antiguo 04/06/2004, 08:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
* ¿contador.txt .. existe?
te lo comento por qué primero intentas abrir el archivo (para leer un dato de el) .. lo actualizas (el dato) y guardas el archivo .. Pero, si no está creado "r" no lo creará.

Esto se puede resolver de dos formas:
1) subes el archivo contador.txt (sin nada en el) ..
2) Compruebas si existe (con is_file_exists() por ejemplo) y si no está creado (IF) .. pues lo creas.

Por otro lado .. algunas configuraciones de PHP (include_dir .. si mal no recuerdo php.ini) .. si no incluyen el "." (punto) .. no podras llamar a un archivo por "sunombre.tal" .. sino que tendras que usar "./sunombre.tal"

Un saludo,
  #3 (permalink)  
Antiguo 04/06/2004, 08:46
Avatar de diegodnt  
Fecha de Ingreso: mayo-2004
Ubicación: Buenos aires
Mensajes: 227
Antigüedad: 13 años, 6 meses
Puntos: 0
Muchisimas gracias no tenia ni idea que segun la configuracion tenia que agregar "../"para llamar a mi archivo los errores se fueron pero = no consigo que mi contador suba de numero me parece que no escribe y no se por que ya que el proceso esta bien realizado.haaa si el archivo "contador.txt" ya lo subi a la pagina con un 0 escrito en el
muchas gracias otra vez.
Saludos
__________________
. Woo hoo When I feel heavy metal
  #4 (permalink)  
Antiguo 04/06/2004, 09:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El modo "r" y con ese fgets() que usas .. sólo lees los primeros "26" bytes de ese archivo (vendría a ser .. el primer nº que ahí guardas ..).

Fijate (abre) tu archivo contador.txt y mira que es lo que se está generando actuamente .. Podría ser simplemente del nº de bytes que lees (en teoría un "caracter" ocuparía 8 bytes ..)

Otra alternativa .. ya que es un simple contador: usar file() para leer el archivo.

Código PHP:
<?
$archivo
="./contador.txt";

// Se lee el archivo .. file() genera un array . .sólo me interesa el primer elmento.
$fp=file($archivo);
// me quedo con el primer elemento del array arrojado y lo incremento.
$texto=$fp[0]+1;

// abres tu archivo para escritura y . .guardas el dato.
$fp=fopen($archivo,"+w");
fwrite($fp,$texto); // fwrite es un alias de fputs .. da igual usar una que otra.
fclose($fp);

// Presentas el dato si lo requires ...
echo("el numero de veces es" $texto);
?>

Un saludo,
  #5 (permalink)  
Antiguo 04/06/2004, 09:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
POr cierto .. se me pasó

Con filiesize() puedes ver el tamaño exacto de tu archivo .. así que podrías usarlo:

$texto=fgets($fp,filesize($archivo));
(y lo mismo opcional para el fwrite/fputs)

Un saludo,
  #6 (permalink)  
Antiguo 04/06/2004, 09:17
Avatar de diegodnt  
Fecha de Ingreso: mayo-2004
Ubicación: Buenos aires
Mensajes: 227
Antigüedad: 13 años, 6 meses
Puntos: 0
hola otra vez, el problema no es la lectura el problema es que no me escribe en el archivo por eso mi contador no sube y siempre es 1 no entiendo por que no escribe
__________________
. Woo hoo When I feel heavy metal
  #7 (permalink)  
Antiguo 04/06/2004, 09:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Y el directorio donde pretendes escribir ese archivo tiene permisos de escritura? (o por lo menos ese archivo)

Que sistema Operativo usas?

Un saludo,
  #8 (permalink)  
Antiguo 04/06/2004, 09:35
Avatar de diegodnt  
Fecha de Ingreso: mayo-2004
Ubicación: Buenos aires
Mensajes: 227
Antigüedad: 13 años, 6 meses
Puntos: 0
tengo windows 98 con samba instalado y si mis archivos estan autorizados para escritura y sin embargo no me escribe en el archivo. ensima me pone loco porque es facilisimo ya hice chats y formularios todo y este es mi karma, ya hice un contador con cookies y sessiones pero con archivos para actualizar en contadores no me anda, no es re loco?
Muchas gracias por tu tiempo
__________________
. Woo hoo When I feel heavy metal
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:55.