no me funciona include

Iniciado por yovaninu, 24 Abril 2007, 20:43 PM

0 Miembros y 1 Visitante están viendo este tema.

yovaninu

estoy haciendo pruebas locales, tengo instalado el appserv 2.57 y mi raiz es www como siempre, dentro de la raiz tengo una carpeta pruebas y en esta carpeta tengo el tipico archivo conectar.php, ahora mi carpeta datos esta dentro de pruebas y desde aqui tengo un script en donde tengo la linea

include ("/pruebas/conectar.php");


y me sale el siguiente error:

Warning: include(/pruebas/conectar.php) [function.include]: failed to open stream: No such file or directory

estoy muy seguro de que tanto la carpeta como el archivo existen:

la carpeta pruebas esta en c:\appserv\www\pruebas
y el archivo conectar.php esta en c:\appserv\www\pruebas\conectar.php

alguna sugerencia?


alone-in-the-chat

tal vez ??......


include ("conectar.php");
Because maybe
You're gonna be the one that saves me
And after all
You're my wonderwall
d[n_n]b

SeniorX

Y bueno, donde esta tu php que tiene la linea que da error?

Prueba usado include("pruebas/conectar.php");

Prueba usando esta linea:
echo getcwd();
Esa te dice el directorio actual de tu php en el cual lo incluyas.

Si tu php con la linea que da error esta en la carpeta pruebas, toma el consejo anterior.

Recomendacion: Dejar el conectar.php en solo un lugar, si los dejas en www, y estas en una carpeta o subcarpeta, por ejemplo pruebas y quieres incluir el conectar.php debes:
include("../conectar.php");

Si haces todo eso deberias encontrar tu error.
Ojalá te hayas dado cuenta que la ruta que se le da al include depende de la posicion en la que esté tu php que quiera usar la funcion.
try {
     live();
}
catch (ShitHappensException ex) {
MessageBox.Show(ex.Solution)
}

Precaución: La programacion puede producir adiccion

yovaninu

Cita de: SeniorX en 25 Abril 2007, 00:00 AM
include("../conectar.php");

excelente, lo puse así y funcionó gracias por la ayuda, lo que no entiendo es que si conectar.php esta dentro de www\pruebas
por que no funciona:

include("../pruebas/conectar.php");

o esto

include("/pruebas/conectar.php");

o esto

include("pruebas/conectar.php");


LuffyFF

Citar
por que no funciona:
te explico uno por uno...

El archivo conectar.php está en la carpeta pruebas. Bien...

Con "../conectar.php" funciona, es porque seguramente estes usando tu script en alguna carpeta y que se necestie conectar con una carpeta del directorio anterior.

Citar

include("../pruebas/conectar.php");

En este caso, vuelve al directorio anterior, y luego se fija en la carpeta pruebas y luego incluye conectar.php del directorio anterior + pruebas.

Citar
o esto

include("/pruebas/conectar.php");

En este caso incluye una barra al principio.
Pues, en HTML si, si usas / se toma la barra del dominio inicial, sin tener en cuenta ninguna carpeta.
o sea si haces un link a /index.php llevaria a tudominio.com y no a tudominio.com/directoriodondeestas/index.php
Bueno en este caso, no es asi. Y lo que hace es incluir el archivo /pruebas/conectar.php, pero con la / haces que busque en /, o sea el directorio raiz, no el tuyo, sino el del servidor, no se si me explico bien aqui.

Citar
o esto

include("pruebas/conectar.php");

En este caso incluye conectar.php de la carpeta pruebas que se encuentra en el directorio actual.

Salu2

yovaninu

mas claro no puede estar... muchas gracias