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 :

Condition non respectée


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Points : 21
    Points
    21
    Par défaut Condition non respectée
    Bonjour à tous.

    Voilà je viens vers vous pour un soucis que je ne comprends pas (sinon ce serait trop simple ^^)

    En fait, je travaille sur un site qui fait des enchères.

    Il y a 2 types d'enchères : manuelle et auto.

    Manuelle, je pense pas avoir à expliquer comment ça marche ^^.

    Auto, l'utilisateur peut programmer un bot qui va automatiquement réenchérir lorsqu'il n'aura plus la main.

    Avant, quand 2 bots se battaient (donc 2 personnes), les enchères se succédaient sans laps de temps. Depuis j'ai mis pour qu'il y ait 2 sec entre chaque enchère de bot.

    Jusque là, vous allez me dire ok mais pourquoi tu viens.

    Voici le vrai problème.

    Sur une enchère auto, bien entendu on peut faire une enchère manuelle.

    Par exemple, perso1 a programmé son bot , perso2 fait ça manuellement.

    Le soucis que j'ai c'est que quand perso2 enchérit, le bot de perso1 enchérit directement après.

    J'ai programmé un truc histoire que quand perso2 clique, j'ai le temps actuel qui s'enregistre dans un $_SESSION histoire de voir quand cette enchère a été faite.

    Ensuite, là où mes bots se battent, j'ai fais une condition histoire de dire que si time() (donc mon temps actuel) est supérieur a ma session+3sec, alors le bot se déclenche. Sinon il ne rentre pas dans mon IF quoi ... Seulement, bah ça rentre tout seul comme si à chaque fois mon time() était supérieur à mon SESSION.

    Exemple: perso2 enchérit a 12h32m25s, donc mon session prend le timestamp de 12h32m25s. Donc normalement, temps que time() est pas supérieur à 12h32m28s, je ne dois pas rentrer dans mon if et donc le bot de perso1 ne doit pas prendre la main.. Sauf que ça le fait pas ^^

    Je vous mets le code incriminé ci-dessous.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //condition incriminée
    if((int)$time_actuel  > (int)$_SESSION['produit'.$_GET['id_produit'].'derniere_enchere']+3)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //enregistrement de ma SESSION
    $_SESSION['produit'.$_GET['id_produit'].'derniere_enchere'] = $time_actuel;//$time_actuel = time() lors du clic

    Merci par avance de votre aide.

    Benito

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    Une session est ouverte pour UN utilisateur, et les autres utilisateurs n'y ont pas accès.

    En gros le contenu $_SESSION de perso 2 est différent du contenu de $_SESSION de perso 1.

    Je pense que ton problème vient de là. Fait un print_r($_SESSION); juste avant ton test pour bien t'assurer de ce que contient $_SESSION. Mais à minima pour moi il faudrait passer par une base de données pour n'avoir qu'une seule valeur d'enchère valable à un instant t.

    De plus je trouve très risqué ton pari d'enchérir automatiquement à intervalle de 3 secondes et je n'en vois pas l'interêt. Que se passe t-il si quelqu'un renchérit manuellement alors qu'une enchère automatique est en cours ? Les risques d'erreurs me paraissent être conséquent. Pourquoi l'enchère ne se met pas automatiquement au plus au niveau d'enchère, que ce soit une automatique ou manuelle ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2014
    Messages : 20
    Points : 21
    Points
    21
    Par défaut
    D'accord je vois ce que tu veux dire !

    N'y a t'il pas possibilité de remplacer cette $_SESSIOn par une autre variable où on est à peu près sur que ce soit les mêmes pour les 2 ?

    Au niveau de l'enchère auto, j'ai repris le truc!
    Le site est existant depuis pas mal de temps donc bon c'est pas moi qui l'ai codé de base.
    Quand je l'ai pris et que j'ai vu que tout était organisé par des table, tu peux imaginer la réaction que j'ai eu ...

    EDIT: c'est bon jai réussi à trouver comment faire ! J'ai une variable en BDD qui conservait ça donc ^^
    Merci en tout cas pour ta réponse !

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

Discussions similaires

  1. [XL-2010] Condition non respecté dans listbox
    Par tompom3108 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/07/2012, 23h18
  2. Réponses: 11
    Dernier message: 07/12/2011, 07h11
  3. Condition de case non respectée
    Par Erakis dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 04/11/2009, 18h24
  4. [Tableaux] Conditions d'une boucle non respectée
    Par Lenezir dans le forum Langage
    Réponses: 2
    Dernier message: 05/03/2008, 09h17
  5. Condition macro non respectée
    Par pascal913 dans le forum Access
    Réponses: 12
    Dernier message: 04/07/2006, 12h49

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