Estoy siguiendo un curso de un libro de PHP y de momento todo me iba bien, hasta que he llegado al tema de crear y leer archivos.
Hay un formulario que rellena el cliente y que recojo en el siguiente archivo PHP:
Código:
El problema es que no parece dejarme crear el archivo, siempre me sale el mensaje: "Your Order could not be processed at this time." <?php //creamos nombres de variables cortos. $tireqty=$_POST['tireqty']; $oilqty=$_POST['oilqty']; $sparkqty=$_POST['sparkqty']; $address=$_POST['address']; $DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT']; ?> <HTML> <HEAD> <title>Bob´s Auto Parts -Order Results</title> </HEAD> <BODY> <h1>Bob´s Auto Parts</h1> <h2>Order Results</h2> <?php $date=date('H:i, jS F'); echo '<p>Order Processed at '; echo $date; echo '</p>'; echo '<p>Your order is as follows:</p>'; $totalqty=0; $totalqty=$tireqty+$oilqty+$sparkqty; echo 'Items Ordered: '.$totalqty.'<br />'; if ($totalqty==0) { echo 'You did not order anything on the previus page!<br />'; } else { if ($tireqty>0) {echo $tireqty. ' tires<br />';} if ($oilqty>0) {echo $oilqty. ' bottles of oil<br />';} if ($sparkqty>0) {echo $sparkqty. ' spark plugs<br />';} } $totalamount=0.00; define('TIREPRICE',100); define('OILPPRICE',10); define('SPARKPRICE',4); $totalamount=$tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE; $totalamount=number_format($totalamount, 2, '.', ' '); echo '<p>Total Order is '.$totalamount.'</p>'; echo '<p>Address to ship to is: '.$address.'</p>'; $outputstring=$date."\t".$tireqty." tires\t".$oilqty." oil\t" .sparkqty." spark plugs\t\$".$totalamount ."\t".$address."\n"; echo $DOCUMENT_ROOT; //abrimos el archivo de adjunción. @ $fp=fopen("$DOCUMENT_ROOT/orders.txt",'ab'); if(!$fp) { echo '<p><strong>Your Order could not be processed at this time.</strong></p></body></html>'; exit; } fwrite($fp,$outputstring,strlen($outputstring)); fclose($fp); echo '<p>Order Written.</p>'; ?> </BODY> </HTML>
con lo cual deduzco que no lo crea y devuelve la línea de código que marca el error en el bucle.
Cuando ejecuto la línea echo $DOCUMENT_ROOT; me da la dirección correcta, así que el problema no parece venir de ahí. Pero no me crea el archivo
Otra cosa que puedo comentaros es que he comprobado PHP.INI y allow_url_fopen se encuentra en ON.
Una ayudita, por favor. Gracias por adelantado.