Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Nitch en 2 Julio 2011, 14:12 pm



Título: fopen no abre archivos
Publicado por: Nitch en 2 Julio 2011, 14:12 pm
Hola. Estoy intentando abrir un archivo con la funcion fopen y el problema esue no pasa nada, ni me devuelve error, ni me lo abre, ni nada, y eso que el archivo ya esta creado. Os adjunto el codigo para ver si asin os puedo aclarar mas:

<html>
<head>
<title> Procesar </title>
</head>
<body bgcolor="black" text="white">
<h1>Desguaces Bob</h1>
<h2>Resultados de procesar</h2>
<?php

$tiresqty=$_POST['tiresqty'];
$oilqty=$_POST['oilqty'];
$sparkqty=$_POST['sparkqty'];
$adress=$_POST['adress'];
$DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT'];


echo "<p> Orden procesada a las ".date('H:i, jS F')."<p>";
echo "<p> Usted ha pedido: </p>";
echo $tiresqty." tires.<br />";
echo $oilqty." botellas de aceite.<br />";
echo $sparkqty." bujias.<br />";
echo 'Direccion de envio: '.$adress.'<br />';

$fp=fopen("/../orders/orders.txt", 'ab');

define('TIREPRICE', 100);
define('OILPRICE', 10);
define('SPARKPRICE', 4);

$totalqty=$tireqty+$oilqty+$sparkqty;
$totalamount=$tireqty*TIREPRICE
                +$oilqty*OILPRICE
                +$sparkqty*SPARKPRICE;
echo 'Total sin Iva: '.number_format($totalamount,2).' Euros.<br />';

$taxrate=0.10;
$totalamount=$totalamount*(1+$taxrate);

echo 'Total con Iva: '.number_format($totalamount,2).' Euros.<br />';


?>


Título: Re: fopen no abre archivos
Publicado por: Nitch en 2 Julio 2011, 14:15 pm
Y aunque le ponga el DOCUMENT_ROOT tampoco hace nada:
$fp=fopen("DOCUMENT_ROOT/../orders/orders.txt",'ab')


Título: Re: fopen no abre archivos
Publicado por: Nitch en 2 Julio 2011, 14:15 pm
con el $ delante de DOCUMENT_ROOT xD


Título: Re: fopen no abre archivos
Publicado por: #!drvy en 2 Julio 2011, 14:19 pm
Yo en lo que me he fijado no veo ningun error  :rolleyes:

Ni lo lees ni escribes ni nada solo lo abres.



Saludos


Título: Re: fopen no abre archivos
Publicado por: Nitch en 2 Julio 2011, 14:21 pm
ese es el rpoblema, que ni siquiera se abre, y he probado cambiando a 'w+' y tampoco pasa nada. Trabajo en ubuntu, no en windows


Título: Re: fopen no abre archivos
Publicado por: #!drvy en 2 Julio 2011, 14:28 pm
Pero como sabes que no lo abre ?

Prueba cambiándolo por esta linea y a ver lo que te dice.

Código
  1. if($fp=fopen("/../orders/orders.txt", 'ab')){echo 'Archivo abierto';} else {echo 'Archivo no abierto';}


Por otra parte Linux en general es bastante estricto con los permisos. Quizás debas cambiarlos.

Si el resultado te dice "Archivo no abierto", prueba cambiando en configuración de PHP (php.ini) la linea: error_reporting = a  error_reporting =E_ALL | E_STRICT. Y mira a ver si te aloja algún error.


Saludos
 


Título: Re: fopen no abre archivos
Publicado por: Nitch en 2 Julio 2011, 14:32 pm
he cambiado los permisos y lo he puesto al 777, osea, que se puede hacer de todo, y luego, he pegado tu codigo y me aparece el else,'archivo no abierto'. y el archivo existe.
Gracias por la rapida contestacion que mestas dando tio


Título: Re: fopen no abre archivos
Publicado por: #!drvy en 2 Julio 2011, 14:40 pm
Vale,

Pon en primera linea de tu php

Código
  1. ini_set('display_errors','On');


o edita tu php.ini buscando las lineas error_reporting y display_errors y cambiando sus respectivos valoes a "E_ALL" y "On".

Abre el archivo de nuevo y mira a ver si te muestra algún error.

De paso si es posible indica me la la ruta completa del archivo. Me refiero

Ahora mismo estas indicando que tu archivo se encuentra en otras carpetas por encima de la tuya.



Saludos


Título: Re: fopen no abre archivos
Publicado por: Nitch en 2 Julio 2011, 14:46 pm
vale, ahora por lo menos ya me sale un error xD algo es algo.
este es el mensaje de error:
Warning: fopen(/../orders/orders.txt): failed to open stream: No such file or directory in /var/www/php/procesar.php on line 26 Archivo no abierto Notice: Undefined variable: tireqty in /var/www/php/procesar.php on line 32 Notice: Undefined variable: tireqty in /var/www/php/procesar.php on line 34

y luego la ruta del archivo es la siguiente:
/var/www/orders/orders.txt
y yo estoy en /var/www/php/
asin que para acceder a archivo, pongo los dos puntos para escalar un directorio y meterme en el que está: ../orders/orders.txt


Título: Re: fopen no abre archivos
Publicado por: #!drvy en 2 Julio 2011, 14:53 pm
 :xD

Cambia esta linea:
Código
  1. $fp=fopen("/../orders/orders.txt", 'ab');

por esta

Código
  1. $fp=fopen("../orders/orders.txt", 'ab');


La diferencia es que he quitado la primera /.



Saludos


Título: Re: fopen no abre archivos
Publicado por: Nitch en 2 Julio 2011, 14:56 pm
vale, ahora me pone que se ha abierto xD:

Archivo abierto Notice: Undefined variable: tireqty in /var/www/php/procesar.php on line 32 Notice: Undefined variable: tireqty in /var/www/php/procesar.php on line 34

pero una preguntilla que igual es de un poco novato pero bueno, creo que todos empezamos por ahi alguna vez, ahora que me pone que se ha abierto, no se me deberia abrir como tal? es decir, con el bloc de notas o algo?


Título: Re: fopen no abre archivos
Publicado por: #!drvy en 2 Julio 2011, 14:59 pm
No, lo abre para posteriormente si esta indicado leer o escribir sobre el.


Con el bloc de notas lo abriria solo si se usa el exec (http://php.net/manual/es/function.exec.php) pero no tiene sentido puesto que php ya tiene su heramienta para leer y escribir en archivos.


Consulta sobre fwrite (http://es2.php.net/manual/es/function.fwrite.php) y fread (http://es2.php.net/manual/es/function.fread.php).




Saludos


Título: Re: fopen no abre archivos
Publicado por: Nitch en 2 Julio 2011, 15:02 pm
vale tio, muchisimas gracias por las claras y rapidas contestaciones, eres un crack.

Lo que estoy intentando hacer es que el codigo de la pagina que te mostrado, se llama procesar.php, y viene enlazadada por un formulario anterior, y estoy intentando que los datos del formulario se queden guardados en ese archivo, pero como bien has dicho, consultare todas las opciones disponibles d fopen, fwrite, fclose,etc...
Mil gracias.


Título: Re: fopen no abre archivos
Publicado por: #!drvy en 2 Julio 2011, 15:05 pm
Me alegro.


Ya sabes, cualquier duda aquí estamos.  ;-) ;-)




Saludos