Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/03/2007, 10:15
KLAYMAN
 
Fecha de Ingreso: febrero-2002
Mensajes: 351
Antigüedad: 22 años, 3 meses
Puntos: 19
Problema con archivo

Hola y antes de nada gracias por leer mi mensaje.

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:
<?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>
El problema es que no parece dejarme crear el archivo, siempre me sale el mensaje: "Your Order could not be processed at this time."
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.