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?
tal vez ??......
include ("conectar.php");
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.
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");
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
mas claro no puede estar... muchas gracias