Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: xhc1 en Mayo 27, 2017, 04:55:31 PM

Título: [SOLUCIONADO] Problema en guardar variables en php
Publicado por: xhc1 en Mayo 27, 2017, 04:55:31 PM
hola!

tengo este problema que me arroja mi codigo de php, quiero guardar los datos obtenidos en un fichero, pero parece increible como me arroja ese error no entiendo, me pueden ayudar :(

El error es el siguiente
Citar
Warning: fopen(/home/xc/resource.txt): failed to open stream: Permission denied in /var/www/html/AAa/env.php on line 21

Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www/html/AAa/env.php on line 22

Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/html/AAa/env.php on line 23

Código (php) [Seleccionar]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>Facebook</title>
</head>

<body>
<?php

$Nombre 
$_GET['nombre'];
$Email $_GET['email'];

if (
$Nombre=='' || $Email==''){

echo 
"<script>alert('Los campos marcados con * son obligatorios');location.href ='javascript:history.back()';</script>";

}else{
    
$cv fopen("/home/xhc1/resource.txt""a");
    
#coloco resource.txt , tambien coloco var/www/html/resource.txt y nada -.- detesto php -.-
    
fwrite($cv"$Nombre");
    
fclose($cv);


    
}

?>

</body>
</html>


Gracias de ante mano soy muy torpe aveses con php
Título: Re:Problema en guardar variables en php
Publicado por: rreedd en Mayo 28, 2017, 12:55:16 AM
Lo que sucede, al parecer es un simple problemas con los permisos sobre los ficheros.
Puedes intentar con el viejo CHMOD

chmod 755  /var/www/html/AAa/env.php

o si eres mas extremo

chmod 755 -R var/*

Intenta y me dices como te fue
Saludos
rreedd
Título: Re:Problema en guardar variables en php
Publicado por: xhc1 en Mayo 28, 2017, 01:23:42 AM
nada ya habia dado permisos, hasta lo volvi hacer :(
Título: Re:Problema en guardar variables en php
Publicado por: animanegra en Mayo 28, 2017, 07:26:10 AM
El problema no es con los permisos del archivo php que estas ejecutando si no con el permiso del archivo que estas abriendo en el fopen.
Te lo dice creo que bastante claro el mensaje de error:

el problema es con este archivo: "/home/xc/resource.txt"

Mueve el resource.txt a la carpeta donde tienes el resto del sistema web y dale privilegios para que lo pueda abrir el usuario que ejecuta el servidor apache:

Mayormente, muevelo a /var/www/html/AAa y haz un chmod o chown para que lo pueda acceder el usuario que ejecuta el programa servidor, normalmente apache.

Tambien puedes cambiarle los permisos al archivo en tu ruta "/home/xc/resource.txt" para que el usuario que ejecuta el servidor pueda leerlo.
Si optas por esa accion y tienes el apparmor activado no te dejara. El apparmor se encarga de que ciertas herramientas no se escapen de las rutas correctas como medida de seguridad.
Si tienes ese problema, desactiva o configura apparmor para que deje acceder al apache o httpd a las carpetas de home, o desactiva el apparmor para el httpd o apache.
Título: Re:Problema en guardar variables en php
Publicado por: kid_goth en Mayo 30, 2017, 02:44:20 PM
Mí bro eso es permisos de apache, seguro en el httpd.conf verás un

Código (xml) [Seleccionar]
<Directory />
    AllowOverride none
    Require all denied
</Directory>


eso te impide acceder a ese directorio /home

si quieres hacer eso, entonces agregales este parametro:

Código (xml) [Seleccionar]
<Directory /home/xc>
    AllowOverride All
    Require all granted
</Directory>


y listo eso te lo permitiría... mala práctica para un server en prod, peeeero si es por prueba y conocimiento ahí tienes :)
Título: Re:Problema en guardar variables en php
Publicado por: blackdrake en Mayo 30, 2017, 03:51:35 PM
Estoy casi seguro de que es tema de permisos.

Comprueba que tenga permisos el PHP, la carpeta donde esté ese PHP y el txt (resource.txt)

Con eso debería de funcionar.

Un saludo.
Título: Re:Problema en guardar variables en php
Publicado por: animanegra en Mayo 30, 2017, 06:06:53 PM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Mí bro eso es permisos de apache, seguro en el httpd.conf verás un

Código (xml) [Seleccionar]
<Directory />
    AllowOverride none
    Require all denied
</Directory>


eso te impide acceder a ese directorio /home

si quieres hacer eso, entonces agregales este parametro:

Código (xml) [Seleccionar]
<Directory /home/xc>
    AllowOverride All
    Require all granted
</Directory>


y listo eso te lo permitiría... mala práctica para un server en prod, peeeero si es por prueba y conocimiento ahí tienes :)

Segun lo que se ve, yo creo que el acceso lo hace en el php, no es un problema de acceso de la ruta del apache, luego no es problema de configuracion de apache. Es un problema de acceso al fichero que intenta abrir en la funcion del php fopen. Luego tampoco es un problema de permisos en el propio .php si no en el archivo que pone dentro del fopen. Osea que el script de php no puede abrir el archivo que se deseea abrir.
O bien se soluciona con un chmod para que el usuario que ejecuta el apache pueda acceder o el apparmor esta dando el coñazo y no permite salir del sandbox al php y hay que cambiar la configuracion del apparmor.
Título: Re:Problema en guardar variables en php
Publicado por: xhc1 en Mayo 30, 2017, 06:13:46 PM
Gracias, este tema ya lo pueden cerrar, lo que hize fue lo siguiente: arme con python una funcion que cuando alguien asignara su nombre y email, al fichero. Python lo almacenara en una base de datos sqlite3, de esta manera me salte esa falla que al fin de cuentas no se que era pero tampoco me voy a dejar ganar xD. Si quieren hago un post respecto al ichero python, claro si estan interesados!!

Saludos!!
Título: Re:Problema en guardar variables en php
Publicado por: xyz en Mayo 30, 2017, 11:28:26 PM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
Gracias, este tema ya lo pueden cerrar, lo que hize fue lo siguiente: arme con python una funcion que cuando alguien asignara su nombre y email, al fichero. Python lo almacenara en una base de datos sqlite3, de esta manera me salte esa falla que al fin de cuentas no se que era pero tampoco me voy a dejar ganar xD. Si quieren hago un post respecto al ichero python, claro si estan interesados!!

Saludos!!

Sería una excelente idea, por ahí otro forero puede tener la misma inquietud y con tu solución le es útil.

Anímate a postear aquí la solución.

Saludos !