fopen no abre archivos

Iniciado por Nitch, 2 Julio 2011, 14:12 PM

0 Miembros y 2 Visitantes están viendo este tema.

Nitch

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 />';


?>

Nitch

Y aunque le ponga el DOCUMENT_ROOT tampoco hace nada:
$fp=fopen("DOCUMENT_ROOT/../orders/orders.txt",'ab')

Nitch

con el $ delante de DOCUMENT_ROOT xD

#!drvy

Yo en lo que me he fijado no veo ningun error  :rolleyes:

Ni lo lees ni escribes ni nada solo lo abres.



Saludos

Nitch

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

#!drvy

Pero como sabes que no lo abre ?

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

Código (php) [Seleccionar]
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

Nitch

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

#!drvy

Vale,

Pon en primera linea de tu php

Código (php) [Seleccionar]
error_reporting(E_ALL);
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

Nitch

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

#!drvy

 :xD

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

por esta

Código (php) [Seleccionar]
$fp=fopen("../orders/orders.txt", 'ab');


La diferencia es que he quitado la primera /.



Saludos