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 :

enregistrer variable PHP sans base de donnée?


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 50
    Points : 31
    Points
    31
    Par défaut enregistrer variable PHP sans base de donnée?
    bonjour!
    j'essaye de mettre dans un tableau des variables que l'utilisateur peut modifier selon ses besoins pour faire des requêtes (ajouter, supprimer)... Je me demandais si on peut stocker ces variables dans du php ou il faut absolument passer par une base de donnée.

    J'ai penser faire remplir un tableau pour cahque nouvelle variable entrée par l'utilisateur, cependant je n'arrive pas à garder ces variables sans les inscrire dans une base de donnée.. quelqu'un as t il une piste?

  2. #2
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    va falloir que t'explique le pourquoi du comment de la chose.

    tu fait quoi, pourquoi et comment?

    pour garder des variables en php tu peux utiliser des variables de session elles sont limité à l'utilisateur ainsi qu'a ça navigation. une fois le browser fermer la session est détruite.
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  3. #3
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Base de données (si beaucoup de valeurs), cookies pour moins (en plus il faut autoriser les cookies), fichiers, bref beaucoup de solutions ...
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Si t'as pas de base, t'as deux solutions : Sqlite sinon PHPCR

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 50
    Points : 31
    Points
    31
    Par défaut
    ok merci pour vos réponses.. oui je me dirigeais doucement vers les variables globales( j'y penses jamais)

    Pour le pourquoi du comment.. ba c'est un formulaire qui appartient aux utilisateurs qui rempliront le fameux tableau contenant les variables...pour moi ce sont des variable mais pour eux ce sont des références leur permettant de travailler les produits du moments.
    c est en entreprise pour un intranet.. le tableau contenant les variable ne doit pas être vider ou réinitialiser sans passer par ce formulaire. est ce qu'une superglobale peut faire l'affaire , j'avais penser faire un fichier php à part contenant cette cette variable global tableau...est ce une bonne idée?

    Pour la base de données ils en ont une mais elle est dédiée à l'erp et je n'y ai pas accés.. (pour les requêtes c'est pas fameux)...
    j travail un peu mon code et je vous post ou j en suis...

  6. #6
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 593
    Points
    188 593
    Par défaut
    Citation Envoyé par tsig00 Voir le message
    ( j'y penses jamais)
    C'est pas forcément un mal, ça . Leur problème est qu'elles ne vivent que pendant l'appel du script PHP : dès qu'on réactualise la page, qu'on passe à une autre, elles ne sont pas gardées. Ça ne me semble donc pas convenir à ton besoin (j'irais plutôt vers des fichiers avec serialize() et unserialize() pour la sauvegarde proprement dite).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 50
    Points : 31
    Points
    31
    Par défaut
    ok merci j m en vais bucher de ce coté là...

    parce que je bloque sur l'ajout...quand j'ajoute des valeurs au tableau ça me fait un tableau bidimensionnel. bref j vous économise le décryptage de mon code

    sino j 'ai cru voir que la superglobale $FILES pouvait correspondre a mes attentes.. mais je vais tenter le serialize...

  8. #8
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    sino j 'ai cru voir que la superglobale $FILES
    J'ai l'impression que tu mélange un peu les choses.


    Quant on parle de "super global", voire de "global" tout court, ça s'arrête à la portée (ou visibilité) de la variable, ça ne va pas plus loin.

    Donc certaines variables comme $_GET, $_POST, $_COOKIE, $_FILES, $_SESSION, $_SERVER sont des super globales, ça veut dire quelles sont accessibles n'importe où dans sont code (fonctions, classes, etc ...).

    Ca ne veut pas dire n'importe quand, donc aucune comparaison possible avec une Bdd ou un fichier.

    Au même titre que la sérialisation, c'est juste une manière de stocker l'information (différente d'un tableau par exemple), ça n'a rien avoir avec le temps, la durée.

    De plus $_FILES est un tableau qui prévoit de stocker des données d' un INPUT type FILE renvoyées par un formulaire.
    C'est à la base prévu pour uploader un fichier.
    C'est assez limité et particulier.

    Certes, il y a 2 cas particuliers parmi ces variables globales : $_COOKIE et $_SESSION qui elles sont prévues pour être conservée lors de la navigation selon une durée de vie fixée par avance (en plus de leur portées globales).
    Ca peu être une solution.


    La vrai question que tu ne répond pas, dourouc05 l'a soulevée, c'est la durée de vie de ces données là, jusqu'à quelle limite (ou critère) doit on les conserver en mémoire.
    Est-ce quelles sont temporaires, c'est à dire juste d'une page à l'autre ? (après c'est plus utile)
    Est-ce tout le long de la navigation de l'internaute/utilisateur ? (après ce n'est plus utile)
    Est-ce à conserver tout le temps, donc après une authentification par exemple ?
    ... etc ...

    Défini cela d'abord, le choix en dépend totalement à mon sens.


    Pour la base de données ils en ont une mais elle est dédiée à l'erp et je n'y ai pas accés..
    Ils ne peuvent pas en créer une juste pour ton besoin ?
    Au passage MySQL est avant tout un serveur de Bases de données, c'est donc nativement prévu pour gérer plusieurs bases, et non se limiter à 1 seule.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 50
    Points : 31
    Points
    31
    Par défaut
    ok ok donc j 'ai suivi vos conseils précieux et j'ai serialiser, le code est à adapté mais il pourrait faire, l'affaire:

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    <?php
     
     
     
             // on initialise la variable qui contient le fichier
           $fichier= 'test.txt';
           //rempli un tableau
           $table = array ('chien','chiat','de');       
           //serialize ce tableau
           $srzed = serialize($table);       
           //met ce tableau serializer dans une variable
           $text = $srzed;
     
     
           //on ouvre le fichier
           $fh = fopen($fichier,'a+');       
           //on lit le fichier
           $lit = fread ($fh, filesize($fichier));  
           //on ferme le fichier
            fclose($fh);
     
            //placer le pointeur au début du fichier
           rewind($fh);       
           //effacer le fichier avant de réécrire dessus
           ftruncate($fh,10)
     
     
           // Ouverture d'un fichier en lecture/écriture, en le créant s'il n'existe pas.
           $fh = fopen($fichier,'r+');  
     
           //on édite le texte a mettre dans le fichier
     
     
           // On écrit. 
            fwrite($fh,$text);         
            // On ferme.
            fclose($fh);    
     
     
     
     
     
           //on affiche le fichier qu on viens de lire 
           echo $lit;       
           //test si tout va bien 
           echo'gutes </br>';
     
           //on unserialize le text lu
           $unser = unserialize($lit);       
           //on tente d afficher la variable unserialiser
           //echo $unser;
           echo '<pre>';
          print_r($unser);
    echo '</pre>';
    ..si ca peut aider quelqu'un...

    Cependant j'ai convaincu la hierarchie de la pertinence de passer par une base de donnée.
    Mais ceci est une autre histoire... et un post supplémentaire à mon tableau de post ^^

    merci encore.

  10. #10
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    pourquoi tu veux pas faire du Sqlite ?

  11. #11
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 50
    Points : 31
    Points
    31
    Par défaut
    je ne connaissait pas mais ça m a l air pas mal surtout que je n'ai pas de relation entre mes tables... puisque j'en aurai qu'une^^ mais j'ai tout a apprendre de ce sgbd. Est il gratuit (en entreprise)? simple à installer? je vais l installer sur un serveur ou il y a win server2008...
    question reseau:puis je l'installer en poste client sur le réseau sans passer par win serveur 2008?

  12. #12
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    mais le Sqlite y'a rien a installer, les bases de données sont des fichiers, c'est tout, pour le reste tu fais comme mysql

  13. #13
    Nouveau membre du Club
    Inscrit en
    Avril 2012
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 50
    Points : 31
    Points
    31
    Par défaut
    ok j vais cogiter sur cette solution..
    merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Livre d'Or PHP avec fichier texte (sans base de données)
    Par Invité dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 7
    Dernier message: 24/04/2016, 06h53
  2. [MySQL] Enregistrer du PHP dans Base de données?
    Par jojo86 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/07/2011, 11h07
  3. [MySQL] Enregistrer une variable dans la base de données
    Par naim2009 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/03/2009, 22h34
  4. php+mysql+base de donnée +recherche
    Par nizar05 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 26/11/2005, 12h04
  5. [CRYSTAL REPORT] Etat sans base de données
    Par chnickel dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/05/2004, 15h44

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