Impossible de traiter cette demande via localhost à l'heure actuelle. HTTP ERROR

Signaler
Messages postés
37
Date d'inscription
mercredi 15 juillet 2020
Statut
Membre
Dernière intervention
12 juin 2021
-
Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
-
Bonjour, hier j'ai crée un système d'inscription et de connexion sur mon site internet avec des pages php (j'utilise MAMP). J'ai crée une page d'inscription et une page de connexion, quand je clique dessus, tout se passe bien, les deux pages s'ouvrent correctement, cependant lorseque je tente une connexion ou une inscription cela m'affiche une page avec écrit "Impossible de traiter cette demande via localhost à l'heure actuelle. HTTP ERROR"



Merci beaucoup et bonne soirée

5 réponses

Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557
Bonjour,

Une erreur 500... c'est une erreur serveur.
Ce qui laisse donc présager une erreur dans ton code php...

et pour pouvoir t'aider ...Il faut que tu nous le montres..

NB: Pour poster ton code sur le forum, tu devras utiliser les BALISES DE CODE.
Explications, à lire ENTIEREMENT, disponibles ici:
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Messages postés
37
Date d'inscription
mercredi 15 juillet 2020
Statut
Membre
Dernière intervention
12 juin 2021

Cela ne serait-il pas plus simple que j'envoie des captures d'écran des mes pages car pour mon système d'inscription et de connexion je dispose de 7 pages?
Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557
non ça ne sera pas plus simple ... car ça ne nous permet pas de copier/coller le code si on doit t'aider à le corriger.

Sachant que, pour l'instant, seul le fichier qui retourne l'erreur nous est utile...
connexion.php
Messages postés
37
Date d'inscription
mercredi 15 juillet 2020
Statut
Membre
Dernière intervention
12 juin 2021
>
Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021

D'accord excusez moi, voici le code de ma page connexion .php

<?php
	session_start();
	require_once 'config.php';

	if(isset($_POST['email']) && isset($_POST['password']))
	{

		$email = htmlspecialchars($_POST['email']);
		$password = htmlspecialchars($_POST['password']);

		$check = bdd->prepare('SELECT pseudo, email, password FROM utilisateur WHERE email=?');
		$check->execute(array($email));
		$data = $check->fetch();
		$row = $check->rowCount();

		if($row ==1)
		{
			
			if(filter_var($email, FILTER_VALIDATE_EMAIL))
			{
				$password = hash('sha256', $password);

				if($data['password']===$password)
				{
					$_SESSION['user'] = $data['pseudo'];
					header('Location:landing.php');
				}else header('Location:index.php?login_err=password');
			}else header('Location:index.php?login_err=email');
		}else header('Location:index.php?login_err=already');
	}else header('Location:index.php');

?>
Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557
htmlspecialchars ne s'utilise que pour de l'affichage.. jamais pour le traitement des données à mettre en bdd
pour hasher le password, il faut désormais utiliser les fonctions password_hash($password, $algo) ( et password_verify($password, $hash) pour vérifier qu'il est ok')
rowCount(); ne s'utilise pas pour des requêtes de type "select" ( voir la doc de php à ce sujet si besoin )
Tu avais oublié un $ devant le nom de la variable bdd dans ton prepare

Code corrigé :

<?php

//Démarrage des sessions
session_start();

//Affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

require_once 'config.php';


// récupération propre des variables avant de les utiliser
$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 "Erreur dans la requête : " . $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; // toujours mettre un exit après une redirection
      } else {
        header('Location:index.php?login_err=password');
        exit; // toujours mettre un exit après une redirection
      }
    } else {
      header('Location:index.php?login_err=email');
      exit; // toujours mettre un exit après une redirection
    }
  } else {
    header('Location:index.php?login_err=already');
    exit; // toujours mettre un exit après une redirection
  }
} else {
  header('Location:index.php');
  exit; // toujours mettre un exit après une redirection
}
?>


.
Cordialement,
Jordane
Messages postés
37
Date d'inscription
mercredi 15 juillet 2020
Statut
Membre
Dernière intervention
12 juin 2021
>
Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021

J'ai bien modifié en appliquant ce que vous m'avez envoyés seulement cela ne fonctionne toujours pas
Et non ce que je vous ai envoyé est bien mon réel code

<?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())
	}
?> 
Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557 >
Messages postés
37
Date d'inscription
mercredi 15 juillet 2020
Statut
Membre
Dernière intervention
12 juin 2021

Donc là.. y'a un souci...
Il faut que tu aille renommer ta bdd pour retirer les espaces...
et changer le nom dans le code
dbname=site internet;

par exemple
dbname=site_internet;

ou
dbname=siteinternet;

ou
dbname=monsite;

peu importe... tant qu'il n'y a pas d'espaces...
Messages postés
37
Date d'inscription
mercredi 15 juillet 2020
Statut
Membre
Dernière intervention
12 juin 2021
>
Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021

Cela veut dire qu'il faut que je renomme ma database Mysql qui s'appelle "site internet"
Y a t-il un moyen ou dois-je la recréer?
Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557 >
Messages postés
37
Date d'inscription
mercredi 15 juillet 2020
Statut
Membre
Dernière intervention
12 juin 2021

Messages postés
37
Date d'inscription
mercredi 15 juillet 2020
Statut
Membre
Dernière intervention
12 juin 2021
>
Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021

Je n'ai pas résussi a utiliser cpanel car cela était payant ducoup j'ai recrée une nouvelle databse appelée "site_internet" en recréant la même table à l'intérieur
Cela m'affiche toujours le même message

<?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())
	}
?> 
Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557
On va y aller par étape.

Peux tu, dans un premier temps ne garder dans ton fichier connexion.php que les lignes
<?php

//Démarrage des sessions
session_start();

//Affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

require_once 'config.php';



echo " OK";



Si ça s'affiche bien, c'est que le souci vient d'un truc d'après...

Au passage, sur quoi testes tu tes pages ?
Avec quel logiciel ?
Quelle version de php ?

Messages postés
37
Date d'inscription
mercredi 15 juillet 2020
Statut
Membre
Dernière intervention
12 juin 2021

J'ai bien gardé le code que vous m'avez mis, la page s'affiche bien mais lorsque je clique sur connexion cela me mets le même message

<?php

//Démarrage des sessions
session_start();

//Affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

require_once 'config.php';



echo " OK";

?>


Je suis sous sublimText3 et j'ouvre mes pages sous Google Chrome si c'était bien cela votre question
Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557 >
Messages postés
37
Date d'inscription
mercredi 15 juillet 2020
Statut
Membre
Dernière intervention
12 juin 2021

Quand tu cliques sur Connexion...
Il y a pas de bouton dans le code que je t'ai donné...
Tu as d'autres choses dans ce fichier du code html peut-être un formulaire ??
Il faudrait nous donner le code complet de ce fichier !!
Messages postés
37
Date d'inscription
mercredi 15 juillet 2020
Statut
Membre
Dernière intervention
12 juin 2021
>
Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021

C'est normal car ce n'est pas cette page qui gère l'affichage, je vais essayer de vous réexpliquer le fonctionnement car j'ai du mal le faire précédemment
La page d'accueil du site se nomme "site.html", sur laquelle il y a un lien vers la page "inscription.php" et "index.php"
lorsque je clique sur la lien m'envoyant vers inscription.php, une page s'ouvre sur laquelle je dois rentrer un nom, email et mot de passe
Lorsque je clique sur m'inscrire, cela menvoit vers ma page "inscription_traitement.php" et c'est a ce moment là que le message s'affiche
Lorsque sur ma page principal, je clique sur "index.php" je dois rentrer un email et un mot de passe pour me connecter. Lorsque ensuite je clique sur connexion, cela me renvoie vers la page "connexion.php" et à ce moment là aussi le message s'affiche

J'espère avoir été clair dans mes explication, je suis navré si au paravent je m'étais mal expliqué
Merci beaucoup pour votre patience
Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557 >
Messages postés
37
Date d'inscription
mercredi 15 juillet 2020
Statut
Membre
Dernière intervention
12 juin 2021

Ce n'est pas cr qui était marque dans l'URL de ton navigateur dans ta capture écran...
Tu as quoi comme url affichée dans la barre d'adresse lorsque tu as le message d'erreur ?

Enfin tu meux déjà nous montrer le code du fichier
inscription_traitement.php
Ainsi que celui de ton formulaire...
Messages postés
37
Date d'inscription
mercredi 15 juillet 2020
Statut
Membre
Dernière intervention
12 juin 2021

Lorsque j'ai le message d'erreur j'ai soit l'url "http://localhost/connexion.php" si a la base je souhaite me connecter, sinon j'ai "http://localhost/inscription_traitement.php" si je souhaite m'inscrire

Voici mon code de la page 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');
	}
?> 


Voici ma page index.php
<!DOCTYPE html>
    <html lang="en">
        <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>Connexion</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>Erreur</strong> mot de passe incorrect
                            </div>
                        <?php 
                        break;

                        case 'email':
                            ?>
                            <div class="alert alert -danger">
                                <strong>Erreur</strong> email de passe incorrect
                            </div>
                        <?php 
                        break;

                        case 'already':
                            ?>
                            <div class="alert alert -danger">
                                <strong>Erreur</strong> compte inexistant
                            </div>
                        <?php 
                        break;
                }
            }

        ?>  
            
            <form action="connexion.php" method="post">
                <h2 class="text-center">Connexion</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="Mot de passe" required="required" autocomplete="off">
                </div>
                <div class="form-group">
                    <button type="submit" class="btn btn-primary btn-block">Connexion</button>
                </div>   
            </form>
            <p class="text-center"><a href="inscription.php">Inscription</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>


Ma page connexion.php j'ai seulement ce que vous m'aviez mis tout à l'heure du coup

<?php

//Démarrage des sessions
session_start();

//Affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

require_once 'config.php';



echo " OK";

?>


Et voici ma page inscription.php

<!DOCTYPE html>
    <html lang="en">
        <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>Connexion</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>Succès</strong>inscription réussie!
                            </div>
                            <?php
                        break;

                        case 'password' :
                            ?>
                            <div class="alert alert -danger">
                                <strong>Erreur</strong>mot de passe différent
                            </div>
                            <?php
                        break;

                        case 'email' :
                            ?>
                            <div class="alert alert -danger">
                                <strong>Erreur</strong>email non valide
                            </div>
                            <?php
                        break;

                        case 'email_lenght' :
                            ?>
                            <div class="alert alert -danger">
                                <strong>Erreur</strong>email trop long
                            </div>
                            <?php
                        break;

                          case 'pseudo_lenght' :
                            ?>
                            <div class="alert alert -danger">
                                <strong>Erreur</strong> pseudo trop long
                            </div>
                            <?php
                        break;

                          case 'already' :
                            ?>
                            <div class="alert alert -danger">
                                <strong>Erreur</strong>compte déjà existant
                            </div>
                            <?php
                    }
                }

            ?>

            <form action="inscription_traitement.php" method="post">
                <h2 class="text-center">Inscription</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="Mot de passe" required="required" autocomplete="off">
                </div>
                <div class="form-group">
                    <input type="password" name="password_retype" class="form-control" placeholder="Re-tapez le mot de passe" required="required" autocomplete="off">
                </div>
                <div class="form-group">
                    <button type="submit" class="btn btn-primary btn-block">Inscription</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>
Messages postés
37
Date d'inscription
mercredi 15 juillet 2020
Statut
Membre
Dernière intervention
12 juin 2021
>
Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021

J'ai crée un sous dossier dans htdoc que j'ai appelé Site_internet mais ca ne me trouve plus mes pages du coup

Je vais essayer d'installer LARAGON
Messages postés
37
Date d'inscription
mercredi 15 juillet 2020
Statut
Membre
Dernière intervention
12 juin 2021
>
Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021

J'ai installé laragon et voilà ce que ca donne quand je clique



J'aimerais juste savoir comment je peux créer une table comme sur mamp pour gérer les inscription et connexions
Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557 >
Messages postés
37
Date d'inscription
mercredi 15 juillet 2020
Statut
Membre
Dernière intervention
12 juin 2021

C'est très bien dans ce cas tu peux remettre le code complet.
Messages postés
37
Date d'inscription
mercredi 15 juillet 2020
Statut
Membre
Dernière intervention
12 juin 2021
>
Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021

Pouvez-vous juste m'expliquer comment je peux créer une table comme sur mamp pour gérer les inscription et connexions (j'avais crée une table nommée "utilisateur" composée de 6 colonnes)
Messages postés
32943
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 juin 2021
3 557 >
Messages postés
37
Date d'inscription
mercredi 15 juillet 2020
Statut
Membre
Dernière intervention
12 juin 2021

Dans le dossier laragon
tu as un dossier bin
et dedans, tu as heidiSql
Lance le, c'est un logiciel qui permet de manipuler ta bdd comme tu le ferais avec phpmyadmin.
https://www.copier-coller.com/heidisql/