[RESOLU] les sessions

Eléphant du PHP | 66 Messages

08 janv. 2023, 16:00

Bonjour,

j'essai de faire une session mais j'ai un message d'erreur, je ne sais pas si cela vient de mon code qui est mauvais ou bien du wampserver qui à un problème de configuration.

Merci de votre aide

voici le message d'erreur :

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at [email protected] to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

Apache/2.4.51 (Win64) PHP/7.4.26 Server at villerecherche Port 80

voici le code du formulaire qui renvoi à la page recherche.php
//formulaire déjà membre
    if (isset($_POST['submit_membre'])) {
        echo
        '<div class="deja_membre">
            <form method="post">
                <p>Identifiant <input type="email" name="user_input_login"></p>
                <p>Mot de passe <input type="password" name="password_input_login"></p>
                <input type="submit"  name="submit_inc" value="Envoyer"> 
            </form>
        </div>';
    }
    //script de vérification et autentification
    //champs vides
    if (isset($_POST['submit_inc'])) {
        $user_input_login = $_POST['user_input_login'];
        $password_input_login = $_POST['password_input_login'];
        if ((empty($user_input_login)) or (empty($password_input_login))) {
            echo 'les champs sont vides !!.';
        } else {
            // connexion
            $result = $mysqli->query('SELECT user_id, user_login, user_password FROM user WHERE user_login = "' . $user_input_login . '"');
            $row = $result->fetch_array();
            $user_id = $row['user_id'];
            $user_password = $row['user_password'];
            if (password_verify($password_input_login, $user_password)) {                                         
                session_start();
                $_session['user_id'] = $user_id;
                header('location : recherche.php');                         
            } else {
                // user ou mdp erroné  
                echo 'erreur identifiant ou mot de passe';
            }
        }
    }
    ?>



[PHP]

voici le code de la page recherche.php - cette partie du code se place bien tout en haut de la page ?

<?php require('inc_connexion.php');
session_start();
if(!isset($_SESSION['user_id'])){
echo 'vous n\'avez pas accès à la page recherche';
echo '<br><a herf="index.php">Retour page connexion</a>';
}
$user_id = $_SESSION['user_id'];
?>


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!--formulaire de recherche d'une ville-->
[/PHP]

dans l'attente de vos retours

Eléphant du PHP | 66 Messages

08 janv. 2023, 17:36

dans la premier partie de mon script, si je fait un echo $_session['user_id'], je récupère bien l'id.
dans dans l'autre partie de mon script $user_id n'est pas défini, donc il n'y a pas propagation de la valeur de la variable ??
je ne comprends pas !!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

08 janv. 2023, 19:11

Internal Server Error
[...]
More information about this error may be available in the server error log.
Et donc, es-tu allé dans les logs comme c'est indiqué explicitement dans le message d'erreur pour savoir quel est le problème ? Ça serait un bon point de départ ! :-D
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 66 Messages

08 janv. 2023, 19:37

voici le réponse qui ne m'apporte pas grand chose hélas.

[Sun Jan 08 18:30:55.450165 2023] [http:error] [pid 8844:tid 1180] [client ::1:59545] AH02429: Response header name 'location ' contains invalid characters, aborting request, referer: http://villerecherche/index.php

Eléphant du PHP | 66 Messages

08 janv. 2023, 19:58

avec de la persévérance j'ai trouvé !!

il faut pas d'espace header('location : recherche.php');
header('location:recherche.php'); fonctionne super enfin bref 5h que je tourne en rond.

mais c'est la meilleure des solution pour retenir !!

merci de ton aide de m'avoir orienté je ne suis pas très alaise pour triffouiller dans wampserveur

Avatar du membre
Mammouth du PHP | 1564 Messages

08 janv. 2023, 20:08

Oui "Location:[espace ou pas]" avec L majuscule, pas d'importance le L majuscule et l'espace mais on comprends mieux ainsi.

C'est peut être aussi le fait que tu fait une boucle de redirection sur la page recherche.php, si t'es déjà sur recherche.php ton script peut retourner "Internal Server Error - La page est mal redirigée"

Tu peux passer en Résolu le sujet.