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

Langage PHP Discussion :

Utilisation de session_register


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Par défaut Utilisation de session_register
    Bonjour,

    J'ai un code qui fonctionne parfaitement en PHP 4.3.10. J'ai essayé de migrer en en 5.+ (EasyPHP 3.1) mais j'ai de gros souci avec les sessions donc j'ai fait marche arriere. J'ai plusieurs messages d'erreur dont un en particulier: "session_register decrepated".

    La fonction session_register est devenu obsolete. Sur la documentation en ligne, effectivement il est indiqué que cette fonction est obsolete.

    http://fr.php.net/manual/fr/function...n-register.php

    Or ils disent que si il y a beaucoup de session_regsiter dans le code (ce qui est mon cas) on peut utiliser la fonction suivante, set_session_vars() defini comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    function set_session_vars() {
        $nb_args=func_num_args();
        $arg_list=func_get_args();
        for($i=0;$i<$nb_args;$i++) {
            global $$arg_list[$i];
            $_SESSION[$arg_list[$i]] = $$arg_list[$i];
        }
    }
    ?>
    Mais ma question est: où est-ce que je le met cette fonction ? au début de chaque page ?

    Merci.

    J.

  2. #2
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    d'où viennent tes variables de sessions ?

  3. #3
    Membre très actif Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Par défaut
    Utilise directement $_SESSION plutôt que session_register()
    La fonction que tu indiques n'est qu'un remplacement pour session_register().
    Partout où tu utilises session_register(), il faudra que tu mettes à la place set_session_vars(). C'est pourquoi il me paraît plus simple, rigoureux et performant de refactorer directement avec $_SESSION

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 107
    Par défaut
    Citation Envoyé par metagoto Voir le message
    Utilise directement $_SESSION plutôt que session_register()
    La fonction que tu indiques n'est qu'un remplacement pour session_register().
    Partout où tu utilises session_register(), il faudra que tu mettes à la place set_session_vars(). C'est pourquoi il me paraît plus simple, rigoureux et performant de refactorer directement avec $_SESSION
    Merci a vous 2 pour votre participation a mon sujet.

    metagoto, je ne comprends pas bien. Tu dis d'abord que je dois utiliser directement $_SESSION plutôt que session_register(). Mais dans la phrase suivnate, tu dis que je doit remplacer session_register() par set_session_vars(). Donc je fais quoi ?

    J.

  5. #5
    Membre très actif Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Par défaut
    Relis bien tout mon précédent post jusqu'au bout. Ca me paraît clair, non ?

    Je déconseille d'utiliser set_session_vars(). Je te conseille plutôt que remplacer tous tes appels à session_register() par un équivalent avec $_SESSION[] = blah

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Metagoto, je crois que la fonction set_session_vars dont parle Jinx_ est une fonction permettant de rendre le code compatible sans avoir à se prendre la tête à décomposer tous les session_register. En gros on réinvente session_register. (le but étant de migrer le code, pas de le réécrire )

    Jinx, ce qu'il faut que tu fasses c'est t'arranger pour que cette fonction soit définie dans tous les fichiers dans lesquels tu as l'intention de l'utiliser. Si tu as un fichier de définitions de fonctions ou quelque chose du genre inclus dans tes scripts, c'est dedans qu'il faut la mettre.
    Ensuite il faut remplacer tous les appels à session_register par des appels à set_session_vars.

    Evidemment ce sera 12 fois plus simple d'utiliser $_SESSION = ... si jamais tu dois ajouter des choses dans la session dans de futurs développements
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par Celira Voir le message
    Jinx, ce qu'il faut que tu fasses c'est t'arranger pour que cette fonction soit définie dans tous les fichiers dans lesquels tu as l'intention de l'utiliser. Si tu as un fichier de définitions de fonctions ou quelque chose du genre inclus dans tes scripts, c'est dedans qu'il faut la mettre.
    Ensuite il faut remplacer tous les appels à session_register par des appels à set_session_vars.

    Evidemment ce sera 12 fois plus simple d'utiliser $_SESSION = ... si jamais tu dois ajouter des choses dans la session dans de futurs développements
    Bonjour Celira

    Une précision, dans ce que tu souligne comme organisation (qui vaut pour les deux méthodes, ) le but est :
    1) n'avoir qu'un appel aux sessions par pages
    2) de l'avoir dans toutes les pages par principe même si pour une page donnée les valeurs de sessions ne sont pas utilisées.

    Je suis pour ma part fervent de la méthode suivante,
    dans tout mes pHP de page (principaux) je débutes par exemple par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    session_start();
    include("outils/xxxxxxxxxx.php");
    // ===== etc...
    dans les pages secondaires (toutes celles destinées a étre include)
    jamais rien sur les sessions.

    Cependant comme tu l'indiques, si dans monPHP de fonctions, je géres mes sessions alors je l'include de suite comme mon exemple xxxxxxxx.php

Discussions similaires

  1. vieux code qui utilise session_register
    Par ulissse dans le forum Langage
    Réponses: 1
    Dernier message: 24/03/2010, 16h57
  2. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 16h57
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 13h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 17h01
  5. Réponses: 2
    Dernier message: 21/03/2002, 00h01

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