Foros del Web » Programando para Internet » PHP »

modificar .txt via php

Estas en el tema de modificar .txt via php en el foro de PHP en Foros del Web. wenas wenas ^^ bueno ando con un problemita, estoy diseñando un sistema de encuentas, pero quiero q los votos sean guardados en un archivo de ...
  #1 (permalink)  
Antiguo 10/10/2006, 14:10
Avatar de DarkskullDA  
Fecha de Ingreso: julio-2006
Mensajes: 698
Antigüedad: 17 años, 9 meses
Puntos: 13
modificar .txt via php

wenas wenas ^^
bueno ando con un problemita, estoy diseñando un sistema de encuentas, pero quiero q los votos sean guardados en un archivo de texto no en una base de datos...

por ejemplo si preciono un boton llama a al php y este lee el archivo de texto y le suma 1 al valor, eso lo estoy haciendo asi:
Código PHP:
<? 
$filename 
"contador.txt";
$archivo file($filename,"r");
$contador $archivo[0];
$contador++;
$fp fopen$filename,"w");
fwrite($fp$contador); 
fclose($fp);
?>
y funciona en el text me coloca el numero 1 o 2 etc... pero el problema se complica por q necesito q el dato q guarde sea con una diferente sintaxis, deveria quedar algo asi :
(Esto para leerlo desde flash)
&votos1=10&
si precionara el bton tendria q quedarme asi : &votos1=11& si lo preciono denuevo: &votos1=12& etc etc xD

espero q alguien pueda ayudarme un poco, yo sigo intentando, pero espero ideas plz :D!

grax y saludos ^^
__________________
Curso Desarrollo De Aplicaciones IFrame Para Facebook Conoce la Graph Api, Javascript/PHP SDK, Dialogos, Pestañas, entre otros.
  #2 (permalink)  
Antiguo 10/10/2006, 15:02
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Pues creo que deberías de cambiar tu código a la hora de guardar el archivo de esta manera:

$filename = "contador.txt";
$archivo = file($filename,"r");
$contador = $archivo[0];
$contador++;
$guardar = "&votos1=".$contador."&";
$fp = fopen( $filename,"w");
fwrite($fp, $guardar);
fclose($fp);

Aunque ahora también tendrías que cambiar la forma en que lo lees, no lo se, tal vez realizando un explode. Suerte
  #3 (permalink)  
Antiguo 10/10/2006, 18:38
Avatar de DarkskullDA  
Fecha de Ingreso: julio-2006
Mensajes: 698
Antigüedad: 17 años, 9 meses
Puntos: 13
asi es ^^ grax.

weno estube probando y probando pero no me resulto, con el codigo modificado como em lo diste lo unico q hace es q me escribe
&votos1=1&
pero si llamo denuevo añ php me escribe
&votos1=&votos1=1&&
y esto no deveria ser asi.. deveria escribirme
&votos1=2&
se podra resolver este problema¿¿¿

y ademas.. (para rematar :P) hay otro problema en el mismo archivo de texto no solo iria &votos1=1& habria mas.. algo asi:
&votos1=1&
&votos2=1&
&votos3=1&

y al parecer si mando a q escriba me borra todo y ese seria un grave problema.
sigo probando y pensando xD, se aceptan propuestas :P
gtrax ^^
__________________
Curso Desarrollo De Aplicaciones IFrame Para Facebook Conoce la Graph Api, Javascript/PHP SDK, Dialogos, Pestañas, entre otros.
  #4 (permalink)  
Antiguo 10/10/2006, 22:28
Avatar de DarkskullDA  
Fecha de Ingreso: julio-2006
Mensajes: 698
Antigüedad: 17 años, 9 meses
Puntos: 13
hmm no encuentro la solucion, igual grax.. ^^

lo tendre q hacer con base de datos (no queria :s) pero asi sera xD!!
saludos ^^
__________________
Curso Desarrollo De Aplicaciones IFrame Para Facebook Conoce la Graph Api, Javascript/PHP SDK, Dialogos, Pestañas, entre otros.
  #5 (permalink)  
Antiguo 10/10/2006, 22:44
Avatar de Erikfrancisco  
Fecha de Ingreso: noviembre-2003
Ubicación: Estado de México
Mensajes: 503
Antigüedad: 20 años, 5 meses
Puntos: 4
Intenta cambiando tu archivo actual por este otro:

Código PHP:
<?php
$candidatos 
3// esta variable representa cuantos candidatos tienes es decir, &votos1=1&votos2=1 etc en este caso mostrará 3
$porquien 2// representa la variable que te llega ya sea post o get del candidato por quien voto en este caso voto por el candidato 2
$ruta 'votos.txt'// ruta hacia tu documento .txt 
$archivo file $ruta ); // leemos el archivo en forma de array y lo almacenamos en una variable 
if ( $archivo // si existe el archivo lo leemos y realizamos la operaciones pertinentes
{
   for ( 
$i 0$i count $archivo ); $i++ )
   {
      
$separavariables explode "&"$archivo$i ] ); //separamos las variables y las obtendríamos de esta forma votos1=1
      
$guardar2 '';

      for ( 
$j 1$j count $separavariables ); $j++ )
      {
         
$obtencandidato explode "="$separavariables[$j] );
         
$candidato substr $obtencandidato[0], 5strlen $obtencandidato[0] ) - );

         if ( 
$candidato != $porquien )
         {
            
$guardar2 .= "&$separavariables[$j]";
            continue;
         }

         
$obtencandidato[1] += 1;
         
$guardar2 .= "&$obtencandidato[0]=$obtencandidato[1]";
      }
      echo 
$guardar2;
   }
   
$fp fopen $ruta,"w" );  
   
fwrite ($fp$guardar2);  
   
fclose ($fp);

else 
// si no existe lo creamos
{
   
$guardar ""// esta será la variable que tendrá el contenido a guardar

   
for ( $e 1$e <= $candidatos$e++ )
   {
      if ( 
$e != $porquien )
      {
         
$guardar .= "&votos".$e."=0";
         continue;
      }

      
$guardar .= "&votos".$e."=1";
   }

   echo 
$guardar;

   
$fp2 fopen $ruta,"w" );  
   
fwrite $fp2$guardar );  
   
fclose $fp2 );  

?>
Trate de ser lo más explicito para que se entendiera lo que hace el código. El resultado es que en el navegador se imprime &votos1=1&votos2=0&votos3=0 que por lo que parece lo necesitas si estas utilizando Flash y así poder utilizar su objeto LoadVars(). Bueno ahora sólo resta que busque la manera de enviarle la variable $porquien ya que de esta depende a quien se le va a sumar un voto.

Espero te sirva de algo o por lo menos para darte una idea. Suerte

PD. Deberías estudiar el código que te proporcionan para que así, si se te vuelve a presentar un problema semejante lo puedas hacer sólo. Lo digo porque ya habiamos tratado este tema en un post anterior:

http://www.forosdelweb.com/f18/modificar-txt-430248/

Última edición por Erikfrancisco; 11/10/2006 a las 13:18
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 20:22.