Crear un archivo de texto con php

Iniciado por hanhgel, 6 Octubre 2013, 19:46 PM

0 Miembros y 1 Visitante están viendo este tema.

hanhgel

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

hanhgel

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.

GenR_18

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 (php) [Seleccionar]

echo "Algo... xD";




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