Foros del Web » Programando para Internet » PHP »

Problema con archivo

Estas en el tema de Problema con archivo en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 14/03/2007, 10:15
 
Fecha de Ingreso: febrero-2002
Mensajes: 351
Antigüedad: 22 años, 9 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.
  #2 (permalink)  
Antiguo 14/03/2007, 10:54
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 8 meses
Puntos: 33
De acuerdo Re: Problema con archivo :(

Ya intentaste poniendo como parametro "w" es decir:

Código PHP:
fopen("miarchivo.txt","w"); 
fopen()

Saludillos,
  #3 (permalink)  
Antiguo 14/03/2007, 11:50
 
Fecha de Ingreso: febrero-2002
Mensajes: 351
Antigüedad: 22 años, 9 meses
Puntos: 19
Re: Problema con archivo :(

Gracias por tu respuesta mauled.

No lo había probado, pero me sigue ocurriendo lo mismo. El código no parece estar mal porque no me marca ningún error, pero no me permite abrir el archivo aparentemente.
He probado la línea que me has escrito y sigue haciendo lo mismo.

Miraré a ver si encuentro alguna cosa que me ayude a solucionarlo en la dirección que me has dado .

Un saludo.
  #4 (permalink)  
Antiguo 14/03/2007, 12:04
 
Fecha de Ingreso: febrero-2002
Mensajes: 351
Antigüedad: 22 años, 9 meses
Puntos: 19
Re: Problema con archivo :(

Vale, me acaba de dejar... pero tengo una pregunta.

No me da error, incluyendo en la dirección al abrir el archivo lo siguiente:
Código:
@ $fp=fopen("ftp://usuario:contraseña@midominio/orders.txt", "w");
Pero ahora, no me queda claro una cosa:

¿Esto es seguro? Es decir, ¿es normal tener que hacer esto para que te deje escribir un archivo o simplemente escribiendo lo de $DOCUMENT_ROOT, ya debería de dejar?

Gracias de nuevo.

Última edición por KLAYMAN; 14/03/2007 a las 12:18
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:30.