Buenas, estoy siguiendo el famoso curso de 0utkast y parece ser que los ejercicios están desactualizados con las nuevas versiones de PHP. Ahora mismo tengo un problema y es que no consigo que el envío de un formulario quede almacenado en un archivo .txt . Me da el mensaje predeterminado que esta programado para que salte cuando se cumple el
if (!$fp). Os pongo el código HTML y PHP completo para ver si me podéis ayudar:
Código:
<HTML>
<HEAD>
<TITLE>LIBROS LIBRES</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<META content="MSHTML 6.00.2800.1458" name=GENERATOR>
</HEAD>
<BODY>
<H1>Libros Libres</H1>
<H2>Formulario de pedido</H2>
<FORM action=procesarpedidos.php method=post>
<TABLE border=0>
<TBODY>
<TR bgColor=#cccccc>
<TD width=150>Libro</TD>
<TD width=15>Cantidad</TD></TR>
<TR>
<TD>ActionScript</TD>
<TD align=left><INPUT maxLength=3 size=3 name=actionqty></TD>
</TR>
<TR>
<TD>Photoshop</TD>
<TD align=left><INPUT maxLength=3 size=3 name=photoqty></TD>
</TR>
<TR>
<TD>Flash</TD>
<TD align=left><INPUT maxLength=3 size=3 name=flashqty></TD>
</TR>
<TR>
<TD>Dirección de envío</TD>
<TD align=middle><INPUT maxLength=40 size=40 name=direcc></TD>
</TR>
<TR>
<TD align=middle colSpan=2><INPUT type=submit value="Enviar pedido"></TD>
</TR>
</TBODY>
</TABLE>
</FORM>
</BODY>
</HTML>
Código:
<html>
<head>
<title>Resultado de pedido de la librería</title>
</head>
<body>
<h1>Libros Libres</h1>
<h2>Resultado del pedido</h2>
<?php
$actionqty = $_POST['actionqty'];
$photoqty = $_POST['photoqty'];
$flashqty = $_POST['flashqty'];
$direcc = $_POST['direcc'];
$totalqty = 0;
$totalqty += $actionqty;
$totalqty += $photoqty;
$totalqty += $flashqty;
$totalamount = 0.00;
define("ACTIONPRICE", 100);
define("PHOTOPRICE", 10);
define("FLASHPRICE", 4);
$date = date("H:i, j F");
echo "<p>Orden procesada a las ";
echo $date;
echo "<br>";
echo "<p>Usted nos ha hecho el siguiente pedido:";
echo "<br>";
if( $totalqty == 0 )
{
echo "¡ No ha hecho ningún pedido en el formulario previo!<br>";
}
else
{
if ( $actionqty>0 )
echo $actionqty." actionscript<br>";
if ( $photoqty>0 )
echo $photoqty." photoshop<br>";
if ( $flashqty>0 )
echo $flashqty." flash<br>";
}
$total = $actionqty * ACTIONPRICE + $photoqty * PHOTOPRICE + $flashqty * FLASHPRICE;
$total=number_format($total, 2, ".", " ");
echo "<P>El total de su pedido es ".$total."</p>";
echo "<P>La dirección de envío es ".$direcc."<br>";
$stringsalida = $date."\t".$actionqty." actionscript \t".$photoqty." photoshop\t"
.$flashqty." flash\t\$".$total
."\t". $direcc."\n";
// abrir fichero añadiendo
$fp = fopen("../pedidos/pedidos.txt", "a");
@ flock($fp, 2);
if (!$fp)
{
echo "<p><strong> Su orden no ha podido ser procesada en este momento. "
."Por favor inténtelo de nuevo más tarde.</strong></p></body></html>";
exit;
}
fwrite($fp, $stringsalida);
flock($fp, 3);
fclose($fp);
echo "<p>Su orden ha sido recibida y guardada.</p>";
?>
</body>
</html>
El error que me salta es este:
SCREAM: Error suppression ignored for
( ! ) Warning: fopen(../pedidos/pedidos.txt): failed to open stream: No such file or directory in C:\wamp\www\CursoPHP+MySQL\EjerciciosVT07\procesar pedidos.php on line 61
Y decir que el archivo pedidos está guardado en la carpeta padre de donde está giardado los mismos archivos php y html. de ahí que la ruta que he puesto es esta:
$fp = fopen("../pedidos/pedidos.txt", "a");
¿Eso está bien verdad?
En fin, a ver si lo he dejado todo lo suficientemente claro como para que me podáis ayudar.
Gracias de antemano!