Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: hanhgel en 6 Octubre 2013, 19:46 pm



Título: Crear un archivo de texto con php
Publicado por: hanhgel en 6 Octubre 2013, 19:46 pm
Buenas tardes.

Estoy iniciandome en php, (o lo que es lo mismo, ni idea aun), y estoy viendo como crear un fichero de texto a partir de un formulario.

La pagina que enviaria los datos es esta:

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8" />
   <title>Crear archivo de texto</title>
</head>
<body>
   <h2>Pedidos de pizza</h2>
   <br />
   <form method="post" action="pCAT.php">
   <label>Nombre:</label>
   <input type="text" name="nombre"/>
   <br />
   <label>Dirección:</label>
   <input type="text" name="direccion"/>
   <br />
   <label>Jamón y queso:</label>
   <input type="checkbox" name="jaque"/>
   <label>Cantidad</label>
   <input type="text" name="cantidadPizzas"/>
   <br/>
   <label>Napolitana:</label>
   <input type="checkbox" name="napolitana"/>
   <label>Cantidad</label>
   <input type="text" name="cantidadNapolitana"/>
   <br/>
   <label>Muzzarella:</label>
   <input type="checkbox" name="muzzarella"/>
   <label>Cantidad</label>
   <input type="text" name="cantidadMuzzarella"/>
   <br/>
   <input type="submit" name="enviar" value="Hacer pedido">
   <input type="reset" value="Borrar campos"/>
   </form>
</body>
</html>

Y la pagina que lo crease tiene este otro codigo:

<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8" />
   <title>Archivo de pedidos de pizzas</title>
</head>
<body>
   <p>hola</p>
   <?php
      $fichero=fopen("pedidos","a");
      if($fichero==false){
         die ("No se ha podido crear el archivo");
      }
      echo "Creando fichero";
/*nombre*/
      fputs($fichero,"Nombre: ");      
      fputs($fichero,$_REQUEST['nombre']);
      fputs($fichero,"\n");
/*direccion*/      
      fputs($fichero,"Dirección: ");
      fputs($fichero,$_REQUEST['direccion']);
      fputs($fichero,"\n");
/*pizzas*/
      if (isset($_REQUEST['jaque'])) {
         fputs($fichero,"Pizzas de jamón y queso: ");
         fputs($fichero,$_REQUEST['cantidadPizzas']);
         fputs($fichero,"\n");
      }
/*napolitanas*/      
      if (isset($_REQUEST['napolitana'])) {
         fputs($fichero,"Napolitanas: ");
         fputs($fichero,$_REQUEST['cantidadNapolitana')];   
         fputs($fichero,"\n");
      }
/*muzzarella*/   
      if (isset($_REQUEST['muzzarella'])) {
         fputs($fichero,"Muzzarellas: ");
         fputs($fichero,$_REQUEST['cantidadMuzzarella']);
         fputs($fichero,"\n");
         fputs($fichero,"Fin de pedido");
         fputs($fichero,"\n");      
         fputs($fichero,"\n");
      }
      fclose($fichero);
   ?>
</body>
</html>

A partir de pulsar el boton de enviar datos, la pagina se queda en blanco, no aparece el title de la pagina y tampoco ese "hola" que he puesto para probar. La carpeta en la que debe crearse ese fichero tiene permisos a 777. No entiendo que puede pasar, alguna idea?

Muchas gracias por adelantado


Título: Re: Crear un archivo de texto con php
Publicado por: hanhgel en 6 Octubre 2013, 21:01 pm
Solucionado. Un fallo de sintaxis en un fputs. Lo que no sabia es que ni siquiera se creaba el fichero habiendo ese error mas adelante. Conclusión: abandono Bluefish y vuelvo a NetBeans.


Título: Re: Crear un archivo de texto con php
Publicado por: GenR_18 en 7 Octubre 2013, 00:36 am
Que bueno que ya solucionaste tu problema, solo paso a dejarte unos pequeños consejos  :rolleyes:

Usa siempre que vayas a postear tu código en un foro las etiquetas del geshi para que se vea  y lo podamos leer mejor, por ejemplo:

Código
  1. echo "Algo... xD";
  2.  

(http://foro.elhacker.net/Themes/dark/images/bbc/code.gif)

En vez de usar $_REQUEST trata de usar $_POST o $_GET para evitar (en futuros códigos) problemas de seguridad y aparte request ya no se usa  :silbar:

Dale una checkada a la función fwrite()

Salu2