Fejl, ved en sql update

Tags:    php

Fold kodeboks ind/udKode 


Kan simpelhen ikke se en fejl, det der sker er at;

Den gider ikke trække point , som den skal gøre her:

$nye = $vis['point']-$pointt;
mysql_query("UPDATE vip_brugere SET point = '$nye' WHERE email = '$_SESSION[brugernavn]'") or die(mysql_error());

Derudover så indsætter den ikke produkt navnet i min admin side;

mysql_query("INSERT INTO vip_bestilte (produktid, email, brugernavn, produktnavn)values ('intet', '$_SESSION[brugernavn]', 'ingen', 'Supergavekort $prod')") or die(mysql_error());

Nogen der har en løsning?



6 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Hey Morten,
har du prøvet at udskrive din query som en string og se om dine variable udskrives korrekt?

Gør evt. brug af .$var. ved udskrivelsen af variable, for at sikre sig at det er disse der benyttes og ikke en tekst streng.

ex: "SET point='".$nye."' ..."

Sikkerhed?
Nu ved jeg ikke lige hvad det er for et system du er igang med at udvikle, men umidelbart satser du på at brugeren sender de korrekte antal point der skal fratrækkes ved køb af varer.

Du må ALDRIG stole på brugerdata til sådan noget. Umidelbart vil jeg kunne købe alle de varer jeg lyster til, gratis via dit site, blot ved at manipulere med dataene sendt via browseren.



Mine inputs i den forrige kode får den ved GET ved at man vælger et produkt. input felterne er disabled


Det ville let kunne gøres ved at manipulerer med POST dataen, check fx firefox->Tamper Data



Mine inputs i den forrige kode får den ved GET ved at man vælger et produkt. input felterne er disabled



Ja det er rigtigt...



Er der noget der har en ide til hvordan jeg så kan gøre det, på nogen lunde samme måde?



Hey Morten,
ja. Umidelbart sender brugeren jo også hvilket produkt der er købt.

Da jeg næsten går ud fra at alle dine produkter er gemt i selv samme sql db, med id, navn, pris mm. Kan du bruge dette til at udtrække hvormange point det koster fra din database.

ex:

Brugeren sender produktets 'id', som $_POST['id'].
Fold kodeboks ind/udKode 


Herefter kan du så bruge samme kode som du i forvejen har, til at opdatere hvor mange point der er brugt.

(Husk: byg sikkerhed i det,imod SQL injections!)





t