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

  FORUM HardWare.fr
  Programmation
  PHP

  gérer session et vider le caddy

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

gérer session et vider le caddy

n°1113622
joshua11
Posté le 09-06-2005 à 10:14:35  profilanswer
 

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

mood
Publicité
Posté le 09-06-2005 à 10:14:35  profilanswer
 

n°1114339
Worldofdad​a
Posté le 09-06-2005 à 16:33:07  profilanswer
 

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

n°1114380
joshua11
Posté le 09-06-2005 à 16:48:39  profilanswer
 

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 ?

n°1114465
Djebel1
Nul professionnel
Posté le 09-06-2005 à 17:12:40  profilanswer
 

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
n°1114488
joshua11
Posté le 09-06-2005 à 17:20:34  profilanswer
 

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

n°1114507
Djebel1
Nul professionnel
Posté le 09-06-2005 à 17:30:16  profilanswer
 

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
n°1114513
ritzle
Posté le 09-06-2005 à 17:32:11  profilanswer
 

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 ?

n°1114526
Djebel1
Nul professionnel
Posté le 09-06-2005 à 17:41:14  profilanswer
 

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 :)

n°1114586
joshua11
Posté le 09-06-2005 à 18:03:11  profilanswer
 

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""""""""""""""""
 

n°1114592
Djebel1
Nul professionnel
Posté le 09-06-2005 à 18:09:55  profilanswer
 

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
mood
Publicité
Posté le 09-06-2005 à 18:09:55  profilanswer
 

n°1114603
ritzle
Posté le 09-06-2005 à 18:18:06  profilanswer
 

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

n°1114646
Djebel1
Nul professionnel
Posté le 09-06-2005 à 18:53:05  profilanswer
 

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

n°1114682
ritzle
Posté le 09-06-2005 à 19:19:46  profilanswer
 

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

n°1114873
ToxicAveng​er
Posté le 09-06-2005 à 21:33:15  profilanswer
 

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]

n°1115913
Djebel1
Nul professionnel
Posté le 10-06-2005 à 15:52:10  profilanswer
 

ToxicAvenger a écrit :

select count(*) [:aloy]


toutafayt!! :p

n°1115948
esox_ch
Posté le 10-06-2005 à 16:35:48  profilanswer
 

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

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

  gérer session et vider le caddy

 

Sujets relatifs
Formulaire qui ne marche pas à cause d'un session_start()...[IIS / ASP] Transférer une session d'un domaine à l'autre -même site-
probleme de sessionNon-persistance d'une session sauf après avoir changer les options IE
Vider le dossier Contactscript d'ouverture de session en WSH
AU SECOURS register global et sessiondestruction de fichiers en même temps que session
recuperation nom d'utilisateur a partir d'une session windowsProblemme Session multimania
Plus de sujets relatifs à : gérer session et vider le caddy


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