IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Conception Web Discussion :

Cookie de session non conservé dans le navigateur


Sujet :

Conception Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    autre
    Inscrit en
    Juin 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2023
    Messages : 4
    Par défaut Cookie de session non conservé dans le navigateur
    Bonjour à tous,

    Je fais appel à vous aujourd'hui car je rencontre un problème sur mon site qui m'empêche de poster des requêtes utilisant des cookies de session. Je vais vous expliquer la situation en détail.

    J'héberge mon site chez LWS à l'adresse suivante : https://www.coopratings.fr/. Pour tester, vous pouvez vous connecter avec le login "a@a" et le mot de passe "a".

    Lorsqu'un utilisateur souhaite effectuer une action sur mon site, une requête est envoyée au serveur qui vérifie si l'utilisateur est connecté en utilisant la fonction "session_start()" et la variable "_SESSION["isLogged"]".

    Le problème est le suivant : sur certaines machines, le cookie "phpsessid" est conservé entre les requêtes, ce qui permet le bon fonctionnement du système de vérification de connexion. Mais sur d'autres machines, le cookie "phpsessid" change à chaque requête, ce qui empêche le système de fonctionner correctement.

    En analysant le problème, j'ai remarqué que chaque fois que le navigateur envoie une requête "OPTION" avant une requête "POST", le cookie "phpsessid" change et je ne le vois pas stocké dans la section "Stockage -> Cookies" de l'onglet "F12" du navigateur.

    De plus, lorsque j'héberge mon site localement avec XAMPP en utilisant l'URL "http://127.0.0.1/monsite/...", tout fonctionne correctement. Cependant, lorsque j'utilise phpStorm pour afficher la page, il utilise l'URL "http://localhost:63342/monSite/...", et le navigateur envoie des requêtes "OPTION" (ce qui provoque le même problème que celui mentionné précédemment).

    Lorsque je suis connecté localement avec "http://localhost:63342/monSite/...", la réponse affiche "Vous n'êtes pas connecté", comme je l'ai configuré pour les cas de POST sans connexion.

    En revanche, lorsque je me connecte à l'adresse "https://www.coopratings.fr/", la console affiche les erreurs suivantes :

    "Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://www.coopratings.fr/Rest_API/...e_reviewid.php. (Reason: header ‘content-type’ is not allowed according to header ‘Access-Control-Allow-Headers’ from CORS preflight response)."

    "Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://www.coopratings.fr/Rest_API/...e_reviewid.php. (Reason: CORS request did not succeed). Status code: (null)."

    "Uncaught (in promise) TypeError: NetworkError when attempting to fetch resource."

    J'ai effectué des recherches approfondies sur Internet et j'ai essayé différentes solutions, mais jusqu'à présent, je n'ai pas réussi à résoudre le problème. Voici ce que j'ai déjà tenté :

    - Gérer les requêtes "OPTION" dans mes fichiers PHP en ajoutant le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	if (
    	    isset($_SERVER['REQUEST_METHOD'])
    	    && $_SERVER['REQUEST_METHOD'] === 'OPTIONS'
    	) {
    	    exit();
    	}
    - Modifier les en-têtes de réponse avec les configurations suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	header('Access-Control-Allow-Origin: *');
    	header('Access-Control-Allow-Methods: POST, OPTION');
    	header('Access-Control-Allow-Headers: Access-Control-Allow-Headers,Content-Type,Access-Control-Allow-Methods, Authorization, X-Requested-With, Accept, Cookie');
    	header('Access-Control-Allow-Credentials: true');
    - Ajouter les paramètres "mode: 'cors'" et "credentials: 'include'" dans les requêtes (pas en même temps).

    - Modifier les paramètres des cookies lors de la création de la session :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    	public static function startSession(){
    	    $maxlifetime = 3600;
    	    $secure = true;
    	    $httponly = true;
    	    $samesite = 'None';
    
    	    if(PHP_VERSION_ID < 70300) {
    	        session_set_cookie_params($maxlifetime, '/; samesite='.$samesite, $_SERVER['HTTP_HOST'], $secure, $httponly);
    	    } else {
    	        session_set_cookie_params([
    	            'lifetime' => $maxlifetime,
    	            'path' => '/',
    	            'domain' => $_SERVER['HTTP_HOST'],
    	            'secure' => $secure,
    	            'httponly' => $httponly,
    	            'samesite' => $samesite
    	        ]);
    	    }
    
    	    session_start();
    	}
    Voici comment j'envoie mes requêtes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	let url = new URL('http://127.0.0.1/coopratings/Rest_API/api/');
    
    	return fetch(url + request, {
    	    method: type,
    	    body: body,
    	    headers: {
    	        "Content-Type": "application/json",
    	    }
    	})
    	.then(res => {
    	    return res.json();
    	})
    En espérant trouver une solution à ce problème.
    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 694
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 694
    Par défaut
    en testant avec la dernière version de firefox, je ne vois pas de souci et la session php est bien conservée.

    quels sont les navigateurs pour lesquels vous avez ce souci ?

  3. #3
    Candidat au Club
    Homme Profil pro
    autre
    Inscrit en
    Juin 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2023
    Messages : 4
    Par défaut
    En fait c'est ça le problème. Pour certaines machines, le site fonctionne parfaitement et pour d'autre non. Le navigateur n'influence pas le fonctionnement. Sur les machines qui marchent peut importe le navigateur utilisé, le site fonctionnera correctement. Pareil pour les machines sur lesquelles le site ne fonctionne pas.

    Et aussi avez vous bien tester de poster quelque chose ? La requête de login à l'air de fonctionner mais en fait elle créé une session qui ne sera pas utilisée par la suite.

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 694
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 694
    Par défaut
    je me suis connecté, j'ai ajouté 2 jeux "test 2" et "test 3" et j'ai ajouté une critique.

    est ce que sur les machines qui ont un souci, la connexion passe par un proxy ou un système du même genre qui pourrait modifier les requêtes http ?

  5. #5
    Candidat au Club
    Homme Profil pro
    autre
    Inscrit en
    Juin 2023
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Juin 2023
    Messages : 4
    Par défaut
    Non ce sont des machines qui sont configurées de la même façon que la mienne, c'est à dire avec un réglage par défaut. En tout cas je suis sur qu'elles n'utilisent pas de proxy. J'ai plusieurs pc sur le même réseau chez moi. Seul une machine fonctionne, mes téléphones eux aussi ont ce problème.
    J'ai un ami qui a testé avec sa machine. Le site fonctionne. Et un autre ami, le site ne fonctionne pas chez lui. Nous avons tester tous avec la dernière version de chrome, firefox et edge.

  6. #6
    Membre éclairé Avatar de nl.smart
    Homme Profil pro
    ouvrier
    Inscrit en
    Avril 2019
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : ouvrier
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2019
    Messages : 180
    Par défaut
    Bonjour,

    Je me permets de répondre à cette conversation. Tout d'abord je trouve ton site propre tant du point de vue de l'ui que de l'ux, félicitations, j’espère être capable d'en faire autant assez vite :-)

    Dans mon cas je me suis connecté à ton site Web depuis mon daily os qui se trouve être une distro linux, les ajouts que je me suis permis de faire sur ton site web sont linux firefox, linux chrome et enfin linux edge, pas de soucis avec les cookies qui sont bien présents dans l'inspecteur de chaque navigateur.

    Lors du développement d'un site Web je me permets de réaliser un jeu de tests, qui consiste à tester le site sur différents os et navigateurs, et je m'aperçois qu'en me connectant à ton site depuis mon smartphone sous android 9 la connexion avec tes identifiants fonctionne, sauf qu'il ne m'est pas possible d'ajouter un jeu à la liste, je souhaitais simplement ajouter "android firefox", à la place le message "connectez vous pour ajouter un jeu" apparaît dans le header du site, espérant ne pas avoir commis d'impair, mais constatant et confirmant ainsi ton message décrivant le soucis avec les smartphones.

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/10/2007, 20h00
  2. Google Analytics sur une page non affichée dans un navigateur
    Par Fdescamps dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/06/2007, 08h18
  3. Novice - non affichage dans le navigateur de l'applet
    Par sanosuke85 dans le forum Applets
    Réponses: 10
    Dernier message: 21/08/2006, 16h19
  4. Réponses: 2
    Dernier message: 10/07/2006, 10h07
  5. Visualiser un fichier xls dans Excel (et non pas dans mon navigateur)
    Par n@n¤u dans le forum Général Conception Web
    Réponses: 10
    Dernier message: 10/07/2006, 08h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo