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 />';
?>
Y aunque le ponga el DOCUMENT_ROOT tampoco hace nada:
$fp=fopen("DOCUMENT_ROOT/../orders/orders.txt",'ab')
con el $ delante de DOCUMENT_ROOT xD
Yo en lo que me he fijado no veo ningun error :rolleyes:
Ni lo lees ni escribes ni nada solo lo abres.
Saludos
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
Pero como sabes que no lo abre ?
Prueba cambiándolo por esta linea y a ver lo que te dice.
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
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
Vale,
Pon en primera linea de tu php
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
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
:xD
Cambia esta linea:
$fp=fopen("/../orders/orders.txt", 'ab');
por esta
$fp=fopen("../orders/orders.txt", 'ab');
La diferencia es que he quitado la primera /.
Saludos
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?
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
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.
Me alegro.
Ya sabes, cualquier duda aquí estamos. ;-) ;-)
Saludos