Journal Question php

Posté par .
Tags : aucun
0
7
mai
2004
Une petite question pour les pros de php. Je cherche un moyen de créer une variable serveur, c'est à dire une variable qui aura le même contenu pour toutes les sessions et que certains scripts pourront modifier. J'avais pensé le faire avec un fichier texte dont le contenu serait renvoyé par un script php, mais j'aurais aimé faire une vraie variable serveur comme on peut en faire avec d'autres technologies.

D'avance merci !
  • # c'est pénible de devoir mettre un titre à chaque fois...

    Posté par . Évalué à 2.

    Sérialisation d'objet ? (pas trop testé, je sais pas si ça peut correspondre à ce que tu veux...)
  • # Stocké dans une session ?

    Posté par . Évalué à 1.

    Ce que tu aimerais faire est stockés des informations dans une session ?

    session_start();
    $_SESSION['foo'] = 'bar';

    Ensuite sur une autre page,

    session_start();
    echo $_SESSION['foo']; // bar
    • [^] # Re: Stocké dans une session ?

      Posté par . Évalué à 2.

      Non, ce qu'il aimerait faire, ce n'est pas stoquer une variable du côté du client mais du côté du serveur. Une variable globale qui serait valable pour tous les clients en quelque sorte.
      • [^] # Re: Stocké dans une session ?

        Posté par . Évalué à 1.

        autant pour moi, ça m'apprendra à lire ;)
      • [^] # Re: Stocké dans une session ?

        Posté par (page perso) . Évalué à 1.

        Et ?

        Je vois pas où est le problème, les données de session sont "stockées" sur le serveur, jamais chez le client. Le client ne voit qu'un ID permettant au serveur de retrouver la session associée .
        • [^] # Re: Stocké dans une session ?

          Posté par . Évalué à 1.

          Le problème c'est qu'il y a une session par clients, moi je veux une variable identique pour tout les clients histoire que tout les scripts des clients partagent cette variable.
  • # Constante ou variable apache

    Posté par (page perso) . Évalué à 3.

    Soit tu es quelqu'un d'organisé et tu as un fichier commun à tous tes fichier, dans ce cas, la constante est l'idéal :

    define('MA_CONSTANTE','valeur');

    Sinon, autre solution, la variable dans le VirtualHost Apache si tu y a accès :

    SetEnv VAR "ma valeur"

    Ensuite ça se récupère avec $_SERVER['VAR']
    • [^] # Re: Constante ou variable apache

      Posté par . Évalué à 1.

      define('MA_CONSTANTE','valeur');

      C'est forcément une constante ?

      Sinon, autre solution, la variable dans le VirtualHost Apache si tu y a accès :

      SetEnv VAR "ma valeur"

      Ensuite ça se récupère avec $_SERVER['VAR']


      Si ensuite un script php peut modifier cette variable c'est exactement ce qu'il me faut !
  • # Re: Question php

    Posté par . Évalué à 2.

    Un bout de mémoire partagée ? http://www.php.net/manual/fr/ref.shmop.php(...) (je n'ai pas fais de php depuis des lustres, je ne sais plus si cette mémoire est liberée à la fin du processus, mais tu peux toujours essayé :)
  • # Un coup de php.ini

    Posté par (page perso) . Évalué à 2.

    On ne peut pas, d'apres une lecture de la doc, pour question de securité. Les variables d'environement ou de type server son read-only ou perte leur valeur apres execution du script.

    Tu peux te rabattre sur auto_prepend_file et auto_append_file dans php.ini et un script maison pour lire et stocker cette variable (fichier ? db ?)

    Ou alors, ecrire un module pour php voire faire un patch, mais on part dans un total autre direction.
  • # Et la banana

    Posté par (page perso) . Évalué à 2.

    La persistance n'est pas chose aisée pour un projet comme PHP qui est historiquement pensé dans une logique de session HTTP.

    Néanmoins, un projet existe :

    http://www.vl-srm.net/(...)

    Je n'ai pas testé. Bon courage
  • # Solutions

    Posté par (page perso) . Évalué à 2.

  • # ca depends

    Posté par . Évalué à 1.

    Ben avant tout ca depends un peut de ce que tu veux en faire : c-a-d de la frequence d'ecriture et lecture..

    par exemple, avec un bête fichier, si la frequence d'ecriture n'est pas tres élevée, ca peut le faire... le risque est faible ensuite il evaluer l'importance que ca a ...
    si par exemple tu as besoin de lire puis d'ecrire dans cetet ressource (dans le fichier quoi) et que sur quelques script les operations entre ces 2 actions sont longue, tu peux gerer ta section critique avec uen sorte de semaphore...

    Tu te fais des fonction pour la lecture et l'ecriture et des fonction pour prendre et relacher le semaphore... qui pourra être géré lui même par un fichier (les fonctione semaphore etant elles même assez petites)
    tu mets ceci dans un fichier messcripts.inc.php et ca te fais un API de variable serveur, voili voilou...

    bourin ? ca depends ce que qu'on veux en faire...
  • # une variable de portée application ?

    Posté par . Évalué à 1.

    <troll>
    a priori, tu veux créer une variable de portée application, variable facilement utilisable dans des environnement ASP/J2EE
    </troll>

    or, ce n'est pas possible, nativement, en PHP : soit tu passes par une source de données externe (un fichier avec des données serialisées, une base de données...), soit tu fait comme Zeev Suraski/Andi Gutmans disent de le faire : tu installes la librairie de gestion de la memoire...
    extrait du chat (question de flaimo):

    >Will there be something like the application scope in asp. for
    >example $_APPLICATION['varname'] = value; ?
    >>This is not planned at this point. Similar functionality can be
    >>achieved, however, by using PHP's shared memory module.

    l'article sur zend.com :
    http://www.zend.com/php/ask_experts.php(...)

    sinon, tu as un exemple de variable d'application par fichier à cette adresse :
    http://www.leosingleton.com/projects/code/phpapp/(...)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.