Acabo de instalar PHP en IIS y estoy haciendo las primeras pruebas con la programación con los ejemplos de un libro que estoy leyendo y, logícamente, surgió el primer problema.
El código que pongo a continuación funciona sin dar ningún tipo de error pero no graba el fichero, me envía por pantalla el mensaje del la if que detecta que no se ha abierto el fichero:
Su pedido no puede ser procesado en este momento. Por favor, intentelo de nuevo más tarde.
Código:
La duda que tengo es donde está el error ¿en la configuración del PHP? ¿en los permisos del IIS?<?php // cree nombres de variable cortos $tireqty = $_POST['tireqty']; $oilqty = $_POST['oilqty']; $sparkqty = $_POST['sparkqty']; $address = $_POST['address']; $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title> Processorder PHP </title> </head> <body> <h1>Recambios Bob</h1> <h2>Pedidos</h2> <?php echo '<P>Pedido procesado el :'; echo date('H:i, jS F'); echo '</p>'; echo '<p> Su pedido es el siguiente : </p>'; $totalqty = 0; $totalqty = $tireqty + $oilqty + $sparkqty; echo 'Artículos pedidos : '.$totalqty.'<br /><br />'; if( $totalqty == 0 ) { echo 'No ha pedido nada en la página anterior!<br />'; } else { if ( $tireqty>0 ) echo $tireqty.' neumáticos<br />'; if ( $oilqty>0 ) echo $oilqty.' botellas de aceite<br />'; if ( $sparkqty>0 ) echo $sparkqty.' bujías<br />'; } $totalamount = 0.00; define('TIREPRICE', 100); define('OILPRICE', 10); define('SPARKPRICE', 4); $totalamount = $tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKQTY; $totalamount=number_format($totalamount, 2, '.', ' '); echo '<p>El total del pedido es : '.$totalamount.'</p>'; echo '<p>Dirección del envío : '.$address.'</p>'; $outputstring = $date."\t".$tireqty." neumáticos \t".$oilqty." aceite\t".$sparkqty." bujías\t\$".totalamount."\t". $address. "\n"; // abra el archivo para adjunción @ $fp = fopen("$DOCUMENT_ROOT/../datos/pedidos.txt", 'ab'); if (!$fp) { echo'<p><strong> Su pedido no puede ser procesado en este momento. '. 'Por favor, intentelo de nuevo más tarde.</strong></p></body></html>'; exit; } fwrite($fp, $outputstring, strlen($outputstring)); fclose($fp); echo '<p>Pedido grabado.</p>'; ?> </body> </html>
Saludos.
