Imposible procesar esta solicitud a través de localhost en este momento. ERROR HTTP
Taijin
Mensajes publicados
55
Estado
Miembro
-
jordane45 Mensajes publicados 30426 Fecha de registro Estado Moderador Última intervención -
jordane45 Mensajes publicados 30426 Fecha de registro Estado Moderador Última intervención -
Hola, ayer creé un sistema de inscripción y conexión en mi sitio web con páginas php (uso MAMP). He creado una página de inscripción y una página de conexión, cuando hago clic en ellas, todo funciona bien, ambas páginas se abren correctamente, sin embargo, cuando intento acceder a la conexión o a la inscripción, me muestra una página con el mensaje "Imposible procesar esta solicitud a través de localhost en este momento. ERROR HTTP"
Muchas gracias y buena noche
Muchas gracias y buena noche
Enlaces relacionados:
- problema de conexión con el controlador de dominio
- ¿Qué significa la dirección IP http://127.0.0.1 (localhost)?
- Localhost, la conexión falló
- Imposible procesar esta solicitud a través de www.xxx en este momento.
- Obtener el código secreto CCP por Internet
- Imposible acceder al 127.0.0.1 mientras que localhost funciona (WAMP)
5 respuestas
-
Hola,
Un error 500... es un error del servidor.
Lo que presagia un error en tu código php...
y para poder ayudarte... necesitas mostrarnoslo.
NB: Para publicar tu código en el foro, debes usar las ETIQUETAS DE CÓDIGO.
Explicaciones, para leer ÍNTEGRAMENTE, disponibles aquí:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
--
.
Atentamente,
Jordane -
¿No sería más sencillo si envío capturas de pantalla de mis páginas ya que tengo 7 páginas para mi sistema de registro y conexión?
-
htmlspecialchars solo se usa para la visualización... nunca para el tratamiento de datos que van a la base de datos
para hashear la contraseña, ahora se deben usar las funciones password_hash($password, $algo) (y password_verify($password, $hash) para verificar que está ok)
rowCount() no se utiliza para consultas del tipo "select" (consulta la documentación de PHP sobre este tema si es necesario)
Olvidaste un $ delante del nombre de la variable bdd en tu prepare
Código corregido:
<?php //Inicio de sesiones session_start(); //Mostrar errores PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); require_once 'config.php'; // recuperación segura de las variables antes de usarlas $email = !empty($_POST['email']) ? $_POST['email'] : NULL; $password = !empty($_POST['password']) ? $_POST['password'] : NULL; if ($email && $password) { try { $check = $bdd->prepare('SELECT pseudo, email, password FROM utilisateur WHERE email=?'); $check->execute(array($email)); $data = $check->fetch(); } catch (Exception $e) { echo "Error en la consulta: " . $e->getMessage(); } if (!empty($data)) { if (filter_var($email, FILTER_VALIDATE_EMAIL)) { if (password_verify($password, $data['password'])) { $_SESSION['user'] = $data['pseudo']; header('Location:landing.php'); exit; // siempre poner un exit después de una redirección } else { header('Location:index.php?login_err=password'); exit; // siempre poner un exit después de una redirección } } else { header('Location:index.php?login_err=email'); exit; // siempre poner un exit después de una redirección } } else { header('Location:index.php?login_err=already'); exit; // siempre poner un exit después de una redirección } } else { header('Location:index.php'); exit; // siempre poner un exit después de una redirección } ?>
.
Cordialmente,
Jordane-
Hola, muchas gracias por tu respuesta. He aplicado el nuevo código, sin embargo, sigo viendo el mismo mensaje...
También tengo una segunda pregunta: tengo "htmlspecialchars" en casi todas mis páginas PHP. Creí entender que en mis dos páginas que permiten una visualización era normal, pero tengo dos páginas adicionales en las que también tengo htmlspecialchars.
¿Quieres que te envíe toda la carpeta con el código, por correo electrónico, por ejemplo?
Gracias de antemano.
¡Que tengas una buena tarde! -
-
-
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Ps : espero que no tengas espacios en el dbname o en otras variables... y que solo sean datos ficticios que has puesto solo para publicar en el foro.... -
He modificado bien aplicando lo que me enviaste, pero aún no funciona
Y no, lo que te envié es mi código real
<?php try { $bdd = new PDO ('mysql:host=localhost;dbname=site internet;charset=utf8', "LOGIN", "PASS"); $bdd -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); }catch(Exception $e) { die('Erreur' .$e->getMessage()) } ?>
-
-
Vamos a ir paso a paso.
¿Puedes, en primer lugar, conservar en tu archivo connexion.php solo las líneas<?php //Inicio de sesiones session_start(); //Mostrar errores PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); require_once 'config.php'; echo " OK";
Si se muestra bien, significa que el problema proviene de algo posterior...
Aprovechando, ¿en qué pruebas tus páginas?
¿Con qué software?
¿Qué versión de PHP?
--
.
Cordialmente,
Jordane-
He guardado bien el código que me pusiste, la página se muestra bien pero cuando hago clic en conexión me aparece el mismo mensaje
<?php //Inicio de las sesiones session_start(); //Mostrar errores PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); require_once 'config.php'; echo " OK"; ?>
Estoy usando Sublime Text 3 y abro mis páginas en Google Chrome, si eso era lo que querías preguntar.- Es normal porque no es esta página la que gestiona la visualización, intentaré volver a explicarles el funcionamiento porque tengo dificultades para hacerlo anteriormente
La página de inicio del sitio se llama "site.html", en la que hay un enlace a la página "inscripcion.php" y "index.php"
cuando hago clic en el enlace que me lleva a inscripcion.php, se abre una página en la que tengo que ingresar un nombre, correo electrónico y contraseña
Cuando hago clic en inscribirme, esto me lleva a mi página "inscripcion_tratamiento.php" y es en ese momento cuando aparece el mensaje
Cuando en mi página principal hago clic en "index.php", debo ingresar un correo electrónico y una contraseña para conectarme. Luego, cuando hago clic en conexión, me redirige a la página "conexion.php" y en ese momento también aparece el mensaje
Espero haber sido claro en mis explicaciones, lamento si anteriormente no me expliqué bien
Muchas gracias por su paciencia
-
-
Cuando tengo el mensaje de error, tengo ya sea la URL "http://localhost/connexion.php" si deseo conectarme, o "http://localhost/inscription_traitement.php" si deseo registrarme
Aquí está mi código de la página inscription_traitement<?php require_once 'config.php'; if(isset($_POST['pseudo']) && isset($_POST['email']) && isset($_POST['password']) && isset($_POST['password_retype'])) { $pesudo = htmlspecialchars($_POST['pseudo']); $email = htmlspecialchars($_POST['email']); $password = htmlspecialchars($_POST['password']); $password_retype = htmlspecialchars($_POST['password_retype']); $check = bdd->prepare('SELECT pseudo, email, password FROM utilisateur WHERE email=?'); $check->execute(array($email)); $data = $check->fetch(); $row = $check->rowCount(); if($row == 0) { if(strlen($pseudo) <= 100) { if (strlen($email) <= 100) { if(filter_var($email, FILTER_VALIDATE_EMAIL)) { if($password == $password_retype) { $password = hash('sah256', $password); $ip = $_SERVER['REMOTE_ADDR']; $insert = $bdd->prepare('INSERT INTO utilisateur(pseudo, email, password, ip)VALUES(:pseudo, :email, :password, :ip)') $insert->execute(array( 'pseudo' => $pseudo, 'email' => $email, 'password' => $password, 'ip' => $ip )); header('Location:http://localhost/inscription.php?reg_err=success'); }else header('Location: inscription.php?reg_err=password'); }else header('Location: inscription.php?reg_err=email') }else header('Location: inscription.php?reg_err=email_lenght'); }else header('Location: inscription.php?reg_err=pseudo_lenght'); }else header('Location: inscription.php?reg_err=already'); } ?>
Aquí está mi página index.php<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="NoS1gnal"/> <link href="https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/magnific-popup.min.css" rel="stylesheet" /> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"> <title>Conexión</title> </head> <body> <div class="login-form"> <?php if(isset($_GET['login_err'])) { $err = htmlspecialchars($_GET['login_err']); switch ($err) { case 'password': ?> <div class="alert alert -danger"> <strong>Error</strong> contraseña incorrecta </div> <?php break; case 'email': ?> <div class="alert alert -danger"> <strong>Error</strong> email incorrecto </div> <?php break; case 'already': ?> <div class="alert alert -danger"> <strong>Error</strong> cuenta inexistente </div> <?php break; } } ?> <form action="connexion.php" method="post"> <h2 class="text-center">Conexión</h2> <div class="form-group"> <input type="email" name="email" class="form-control" placeholder="Email" required="required" autocomplete="off"> </div> <div class="form-group"> <input type="password" name="password" class="form-control" placeholder="Contraseña" required="required" autocomplete="off"> </div> <div class="form-group"> <button type="submit" class="btn btn-primary btn-block">Conexión</button> </div> </form> <p class="text-center"><a href="inscription.php">Registro</a></p> </div> <style> .login-form { width: 340px; margin: 50px auto; } .login-form form { margin-bottom: 15px; background: #f7f7f7; box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3); padding: 30px; } .login-form h2 { margin: 0 0 15px; } .form-control, .btn { min-height: 38px; border-radius: 2px; } .btn { font-size: 15px; font-weight: bold; } </style> </body> </html>
Mi página connexion.php solo tengo lo que me pusiste antes entonces
<?php //Inicio de sesiones session_start(); //Mostrar errores PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); require_once 'config.php'; echo " OK"; ?>
Y aquí está mi página inscription.php
<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="author" content="NoS1gnal"/> <link href="https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/magnific-popup.min.css" rel="stylesheet" /> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"> <title>Conexión</title> </head> <body> <div class="login-form"> <?php if(isset($_GET['reg_err'])) { $err = htmlspecialchars($_GET['reg_err']); switch($err) { case 'success' : ?> <div class="alert alert -success"> <strong>Éxito</strong> ¡registro exitoso! </div> <?php break; case 'password' : ?> <div class="alert alert -danger"> <strong>Error</strong> contraseñas diferentes </div> <?php break; case 'email' : ?> <div class="alert alert -danger"> <strong>Error</strong> email no válido </div> <?php break; case 'email_lenght' : ?> <div class="alert alert -danger"> <strong>Error</strong> email demasiado largo </div> <?php break; case 'pseudo_lenght' : ?> <div class="alert alert -danger"> <strong>Error</strong> pseudo demasiado largo </div> <?php break; case 'already' : ?> <div class="alert alert -danger"> <strong>Error</strong> cuenta ya existente </div> <?php } } ?> <form action="inscription_traitement.php" method="post"> <h2 class="text-center">Registro</h2> <div class="form-group"> <input type="text" name="pseudo" class="form-control" placeholder="Pseudo" required="required" autocomplete="off"> </div> <div class="form-group"> <input type="email" name="email" class="form-control" placeholder="Email" required="required" autocomplete="off"> </div> <div class="form-group"> <input type="password" name="password" class="form-control" placeholder="Contraseña" required="required" autocomplete="off"> </div> <div class="form-group"> <input type="password" name="password_retype" class="form-control" placeholder="Re-tipea la contraseña" required="required" autocomplete="off"> </div> <div class="form-group"> <button type="submit" class="btn btn-primary btn-block">Registro</button> </div> </form> </div> <style> .login-form { width: 340px; margin: 50px auto; } .login-form form { margin-bottom: 15px; background: #f7f7f7; box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3); padding: 30px; } .login-form h2 { margin: 0 0 15px; } .form-control, .btn { min-height: 38px; border-radius: 2px; } .btn { font-size: 15px; font-weight: bold; } </style> </body> </html>-
-
-
Verifica que tus archivos están bien codificados en UTF-8 sin BOM
Consulta el capítulo 1 del siguiente enlace
https://forums.commentcamarche.net/forum/affich-37584944-php-html-caracteres-accentues-et-l-utf8
No dudes en crear un nuevo archivo para reemplazar el existente y así asegurarte de que estás en lo correcto al pegar
Luego vuelve a probar comentando la línea del require...
Y dime si aún tienes el error 500... -
He recreado una nueva página y he verificado que estoy en UTF-8, sin embargo, todavía no funciona
Aquí está mi página connexion.php<?php //Inicio de sesiones session_start(); //Mostrar errores de PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); require_once 'config.php'; echo " OK"; ?> -
Te pedí que probaras sin el require.
¿Lo hiciste?
En resumen, en tu archivo connexion.php solo debes mantener:<?php //Inicio de sesiones session_start(); //Mostrar errores PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); // require_once 'config.php'; echo " OK"; ?>
Luego intenta acceder a esta página y dinos si aún tienes un error 500...
Si es así... es que tienes un problema de configuración en tu servidor...
¿No habrás puesto en marcha un archivo .htaccess?
¿Podrías intentar mover tu proyecto a un subdirectorio de tu carpeta web? porque tengo la impresión de que has puesto tus archivos directamente en htdocs (o www según el software que estés utilizando para emular el servidor web)...
-