Hello tout le monde, Smiley biggrin

Dabord je tient à m'excuser car je ne pas sur d'avoir posté
mon topique dans la bonne section du forum.

Alors voilà,

J'ai une faille dans une de mes conceptions qui
m’envoie vers vous pour vous demander de l'aide.

J'ai pris la peine de vous faire un explicatif par photoshop
de ce qui me pose problème.

Voici le lien: http://img15.hostingpics.net/pics/508983123.png

Merci d'avance kiss. Smiley langue
Hello,

question toute bête : pourquoi mettre le prix total dans un input text ?

Pourquoi ne pas le mettre dans une div quelconque et ne pas passer la valeur dans un input hidden ?

J'aurais tendance à faire cela, je trouve ça plus correct : le prix total est une indication, or un input sert à saisir une donnée. Je trouve l'emploi du input erroné.

Qu'en penses-tu ?

Ju
Salut,
La faille, c'est surtout de se fier à une donnée qui a transité chez le client, même si elle est cachée. Cette donnée doit être calculée et exploitée coté serveur uniquement. Coté client, tu l'affiches mais c'est tout.

Donc ton formulaire final ne contient pas ce champ input (quel que soit son type), mais il peut (doit ?) afficher le prix total à titre informatif, comme tu le fais pour le récap de chaque article. Quand ce formulaire est validé il n'envoie que les informations sur l'identité du client. Le script de traitement retrouve le prix total grâce aux données que tu as dû stocker en session, et exit la faille.
Je dirais plutôt que le script de traitement retrouve le prix total en utilisant les données envoyées par le formulaire (id de l'article et quantité uniquement).

Si quelqu'un s'amuse à chipoter, il achètera juste un autre article... ^^
Lothindil a écrit :


Si quelqu'un s'amuse à chipoter, il achètera juste un autre article... ^^


C'est vrai d'un car le mail sera de toutes façon vérifier.

Mais comme l'a dit Seven tears je devrais plutôt le faire coté serveur.
Euh, ma vérification se fait intégralement coté serveur pour le prix...

Tu as juste un formulaire qui envoie la quantité commandée et l'id de l'article commandée (x autant de produits différents commandés).

Coté client, tu affiches :
dentifrice A (réf : 3891) x 3 => 12 CHF
dentifrice C (réf : 1258) x 1 => 5,75 CHF

total : 17,75 CHF


Coté serveur pour la vérification :
Tu as un tableau qui ressemble à ça (issus des données envoyées par le formulaire):
$achat=array ( 
   1=>array(
      'id'=>3891,
      'qte'=>3),
    2=>array(
      'id'=>1258,
      'qte'=>1)
);


Tu parcours le tableau, tu récupères les prix à l'unité de chaque produit (dans une table typiquement) grâce à l'id du produit. Tu multiplies par la quantité. Tu ajoutes à un total.

Comme les seules informations que l'utilisateur peut transformer c'est l'id et la quantité :
-> soit il est sage
-> soit il va modifier les chiffres (et donc va acheter un autre produit et/ou une autre quantité)
-> soit il va tenter de transmettre des saloperies à la place des données (et comme un id autant qu'une quantité est un nombre entier, il te suffit de vérifier que les id et les quantités reçues sont bien des entiers).

et 0 failles au menu Smiley lol