Foros del Web » Programando para Internet » PHP »

Usar require (); include(); en entre cuentas de Hosting

Estas en el tema de Usar require (); include(); en entre cuentas de Hosting en el foro de PHP en Foros del Web. Hola amigos, he programado en php desde algunos meses por no decir años, bueno ahora, en la actualidad he me he visto en la nesecidad ...
  #1 (permalink)  
Antiguo 03/09/2006, 12:56
Avatar de franleomg  
Fecha de Ingreso: mayo-2006
Ubicación: LIMA PERU
Mensajes: 75
Antigüedad: 17 años, 11 meses
Puntos: 0
Exclamación Usar require (); include(); en entre cuentas de Hosting

Hola amigos, he programado en php desde algunos meses por no decir años, bueno ahora, en la actualidad he me he visto en la nesecidad de algo q antes no pense.

como siempre he usado la funcio requiere ("ruta/archivo") al igual al include(), pero ahora kiero hacer eso pero entre cuentas de hosting del mismo servidor.

ejemplo la sintacis segun include o require seria.
include("/home/cuenta/public_html/carpeta/archivo");

pero no funciona eso en mi cuenta, sale error:

Warning: main() [function.main]: open_basedir restriction in effect. File(/home/cuenta_destino/public_html/blog/index.php) is not within the allowed path(s): (/home/cuenta_origen/:/usr/lib/php:/usr/local/lib/php:/tmp) in /home/cuenta_origen/public_html/blog/index.php on line 22

Warning: main(/home/cuenta_destino/public_html/blog/index.php) [function.main]: failed to open stream: Operation not permitted in /home/cuenta_origen/public_html/blog/index.php on line 22

Warning: main() [function.main]: open_basedir restriction in effect. File(/home/cuenta_destino/public_html/blog/index.php) is not within the allowed path(s): (/home/cuenta_origen/:/usr/lib/php:/usr/local/lib/php:/tmp) in /home/cuenta_origen/public_html/blog/index.php on line 22

Warning: main(/home/cuenta_destino/public_html/blog/index.php) [function.main]: failed to open stream: Operation not permitted in /home/cuenta_origen/public_html/blog/index.php on line 22

Fatal error: main() [function.require]: Failed opening required '/home/cuenta_destino/public_html/blog/index.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/cuenta_origen/public_html/blog/index.php on line 22


ojo que la ruta y el archivo (referencia) es correcta.
__________________
:: FRANLEOMG ::
Melgarejo Graciano M. Efraín
[email protected]
  #2 (permalink)  
Antiguo 03/09/2006, 14:02
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Sencillamente no te deja porque de tu cuenta no tenés permisos para abrir las carpetas de otros usuarios.
Imaginate qué problemas de seguridad podría causar eso (por ejemplo, conectarte a la base de datos de otro usuario...).

Quizás te serviría más usar fopen() con http (si lo tenés habilitado), y de hecho obtendrías el mismo resultado, ya que el código incluido con 'include' o 'require' es procesado en el momento en que se pide.


Saludos.
  #3 (permalink)  
Antiguo 03/09/2006, 15:24
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 3 meses
Puntos: 5
Buenas,

Cita:
Quizás te serviría más usar fopen() con http (si lo tenés habilitado), y de hecho obtendrías el mismo resultado, ya que el código incluido con 'include' o 'require' es procesado en el momento en que se pide.
Depende el caso... Si lo que querés incluir es el html generado por el script, fopen con http sirve. Pero si querés acceder al código php (por ejemplo, a las variables y funciones definidas en el script a incluir), fopen con http no te va a servir.

Suerte
Califa
  #4 (permalink)  
Antiguo 03/09/2006, 21:37
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Tenés razón califa, me faltó aclarar ese punto

Me gustaría agregar también que ya que queda claro que no puede acceder directamente, aún tiene la opción del ftp, o incluso darle al archivo que se quiere incluir una extensión diferente a 'php', así el servidor no interpretaría el código y lo mandaría como texto plano (que es normalmente la configuración por defecto para archivos desconocidos)


Saludos.
  #5 (permalink)  
Antiguo 03/09/2006, 21:52
 
Fecha de Ingreso: enero-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 299
Antigüedad: 18 años, 3 meses
Puntos: 5
Alvlin, la opción del ftp no se me había ocurrido, pero pinta como una buena solución (ya que tiene acceso a ambas cuentas). A la del .txt le veo la contra de que el código va a ser visible para cualquiera...

Igual, a todo esto hay que ver qué es lo que realmente necesita franleomg, porque puede que con obtener el html generado por un php le alcance para lo que busca. (Vos dirás franleomg).

Suerte
Califa
  #6 (permalink)  
Antiguo 06/09/2006, 10:15
Avatar de franleomg  
Fecha de Ingreso: mayo-2006
Ubicación: LIMA PERU
Mensajes: 75
Antigüedad: 17 años, 11 meses
Puntos: 0
Estimado Señores de echo gracias antes que nada pro al respyesta como veran hay varias opciones posibles de usar.

les dire que he echo usnado http: ejemplo: require("http://dominio.com/miarchiv.php") pero esto solo lee la parte de texto plano (ose el html) generado pero mas no la variables, objetos etc. (osea el pripio script codigo php) no jala.

no se si habra una opcion de solucion.
__________________
:: FRANLEOMG ::
Melgarejo Graciano M. Efraín
[email protected]
  #7 (permalink)  
Antiguo 06/09/2006, 11:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por franleomg Ver Mensaje
Estimado Señores de echo gracias antes que nada pro al respyesta como veran hay varias opciones posibles de usar.

les dire que he echo usnado http: ejemplo: require("http://dominio.com/miarchiv.php") pero esto solo lee la parte de texto plano (ose el html) generado pero mas no la variables, objetos etc. (osea el pripio script codigo php) no jala.

no se si habra una opcion de solucion.
Como te han comentado .. si necesitas el "fuente" de ese .php .. ya que dices que son servicios de hosting donde tu tienes acceso seguramente por otros médios como FTP .. en PHP podrías implementar un "cliente" FPT para tomar tu archivo ..pero no para usarlo tan "natural" como lo haces con un "include()".

Realmente el tema no deberías enfocarlo así .. Exiten otras "técnicas" como por ejemplo los "Web service/sockets". Este tema se trata de tener un proceso X que es llamado (con seguridad/autentificación) en cierto servidor y bajo cierto "protocolo" llamas a ejecutar esa aplicación remota. Por el mismo conducto se te devuelve el resultado en forma segura y ordenada (en XML normalmente).

No sé que tipo de cosas deseas usar en forma "común" .. pero a no ser que tu uses servidores dedicados y configures tus servidores para que puedan tener una zona "común" donde tomar archivos (un include_dir definido) con los permisos correspondientes (de acceso a archivos) no podrás usarlo con el fin que pretendes por "ahorrarte" dar mantenimiento tal vez al mismo código que usas en vários sitios. Lamentablemente esto es así.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 06/09/2006, 11:17
 
Fecha de Ingreso: septiembre-2003
Mensajes: 265
Antigüedad: 20 años, 7 meses
Puntos: 1
trataste con ssh, ya que un tiempo atra tuve que hacer un codigo donde subias una imagen por la web, y esa misma imagen tuve que copiarla en varios servidores.

copy ("ssh2.sftp://".$servidor_actual['username'].":".$servidor_actual['password']."@".$servidor_actual['ip'].":22".$servidor_actual['carpeta'].$archivo_copiar , "ssh2.sftp://".$data_servidores['username'].":".$data_servidores['password']."@".$data_servidores['ip'].":22".$data_servidores['carpeta'].$archivo_copiar);

espero que te sirva
  #9 (permalink)  
Antiguo 06/09/2006, 11:18
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 5 meses
Puntos: 4
Sonrisa Sera asi...

hola creo que el problema puede ser este cuando se utiliza incude o require, para un archivo que esta fuera de nuestra carpeta local debes anteponer barra invertida y dos puntitos asi:
include("../carpeta1/carpeta2/tuarchivo.xxx");

proba asi, anteponiendo los puntos y barra invertida, ahora hay un detalle, te recomendaria que usaras el require_once, que es una variante de del require, te permite cargar solo una vez el archivo, y en caso de que el archivo cargado contenga errores , detendra el compilador, y te evitara mas errore a futuro.
  #10 (permalink)  
Antiguo 06/09/2006, 11:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Bellenger Ver Mensaje
hola creo que el problema puede ser este cuando se utiliza incude o require, para un archivo que esta fuera de nuestra carpeta local debes anteponer barra invertida y dos puntitos asi:
include("../carpeta1/carpeta2/tuarchivo.xxx");

proba asi, anteponiendo los puntos y barra invertida, ahora hay un detalle, te recomendaria que usaras el require_once, que es una variante de del require, te permite cargar solo una vez el archivo, y en caso de que el archivo cargado contenga errores , detendra el compilador, y te evitara mas errore a futuro.
El detalle está en que por permisos del servidor (de acceso a archivos) no puedes acceder a una ruta concreta fuera de lo que te han asigando .. Entre otras cosas por un tema de seguridad como aquí ya se ha mencionado.

Si tu tuvieses control en tu servidor (total) .. ahí puedes definir que mis "include()" por ejemplo pueden acceder a cualquier ruta o mejor definir una concreta y ahí lo uso como zona "común".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #11 (permalink)  
Antiguo 15/09/2006, 15:14
Avatar de franleomg  
Fecha de Ingreso: mayo-2006
Ubicación: LIMA PERU
Mensajes: 75
Antigüedad: 17 años, 11 meses
Puntos: 0
en cualquiero caso sus comentarios me han servido mucho pero aun no he podido solucionar, mi hosting es un reseller no es mio la cual no tengo accesk total a los servicios por tanto a mi manera trato de poder solucionar.

tube una idea no se si funcione o es factible pero requiero su ayuda de ustedes.

la idea q tengo es sencilla pero no se si es factible.

usar una base de datos, en mysql.
guardar el codigo php como un texto plano.
pero lo que guardo en un campo ejemplo MiCapo

y cuando hago una consulta me resultara asi. Dato['MiCapo']=" (texto plano de php").
como podia ejecutar ese codigo ya que en campo es tratado como un texto normal con comillas ejem

que en MiCampo este guardo lo siguente
<?
funciones, sentecinas
?>

pero como tato este seria asi.

="<?
funciones, sentecinas
?>"

como podia ejecutar eso?
__________________
:: FRANLEOMG ::
Melgarejo Graciano M. Efraín
[email protected]
  #12 (permalink)  
Antiguo 15/09/2006, 17:53
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
www.php.net/eval

Con eso ejecutás código PHP en una cadena.


Saludos.
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 19:59.