Forum général.général PHP/Mysql: signe d'un nombre

Posté par  (site web personnel) .
Étiquettes : aucune
0
20
août
2007
Bonjour,

je suis en train de coder une application en php dont un morceau du code sert à incrémenter ou décrémenter un compteur.

On peut voir la chose de la manière suivante:
Entité1 possède le compeur1
Entité2 possède le compeur2

Si Entité1 donne 3 à Entité2, le compteur de 1 est décrémenté de 3 et celui de 2 incrémenté de 3.

Le truc que j'aimerai éviter c'est que 1 puisse augmenter artificiellement son compteur en faisant:
Entité1 donne -100 à Entité2 (ce qui aurait pour résultat d'augmenter son compteur de 100 et vider celui de Entité2)

Je fait donc une véirification en php pour savoir si la valeur donnée est supérieur à 0 ou pas (simple vérification de style if ($don<=0) exit; else continue;)

la question que je me pose consiste à savoir s'il est possible que Entité1 puisse gruger en donnant comme paramètre de $don une valeur que PHP reconnaitrai comme positive mais qui serait traitée par la requète mysql qui va faire l'update comme négative...

je doute que ce soit possible, mais dans le doute je préfère demander votre avis... Le récent journal avec le fameux 359 me met le doute quant à l'utilisation de nombres écrits dans une syntaxe alambiquée...
  • # traduction de ton code

    Posté par  . Évalué à 1.

    si je traduis ton code actuel en algorythme


    soit E1/C1 un couple entité/compteur
    soit E2/C2 un couple entité/compteur

    si E1 envoie X à E2
    alors
    si X <= 0
    alors exit
    sinon
    C1 = C1 - X
    C2 = C2 + X
    finsi
    finsi

    insertion SQL de C1 et C2


    tu fais les tests qui faut, quand il faut,

    je ne vois pas comment on peut gruger un test mathematique aussi elementaire.
    d'autant plus que tu test et convertit avec de faire ton insertion sql.
    • [^] # Re: traduction de ton code

      Posté par  (site web personnel) . Évalué à 1.

      Non justement, mon algo actuel est plutot du genre:

      soit E1/C1 un couple entité/compteur
      soit E2/C2 un couple entité/compteur

      si E1 envoie X à E2
      alors
      si X <= 0
      alors exit
      finsi

      update SQL de C1 = C1 - X et C2 = C2 + X


      La question que je me pose c'est de savoir s'il est possible de gruger en passant une valeur qui serait positive lors du test en PHP mais interprétée de manière négative par SQL.

      Avec les nombres signés on pourrait pas passer ce genre d'arnaque?
      • [^] # Re: traduction de ton code

        Posté par  . Évalué à 1.

        ben fait faire le calcul par PHP.

        comme ca meme en nombre signé, mais un nombre signé pour un etre humain normal c'est quoi (-3) et (+3) non ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.