elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Duplica los las lineas creadas con la funcion fopen()
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duplica los las lineas creadas con la funcion fopen()  (Leído 2,996 veces)
archowl

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Duplica los las lineas creadas con la funcion fopen()
« en: 1 Diciembre 2016, 00:33 am »

Hola buenas a todos,
Quería ver si me pueden ayudar con un pequeño problema.
Lo que sucede es que cuando abro un archivo txt con las funciones de php y lo modifico, cuando recargo la pagina esta función se vuelve a ejecutar y me duplica lo que escribi.

Hay una solución para esto?

Saludos


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Duplica los las lineas creadas con la funcion fopen()
« Respuesta #1 en: 1 Diciembre 2016, 00:41 am »

muestra lo que haces (codigo)... probablemente tu crees que estás haciendo una cosa, pero claramente no estás haciendo lo que crees


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
archowl

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Duplica los las lineas creadas con la funcion fopen()
« Respuesta #2 en: 1 Diciembre 2016, 01:52 am »

bueno aquí esta la parte del  codigo

Código
  1. if (isset($_POST['boton'])) {
  2.  
  3.  
  4.  
  5.                      $producto= $_POST["txtproducto"];
  6.                      $precio= $_POST["txtprecio"];
  7.                      $modelo= $_POST["txtmodelo"];
  8.                      $valoracion= $_POST["txtvaloracion"];
  9.                      $tipo= $_POST["txttipo"];
  10.                      $id= $_POST["txtid"];
  11.                      $comentario= $_POST["txtcomen"];
  12.  
  13.                      $handle=fopen("productos.txt", "a+");
  14.                        $texto = "&".$producto.",".$precio.",".$modelo.",".$valoracion.",".$tipo.",".$id.",".$comentario;
  15.                      fwrite($handle, $texto);
  16.                      fclose($handle);
  17.  
  18.                  }
  19.                ?>
Aquí se ve como se repite 3 veces la linea



Aguante paint!!
« Última modificación: 1 Diciembre 2016, 01:59 am por archowl » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Duplica los las lineas creadas con la funcion fopen()
« Respuesta #3 en: 1 Diciembre 2016, 02:08 am »

hmmm comprendo! no había pensado que eso era a lo que te referías...

considero que tienes 2 caminos...

1. creas una variable de sesión donde indicas que fue lo ultimo escrito en el archivo, y si es diferente, escribes el archivo

2. lees el archivo y buscas lo ultimo escrito, si no es igual, escribes
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
archowl

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Duplica los las lineas creadas con la funcion fopen()
« Respuesta #4 en: 1 Diciembre 2016, 02:35 am »

Lo siento me explique mal.

Mira lo que estoy haciendo es que subo un archivo txt con nombre, códigos e id de productos y mediante código javascript me genera los contenedores con la información que hay en el archivo txt, hasta ahí no hay problema, lo que sucede es que yo quiero agregar nuevos productos pero debo hacerlo con código php, entonces hice un formulario para introducir los datos nuevos (nombre codigo del producto e id) y esto se agrega al archivo txt al final, el problema es que cuando refresco la pagina se duplica el producto nuevo como si lo hubiese escrito por 2da vez y sucede así cada vez que recargo la pagina.

como puedes ver en esta imagen yo solo agregue el primer computador(pc 180), los otros dos se generaron solos, al refrescar la pagina.
no se si que un poco mas claro.

« Última modificación: 1 Diciembre 2016, 02:41 am por archowl » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Duplica los las lineas creadas con la funcion fopen()
« Respuesta #5 en: 1 Diciembre 2016, 02:48 am »

cuando recargas la pagina te pregunta si quieres reenviar la información... ahí se reenvia los datos y repite... aun mis 2 opciones siguen siendo las validas para solucionar el problema... aunque hay una tercera

la pagina de muestra la separas de la pagina donde agregas el producto por ejemplo

mostrar.php y agregar.php

cuando agregas un producto (form) el action lo rediriges a agregar... haces tu proceso de agregar y al final usas una rediercción de php y reenvias al usuario a mostrar...

Código
  1. header('Location: mostrar.php');

así creas un espacio de separación, de manera que si refrescas, la pagina donde estás ya no es donde se enviaron los datos (quedó atrás de agregar.php)
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Batch] Función año bisiesto de 3 líneas.
Scripting
0x0309 5 6,795 Último mensaje 5 Mayo 2009, 16:33 pm
por 0x0309
esperar a la función fopen
PHP
franfis 9 2,871 Último mensaje 13 Marzo 2014, 03:10 am
por engel lex
eliminar tablas creadas por session
Bases de Datos
landerzx 1 2,283 Último mensaje 19 Diciembre 2014, 18:07 pm
por Shell Root
problema con variables creadas en funciones
Java
4dr14n31t0r 2 1,763 Último mensaje 19 Noviembre 2015, 02:20 am
por furciorifa
Generador de contraseñas redes wifi (Creadas por ISP/Router)
Hacking Wireless
marcos raketsky 0 3,578 Último mensaje 16 Marzo 2016, 21:39 pm
por marcos raketsky
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines