Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1091 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  classes php5

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

classes php5

n°1385524
lecourshtm​l
Posté le 11-06-2006 à 23:49:06  profilanswer
 

Bonjour,
dans mon programme je gère des données sur des personnes à l'aide de classes.
J'ai une interface où on peut notemment modifier ces données, où on peut créer un compte pour un nouvel utilisateur, etc...
Seulement comment garder l'instance de classe pdt tout le temps que la personne est sur mon site ?
 
Dois-je à chaque fois sauvegarder ttes les données sur ma base mysql puis recréer l'objet sur la page suivante ?
 
Je trouve ça dommage, par ex en java l'objet est gardé en mémoire le long de la vie du programme où il peut être passé par référence etc. alors qu'en php il a une durée de vie de quelques micro secondes :p ce qui est pas du tout pratique et me demanderait bcp de ressources au niveau de ma base alors que je voulais créer un objet et enregistrer toutes les modifs faites sur le site sur ses données par l'utilisateur une fois que celui-ci se déconnecte.
 
Comment faire cela ?
 
Merci d'avance

mood
Publicité
Posté le 11-06-2006 à 23:49:06  profilanswer
 

n°1385536
nargy
Posté le 12-06-2006 à 00:17:58  profilanswer
 

Tu n'a pas le choix. Base de donnée ou session (fichier) ou les deux.
Le truc étant de découper tes objets en ne chargeant à partir de la BDD que les données nécessaires à l'affichage de chaque page. (uiliser l'objet PHP comme cache de la base de donnée)


Message édité par nargy le 12-06-2006 à 00:19:16
n°1385537
naceroth
Posté le 12-06-2006 à 00:20:51  profilanswer
 

Utilise les sessions et/ou la serialisation...

n°1385541
masklinn
í dag viðrar vel til loftárása
Posté le 12-06-2006 à 00:26:27  profilanswer
 

lecourshtml a écrit :

Je trouve ça dommage, par ex en java l'objet est gardé en mémoire le long de la vie du programme où il peut être passé par référence etc. alors qu'en php il a une durée de vie de quelques micro secondes :p


Ca n'a aucun rapport, quand tu fais du web en java il se passe strictement la même chose (c'est d'ailleurs pour ça que les gens ont inventé des machins genre Hibernate), le "problème" (si on peut appeler ça un problème) c'est que le Web est stateless de manière inhérente et que deux appels de pages sont totalement indépendants, ça n'a aucun rapport avec le langage utilisé.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1385712
lecourshtm​l
Posté le 12-06-2006 à 12:17:49  profilanswer
 

Bonjour,
merci beaucoup pour vos réponses.
Masklinn -> je parlais de java pour les programmes, je n'ai jamais utilisé java pour le web, mais merci beaucoup pour cet éclaircissement :)Faudrai que j'essai un de ces jours de passer un peu de java dans mes prog :p
 
Sinon je pense que les sessions pourraient en effet être intéressantes, je remercie bcp baceroth et nargy.
Si j'ai bien compris il faut que je m'intéresse à la commande serialize() qui permet d'enregistrer dans une session toutes les données d'un objet.
Cependant cet objet vit-il encore, ou il y a quand même un appel à __destruct() à la fin de chaque page ?
 
Merci encore pour vos réponses :)

n°1385721
masklinn
í dag viðrar vel til loftárása
Posté le 12-06-2006 à 12:25:23  profilanswer
 

lecourshtml a écrit :

Si j'ai bien compris il faut que je m'intéresse à la commande serialize() qui permet d'enregistrer dans une session toutes les données d'un objet.
Cependant cet objet vit-il encore, ou il y a quand même un appel à __destruct() à la fin de chaque page ?


Une copie de l'objet est placée en session, donc l'objet originel est détruit mais tu peux récupérer sa copie dans ta session (gaffe par contre ça prend de la place en session)


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1385724
lecourshtm​l
Posté le 12-06-2006 à 12:29:47  profilanswer
 

ok merci beaucoup Masklinn pour tes réponses  :)  
Je me lance dans la serialisation alors :)

n°1385828
Je@nb
Kindly give dime
Posté le 12-06-2006 à 15:06:18  profilanswer
 

Et si on te vole ta session on récupère tous tes infos :)

n°1385988
nargy
Posté le 12-06-2006 à 18:17:26  profilanswer
 

nan
un numéro de session se fait avec un nombre aléatoire à durée limitée. HttpS si besoin est.

n°1386036
Je@nb
Kindly give dime
Posté le 12-06-2006 à 19:19:08  profilanswer
 

ben si on te vole la session (on récup le fichier) ben ça fait quoi ?

mood
Publicité
Posté le 12-06-2006 à 19:19:08  profilanswer
 

n°1386051
nargy
Posté le 12-06-2006 à 19:54:40  profilanswer
 

kk... alors petite explication.
 
Une session, est un concept plutôt qu'un truc vraiment concret. Ça consiste à associer un identifiant à un internaute, puis d'utiliser cet identifiant pour stocker et retrouver les données de l'internaute.
 
L'identifiant doit être connu à un moment donné à la fois du navigateur et du serveur. Il y a plusieurs méthodes pour transbahuter un identifiant sur le net, et notamment: les paramètres GET, POST, et les cookies. Ces derniers sont le plus souvent utilisés dans les sessions car ils peuvent être gardés par le navigateur pendant une période déterminée, indépendamment de ce que le navigateur est ouvert ou fermé.
 
Il y a différents types d'identifiants, pouvant être les simple pseudonymes des l'internautes, un numéro d'ordre, ou à des fins de sécurité un numéro aléatoire qu'il est donc difficile de retrouver.
 
A un identifiant donné, sont associées des données. Ces données peuvent être transbahutées par le net via des paramètres ou des cookies. Celà n'étant pas très sécurisé et nécessitant plus de bande passante. Les méta-informations concernant un identifiant sont donc très souvent stockés sur le serveur, puis envoyés parcimonieusement vers le navigateur lorsque c'est nécessaire, souvent après un traitement préalable du serveur. Les deux façon principales pour stocker ces méta-informations sont: les fichiers et les bases de données. Les sessions PHP utilisent par défaut des fichiers dans lesquels ils sérializent (transforment en chaîne de caractère) les données. PHP est flexible pour pouvoir accepter de stocker dans une base de donnée, mais le code de stockage est laissé au programmeur.
 
Avec un système de session sécurisé, il n'y a donc que l'identifiant qui est transbahuté sur le net de façon claire. De plus cet identifiant a une durée de vie limitée afin qu'une tentative de deviner l'identifiant aléatoire par essais succesifs soit quasi impossible.
 
Pour rendre le système encore plus sûr afin qu'un numéro de session ne soit pas volé par un sniffeur réseau à l'écoute de la connexion, on utilise le protocole crypté HTTPS, au moins lorsque l'identifiant est créé / recréé, c'est à dire en général sur la page de login ou la page d'accueil. Parmi les information de session peuvent être enregistré l'adresse IP de l'ordinateur client, qui est un numéro d'identification unique sur internet, et qui permet de vérifier à chaque page que l'identifiant a bien été créé pour la même machine cliente qui requiert cette page. Les tentatives de fraude sont renvoyées vers la page de login, l'adresse IP peut être répertoriée et bloquée, le login de l'utilisateur invalidé.
 
PS: j'ai vraiment du temps à perdre aujourd'hui.

n°1386061
Je@nb
Kindly give dime
Posté le 12-06-2006 à 20:19:16  profilanswer
 

Trop merci ça va servir à certain mais certainement pas à moi :D
 
Si tu veux un script vraiment sécure tu vérifies tout le temps la corrélation entre la session et l'utilisateur

n°1386071
mIRROR
Chevreuillobolchévik
Posté le 12-06-2006 à 20:38:39  profilanswer
 

Je@nb a écrit :

Si tu veux un script vraiment sécure tu vérifies tout le temps la corrélation entre la session et l'utilisateur


 
ca commence a m interresser la :D
 
DRAPAL !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  classes php5

 

Sujets relatifs
Remplacer PHP4 par PHP5, et mysql 4.1 par mysql5problème d'offending classes sous tomcat/eclipse
Editer un XML avec DOM et PHP5Convertir un string PostgeSQL à HTML à travers des classes Java
probleme Postgresql 8 et PHP5Changement comportement fonctions suite passage PHP5
Utilisation des classes pour créer des boules de billardprobleme Debian Sarge 3.1 PHP5 SendMail
Class PHP5 de gestion de requetes SQL simplesInterface et classes abstraites en php5 et php6
Plus de sujets relatifs à : classes php5


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR