cookies pour charger une page d’accueil. (Créer un compte)

  • Statut : non résolu
  • Ce sujet contient 3 réponses, 3 participants et a été mis à jour pour la dernière fois par Guy, le il y a 11 années.
4 sujets de 1 à 4 (sur un total de 4)
  • Auteur
    Messages
  • #487401
    Aikadil
    Participant
    Initié WordPress
    9 contributions

    Ma configuration WP actuelle
    – Version de WordPress : 3.0.1
    – Version de PHP/MySQL : 5.3.3
    – Thème utilisé : un theme prémium
    – Extensions en place : contact form 7, super cache, lightbox2, tinyMCE.
    – Nom de l’hebergeur : OVH serveur prive Debian 5 32bit LAMP

    Problème(s) rencontré(s) :

    Bonjour, merci pour toutes l’aide apportée.

    à la racine de mon blog j’ai une page intro.html avec une animation DHTML pour introduire mon site.

    A la suite d’une aide sur le forum pour utiliser une page d’intro sur un site, j’ai rajouter au début de la page header.php de mon thème.

    setcookie(‘MonIntro’, ‘ok’);
    header(‘location: intro.html’);
    }?>

    Normalement avec ces paramètres un cookie devrais être envoyer et réactualiser à la fin de la session de l’utilisateur « ouverture/fermeture du navigateur » et afficher la page http://adressedusite.be/intro.html

    celà fonctionne…parfois et mal.

    Parfois celà fonctionne bien 2-3 fois sur mon navigateur « après ouverture/fermeture du navigateur » et après quelques fois… plus rien, c’est la page d’accueil du site qui s’affiche.

    de plus de temps en temps quand je clic sur une des pages du site dans le menu, l’adresse type:
    http://adressedusite.be/page1 se transforme au clic en http://adressedusite/page1/intro.html et retourne donc une page d’erreur, quand on clic une 2em fois sur le même lien, alors la page se charge bien sur http://adressedusite.be/page1

    je doit sans doute mal utiliser le cookies, pas sur la bonne page, erreur dans le code…

    Merci pour l’aide.

    #743564
    Aikadil
    Participant
    Initié WordPress
    9 contributions

    Personne pour me dire si je fait une erreur dans:

    <?php if(!isset($_COOKIE)) {
    setcookie(‘MonIntro’, ‘ok’);
    header(‘location: intro.html’);
    }?>

    #743565
    Mikha
    Participant
    Initié WordPress
    27 contributions

    Bonjour,

    Je vois ici beaucoup de « questionneurs » et bien peu de « repondeurs », je ne sais pas si je me trompe…

    Je suis confronte au meme type de difficulte aujourd’hui, pour le meme genre de cas de figure (une page de « couverture » et d’intro sur un blog, un essai de « home-squeeze-page » sur un autre).

    J’ai tout d’abord testé les cookies php « classiques » (setcookie(‘bla’,’bla »bla’); if (!isset($_COOKIE)) { action }… Apparemment, cette voie ne fonctionne pas avec wp.

    J’ai alors essaye de contourner cet obstacle. En mettant mon nez dans le gestionnaire de cookies (FireFox), j’ai tout d’abord remarque deux choses :

    1- A chaque fois que le blog est visite, il y a un cookie de session « PHPSESSID » qui est pose par le moteur de blog Wp pour toute la duree de la visite,

    2- Il y a des cookies specifiques tagues « wp_cookie_(qq chose) qui apparaissent.

    J’ai donc pose un petit piege en deux lignes a la racine du wp-config.php, où la premiere ligne teste justement la presence du cookie « PHPSESSID » lors de l’ouverture du blog :

    01 if (!sset $_COOKIE { // si ce cookie n’est pas mis, c’est qu’il y a bien un debut d’ouverture…
    02 setcookie(‘wp_cookie_test_1’, ‘1’, time()+30) /*verifiez la syntaxe de l’heure mais l’idee c’est celle-ci :
    * on « leurre » wp en inventant un alias de son cookie-test type, on lui affecte une valeur facile a tester, par ex 0 ou 1,
    * et on lui donne une duree de vie breve, par exemple 30 secondes, juste le temps qu’il faut pour precharger une page

    Ce petit piege en place, j’ai alors bricole le index.php de mon theme ainsi :

    <?php if(!isset($_COOKIE) && $_COOKIE == "1") {
    wp_template_part(‘intro’); // ‘intro’ appelant ma page intro.php qui appelle la page d’introduction specifique
    exit;
    }
    else { }
    wp_head; ?> // debut « classique » de la page index.php

    Eh bien, vous me croirez si vous voulez :

    Ce truc marche UNE FOIS SUR DEUX… seulement 🙂

    Un coup ca marche… et un coup ca marche pas 🙂

    Alors qui d’autre ici aurait une explication (de preference coherente) aux « petits caprices » de Wp 🙂) ?

    Merci, M’sieur-Dames, de votre attention… 🙂

    Amicalement,
    Mikha

    #743566
    Guy
    Participant
    Maître WordPress
    14817 contributions

    je ne comprends même pas que cela marche une fois sur deux, cela ne devrait pas marcher du tout.

    if(!isset($_COOKIE) && $_COOKIE == « 1 »)

    cette ligne dit: si $_COOKIE n’existe pas ET $_COOKIE== « 1 » alors envoyer l’intro.

    si il n’existe pas, il ne sera jamais égal à 1.

4 sujets de 1 à 4 (sur un total de 4)
  • Le forum ‘Utilisation spécifique de WordPress’ est fermé à de nouveaux sujets et réponses.