entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

-1voto

404 Not Found en la ruta de un archivo llamado por file

hola muchachos necesito saber porque razon no puedo operar con mi base de datos mysql

el codigo es el siguiente y deberia funcionar sin problemas, los pasos que deberia seguir son

-conectar con la base de datos > ok
-importar la pagina del formulario de registro > ok
-operar con la base de datos
-crear la condicion para llamar el archivo e incluirlo

he creado la condicional para evitar los conflictos que puede generar si se inician juntos, es decir primero deberia importar el formulario luego que el formulario es submiteado llamar al archivo encargado de registrarlo en la base de datos
pero por algun error desconocido recibo el siguiente error

404 Not Found

The path requested was not found by the server.

<?php
echo "lmaestro";
$ruta_conexion = "file:///F:/xamp/htdocs/local/modulos/conexion.php"; 
$ruta_extra = "file:///F:/xamp/htdocs/local/demo/avanzado/sistema/model/inicio.php";

if($ruta_extra) 
{
    $ruta_registrador = "file:///F:/xamp/htdocs/local/demo/avanzado/sistema/model/registracion.php";
    include($ruta_registrador);
}

include($ruta_conexion);
include($ruta_extra);
// include_path("F:/xamp/htdocs/local/beta/modulos/conexion.php");
// get_include_path();

?>

datos extras: si hay conexion con la base de datos y tambien se puede importar el formulario pero no puedo hacer ninguna operacion por el error ya mencionado

estoy usando el servidor local "network activity" porque tengo un error con el xamp non puede correr el apache por un algun error extraño, sin embargo lo estoy usando para correr la base de datos mysql.

0voto

Peter comentado

Por favor no uses títulos "Como se hace", ni etiquetas "error desconocido".

El título tiene que describir el problema y error es muy conocido, es 404 Not Found como bien te lo marca el script.

Te pido que por favor lo hagas en todas tus preguntas, porque los títulos "alguien sabe", "como se hace", "alguien que sepa", "quien me ayuda" y demás que utilizas siempre, nunca dicen nada del problema real.

Como bien te dice Leonardo, el problema esta en las rutas de tus archivos.

Saludos.

0voto

steven comentado

no es asi peter no es ese el problema porque cuando mando a llamar mi pagina de registro y mi archivo de conexion si me los devuelve, ademas en la documentacion de php dice que si se puede llamar archivos desde file.

respecto a los titulos, no se cual es el problema es solo un titulo el problema va descrito en el cuerpo del mensaje

1voto

Peter comentado

404 Not Found
The path requested was not found by the server.

Te ayudo con la traducción...

404 No Encontrado.
La ruta solicitada no fue encontrada en este servidor.

Entonces el error es claro y te esta diciendo cual es el problema. La ruta.
Leonardo se toma la molestia en decirte y explicarte que el problema esta en las rutas.
Yo te confirmo que lo que te dice Leonardo es correcto, que el problema es son las rutas.

Y tu decides que el servidor, Leonardo y yo estamos mal...

Tu mismo.

Los títulos ayudan a identificar problemas y por norma de sentido común así se solicita ayuda. No es de como tu prefieres las cosas, esto es una comunidad y la idea es ayudarnos entre todos. Tener títulos claros y relacionados con el problema es la forma de hacerlo, tal y como puedes ver en las otras 5000 preguntas que tu no hiciste.

Saludos.

0voto

steven comentado

ok tendre mas cuidado con los titulos y las etiquetas te lo prometo, ahora disculpame si persisto pero explicame una cosa porque no me devuelve el mismo error cuando mando a llamar mi archivo de conexion y mi pagina de registro si ambos son llamados de la misma manera con file.
en este caso no deberia de mostrarme nada en pantalla no lo crees.
resumiendo cuando llamo mi archivo de conexion.php y mi pagina de formulario.php obtengo ambos archivos sin ningun problema ni error.

1voto

Peter comentado

Porque dentro de esos dos archivos no llamas a ningún archivo. No tiene nada que ver que invoques un archivo y cargue sin errores, cuando en otro te muestre error. Los archivos no son idénticos, no tiene nada que ver.

Claramente tienes mal instalado tu servidor, PHP, Apache y MySQL, cosa que debería de ser lo primero que deberías de instalar bien.

Saludos.

0voto

steven comentado

creo que se trata solo de las rutas, nada que ver la configuracion

1voto

Peter comentado

¿No que las rutas están bien?

Si tu servidor no funciona en http://localhost, entonces tienes mal la configuración. Si el servidor te funciona así y puedes usar todos tus scripts con esa ruta, por ejemplo: http://localhost/demo/avanzado/sistema/model/inicio.php y funcionan, entonces lo tienes bien.

Sin embargo las rutas dentro de tu archivo tienen que utilizar también "http://localhost/ruta" para que funcione.

Saludos.

2 Respuestas

2votos

Peter Puntos150480

Tras una sesión remota directa con @steven, se le demostró que el problema es la configuración del servidor y la ruta de los archivos.

2votos

magarzon comentado

Yo también hice una sesión remota con él hace tiempo, y los problemas eran similares, configuración, y luego nos volvemos locos con sus problemas, que en gran parte viene derivado de que instala cientos de cosas al tuntun (cuando hicimos la sesión tuve que desinstalarle varias cosas que tenía duplicadas y que se pegaban entre ellas tratando de competir por los mismos puertos)

1voto

carlossevi comentado

¿Se os puede puntuar doble por la paciencia? xD

0voto

steven comentado

todavia tengo el mismo problema y no es por la configuracion del servidor
para que lo puedas entender mejor he creado el siguiente grafico esta muy claro

**Se quita el gráfico porque la URL es incorrecta.

por si es que no se logra visualizar la imagan te paso el link

diagrama

luego los relativos archivos

el index principal

<?php
// echo "<h1>hola peter</h1>";
$ruta_conexion = "http://localhost/modulos/conexion.php"; 

$ruta_formulario = "http://localhost/demo/avanzado/sistema/model/inicio.php";
$ruta_verificador ="http://localhost/demo/avanzado/sistema/model/verificador.php";
$ruta_registrador ="http://localhost/demo/avanzado/sistema/model/registracion.php";

include($ruta_conexion);

// este archivo esta compuesto por dos forms uno para logearse y el otro para registrarse
// aqui viene lo dificil necesito que depende del formulario que se use se invoque una accion

// por ejemplo si el usuario se logea debe llamar al archivo verificador para la comprobacion
// si en cambio el usuario se registra debe llamar al archivo registrador que hara el registro

include($ruta_formulario);

 if(isset($_POST['login'])){

    include($verificador);

 }

 elseif(isset($_POST['register'])){

    include($registrador);

 }

// if($ruta_formulario) 
// {
//  $ruta_registrador = "file:///F:/xamp/htdocs/local/demo/avanzado/sistema/model/registracion.php";
//  include($ruta_registrador);
// }

// include($ruta_conexion);
// include($ruta_extra);
// include_path("F:/xamp/htdocs/local/beta/modulos/conexion.php");
// get_include_path();

?>

el inicio es la pagina de formulario

<body style="background-color: firebrick; color:white;">

// he probado con las rutas absolutas de mi localhost y devuelve el mmismo error
  <form name="login" method="post" action="verificador.php" enctype="multipart/form-data">

    <input type="text" name="uname" placeholder="email">
    <input type="password" name="password" placeholder="password">
    <input type="submit" name="login" value="accedi"><br>
<hr>
    <input name="uname" type="text" placeholder="nome">
     <input name="email" type="email" placeholder="email">
    <input name="pass" type="password" placeholder="password">
     <input type="submit" name="register" formaction="registracion.php" value="invia">
<hr>
  </form>
</body>

por ultimo el script para la verificacion

<?php

$username = $_POST['user']; $pw = $_POST['password'];

// require("conexion.php");

session_start();

$comando = "SELECT * FROM utenti WHERE email ='$username' AND password ='$pw' ";

$consulta = mysql_query($comando) or die ("Error en la query: ".mysql_error());
$listado = mysql_fetch_array($consulta) or die ("Error en la query: ".mysql_error());

  $_SESSION ['id']      =  $listado ['id'];
  $_SESSION ['nome']    =  $listado ['nome'];
  $_SESSION ['email']   =  $listado ['email'];
  $_SESSION ['tel']     =  $listado ['telefono'];

  header ("location:perfil_usuario.php");

mysql_close($conex);

?>

nota no creia que fuese necesario hacer una nueva pregunta para el mismo problema pero si no es asi lo tomare en cuenta

0voto

magarzon comentado

Por qué pones una ruta http en los includes? Los includes es mejor que sean paths relativos respecto de la localización del fichero que se quiere incluir, y el que lo incluye, para evitarnos problemas.

Es decir, que si tu fichero index.php está en el directorio "raíz" y conexion.php está en un directorio modulos, el include debe ser:

include('modulos/conexion.php');

Es posible que las rutas absolutas (con el http) no te estén funcionando por temas de configuración, para empezar, mira a ver si allow_url_include está activado en la configuración de PHP

0voto

steven comentado

si lo tengo activado, no quiero tener rutas relativas porque pienso reutilizar algunos scripts que son conexion,registracion,verificador para cuando tenga que crear una nueva aplicacion poder tener un proyecto base que genere otros proyectos
esto no seria posible con las rutas relativas porque deberia de modificarlos para cada proyecto, pero con las rutas absolutas no seria un problema.
espero haberme hecho entender, sino puedes ver el diagrama para que te hagas una idea de como esta estructurado mi proyeto

0voto

magarzon comentado

Con las rutas absolutas, cuando lo vayas a poner en un servidor que no sea el tuyo, es muy posible que no te vaya a funcionar.

Y si quieres tener más de un proyecto funcionando en tu máquina, va a llegar un momento que vas a tener que tener nombres de servidor locales (por ejemplo miproyecto.dev) apuntando a 127.0.0.1, y tampoco te va a funcionar.

0voto

steven comentado

lamentablemente no puedo crear servidores locales no se como hacerlo ya probe de todo. respecto a mi proyectos las rutas absolutan solo me sirven en proyectos locales no pienso usarlos en proyectos publicos.

la idea como te mencionaba es crear componentes reutilizables es decir si creo un nuevo proyecto y quiero conectar con mi base de datos me es suficiente indicarle la ruta de mi conexion principal que es igual para todas porque comparten la misma base de datos, despues para registrar un nuevo usuario pasa lo mismo, ubico mi otro modulo para registrar por defecto la pagina de registraion va ser la misma en algunos campos, por lo cual debo indicarle que reutilize el mismo archivo para la registracion y para la verificacion lo mismo.

2votos

Leonardo-Tadei Puntos227320

@steven,

las rutas no existen porque estás accediendo a archivos mediante file://, que es un directorio relativo a tu disco, en vez de acceder vía http:// que será una ruta relativa a la raíz de tu servidor web.

Si abrís un archivo PHP desde el navegador apuntando a file:// verás que no se ejecuta nada: en pantalla aparece el código fuente, porque el navegador no puede ejecutar PHP.

Los archivos PHP tienen que abrirse o incluirse siempre vía http:// o vía una ruta relativa, así es el servidor web quién se los devuelve al navegador, con lo que vas a ver el resultado de la ejecución del código, que es lo que corresponde.

Saludos cordiales.

0voto

steven comentado

ya probe hacer con http pero me devuelve un error avisandome que no tengo abilitado las url o algo asi no entendi bien pero creo que son por las configuraciones.
el caso es que el llamando los archivos desde el directorio local file:///ruta
si funciona porque creo que si no fuera asi no me hubiese importado mi pagina de registro ni mi archivo de conexion.

todos mis archivos son scripts php incluido la conexion y mi pagina de registro

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta