gérer session et vider le caddy

gérer session et vider le caddy - PHP - Programmation

Marsh Posté le 09-06-2005 à 10:14:35    

bonjour,
 
je fais une billeterie en ligne pour un concert tout se passe bien sauf deux soucis :
 
1. chaque visiteur à un session_id et chaque place réservées dans la salle est stockée dans son caddy - classique-
lorsqu'il paye (carte bleue) l'acceptation de la banque "update" son enregistrement (champs payé) dans une table "user" et je vois ensuite les user dont ce champ payé est à 1 et ce qu'il a dans son caddy ...
sauf que certains utilisateurs réservent des places (dans leur caddy) ce qui rend la place "indisponible pour tout le monde" - normal - et quitte le site sans payer .. il faut donc libérer cette place .. comment faire ?  
lancer régulièrement un script (avec cron que je n'ai encore jamais utilisé)qui supprime les caddy des user non payé au bout d'un certain temps .. ou existe t-il une autre solution plus simple .. ?  
 
2. dans la table caddy chaque ligne correspond à une place achetée à un certain prix (trois prix au choix) comment faire une requete qui à tous moments me permet d'obtenir le nombre de places réservées à tel ou tel prix  
je vois pas commen tutiliser le " SELECT COUNT.. dans ce cas
 
merci  
 
joshua

Reply

Marsh Posté le 09-06-2005 à 10:14:35   

Reply

Marsh Posté le 09-06-2005 à 16:33:07    

1 - Ne simplement pas réserver la place quand il la met dans son caddie mais uniquement quand il paye.
Un caddie n'est pas fait uniquement pour acheter mais également pour faire des devis, peut etre pas dans ton cas mais bon ...
 
2 - pas compris

Reply

Marsh Posté le 09-06-2005 à 16:48:39    

1. oui mais cela autorise deux personnes simultanement su rle site de réserveur la ou les mêmes places !
 
2. deslignes d'enregistrements dans une table et pour chaque un champs par ex qui contient : 30 ou 40 ou 50
comment compter en une seule requete combien à 30 à 40 à 50 ?

Reply

Marsh Posté le 09-06-2005 à 17:12:40    

1. tu mets en place un controle au début d'un script clé de ton site, comme le script de paiement par exemple. Si tu as dans ta base l'ID de session corespondant à l'utilisateur, tu parcours donc la liste des utilisateurs et a chaque fois tu vérifies que la session existe encore. S'il est existe plus, tu la supprimes de ta base. Ce controle sera fait à chaque fois que n'importe quel utilisateur visionnera ce script clé.
 
Une autre solution peut être de gérer tes sessions grace à ta BDD, du coup les sessions finies disparaitront "toutes seules"
 
2. Select * from TaTable where TonPrix=40 ???


Message édité par Djebel1 le 09-06-2005 à 17:14:09
Reply

Marsh Posté le 09-06-2005 à 17:20:34    

1.pas bete l'idée du controle mais comment savoir si la session existe tjours ?  
 
idem comment les sessions finies disparaitraient toutes seules ?
 
2. oui mais c'est dans la même requete trouver ceux à 40 et à30 et à 50  
> Select * from TaTable where TonPrix=40 ??? l
là tu n'as que ceux à 40

Reply

Marsh Posté le 09-06-2005 à 17:30:16    

1. Y a une fonction en php qui te permet de te faire ton propre gestionnaire de session : elles ne seront plus gérer simplement par apache, mais seront insérées dans des tables de ta base, cherche sur google avec gestionnaire de session php pour de plus amples détails :)
Avec ce système tous tes problèmes seront résolus, mais c'est un peu compliqué au départ.
 
Sans rentrer dans ce systeme, en plus simple, tu peux te créer une table utilisateur, et quand un utilisateur met un truc dans son caddy, tu note sa session_id et la date. ton test peut alors tout simplement conssité à virer de la table du caddy toutes les lignes avec une session_id rentrée il y a plus de 30 minutes par exemple. Ce système est pas compliquée, mais avec ca meme un utilisateur actif sur ton site peut voir son caddy remis à 0. Pour éviter ca tu peux updater la date d'insertion de la session_id à chaque fois qu'il change un truc dans son caddy.
 
Enfin, si tu veux vraiment faire un controle de session active, sans passer par un gestionnaire de session par bdd, je pense que la solution est de parcourir le répertoire où les session_id de php sont stockés.
 
2 Select * from TaTable where Tonprix=40 or Tonprix=30 or Tonprix=50 ....


Message édité par Djebel1 le 09-06-2005 à 17:30:36
Reply

Marsh Posté le 09-06-2005 à 17:32:11    

1. si quelqu'un veut te faire chier il ouvre plusieurs sessions...
 
2. Select * from TaTable where 30<TonPrix AND TonPrix<50
c'est possible ?

Reply

Marsh Posté le 09-06-2005 à 17:41:14    

ritzle a écrit :

1. si quelqu'un veut te faire chier il ouvre plusieurs sessions...


absolument aucun controle fiable ne peut l'empecher, si un pti malin veut s'amuser à réserver 150 billets et à rester actif pour faire chier, je vois pas trop ce que tu peux y faire ....
Pour éviter ces abus, tu peux surement rajouter un controle du type : un billet ne peut pas rester dans un caddy sans etre acheté  plus de x temps, etc, enfin ces controles la c'est à toi de les penser.

ritzle a écrit :


2. Select * from TaTable where 30<TonPrix AND TonPrix<50
c'est possible ?


bah oui :)

Reply

Marsh Posté le 09-06-2005 à 18:03:11    

merci çà me fait avancer ..
 
pour le .2  
en fait je voudrais avoir en une requete
les resultats du style :
x billets à 30 ont été achétés
z """"""""""40""""""""""""""""
y"""""""""""50""""""""""""""""
 

Reply

Marsh Posté le 09-06-2005 à 18:09:55    

bah donc pour le 2 c'est ce que je te disais :

Code :
  1. select * from tatable where tonprix=30


 
avec ca tu récuperes combien tu as de billets vendus à 30.
 
Ensuite tu refais pareil avec 40, 50 , etc
 
Par contre si ce que tu veux savoir c'est combien tu en as vendu entre 30 et 50, alors ca sera

Code :
  1. select * from tatable where tonprix>=30 and tonprix<=50


 
 
a ma connaissance, c'est pas possible en une seule requete de savoir pour chacun des prix combien tu en as vendu, fais ca en 3 requetes


Message édité par Djebel1 le 09-06-2005 à 18:10:48
Reply

Marsh Posté le 09-06-2005 à 18:09:55   

Reply

Marsh Posté le 09-06-2005 à 18:18:06    

si tu veux vraiment faire qu'une requete (pour des raisons diverses), faut trier en PHP

Reply

Marsh Posté le 09-06-2005 à 18:53:05    

je pense que 3 requetes bien faites vont plus vite que un tri PHP si les données sont nombreuses, mais je dis ca sans aucun élément objectif pour l'affirmer

Reply

Marsh Posté le 09-06-2005 à 19:19:46    

tu as certainement raison, mais s'il veut le faire en une seule...

Reply

Marsh Posté le 09-06-2005 à 21:33:15    

Djebel1 a écrit :

bah donc pour le 2 c'est ce que je te disais :

Code :
  1. select * from tatable where tonprix=30


 
avec ca tu récuperes combien tu as de billets vendus à 30.
 
Ensuite tu refais pareil avec 40, 50 , etc
 
Par contre si ce que tu veux savoir c'est combien tu en as vendu entre 30 et 50, alors ca sera

Code :
  1. select * from tatable where tonprix>=30 and tonprix<=50


 
 
a ma connaissance, c'est pas possible en une seule requete de savoir pour chacun des prix combien tu en as vendu, fais ca en 3 requetes


 
select count(*) [:aloy]

Reply

Marsh Posté le 10-06-2005 à 15:52:10    

ToxicAvenger a écrit :

select count(*) [:aloy]


toutafayt!! :p

Reply

Marsh Posté le 10-06-2005 à 16:35:48    

Tu me passes l'adresse de ta billeterie? stp?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed