Autor Zpráva
Křeček
Profil
Mohl by mi prosím někdo napsat kod, když uživatel A zadá do formuláře částku,
třeba 200. Potřebuju zkontrolovat, jestli ve sloupci i_nu má tolik kreditů, a
pokud ano, odepsat mu těch 200 kreditů a přičíst je na účet, který ten uživatel
zadal. Takové posílání kreditů. Napíšete mi to někdo prosím?
temistokles
Profil
bolo by dobre, keby si napisal, ci to mas ulozene v databazi, aku ma strukturu a podobne. takto z brucha je tych sposobov hodne, a vacsina sa ti hodit nebude.
bukaj
Profil
$_REQUEST["castka"]; //formulářové pole s částkou

$_REQUEST["ucet"]; //formulářové pole s číslem účtu
$uzivatel; //proměnná, kde je uložené jméno uživetele
//připojení k databázi, předpokládám MySQL
$staci = mysql_query("SELECT `i_nu`>".$_REQUEST["castka"]." as `staci` FROM `uzivatele` WHERE `jmeno`='".$uzivatel."' LIMIT 1"); //`uzivatele` je tabulka s uzivateli; `jmeno` je sloupec, kde jsou uložena jména uživatelů
$pokracovat = mysql_fetch_assoc($staci);
if($pokracovat["staci"]){
$prevedeni = mysql_query("UPDATE `uzivatele` SET `i_nu`=`i_nu`+".$_REQUEST["castka"]." WHERE `ucet`=".$_REQUEST["ucet"]." LIMIT 1"); //`ucet` je sloupec s číslem účtu
$odecteni = mysql_query("UPDATE `uzivatel` SET `i_nu`=`i_nu`-".$_REQUEST["castka"]." WHERE `jmeno`='".$uzivatel."' LIMIT 1");
if($provedeni != FALSE){
if($odecteni != FALSE){
echo "Transakce provedena.";
}else{
echo "Nepodařilo se odečíst peníze z účtu.";
//tady by mělo být query, které odečte kredity z účtu, kde přičetlo
}
}else{
echo "Převod se nepovedl.";
}
}else{
echo "Nedostatek kreditů.";
}

popř. to bude ještě chtít poupravit názvy sloupců, které jsou vypsány za queries
zero0x
Profil
tak to bude vesele sql injectovanie :P
bukaj
Profil
zero0x
ošetření proměnných beru jako samozřejmost. proto jsem to tam ani nepsal ;)
Aleš Janda
Profil
bukaj:
Pokud tazatel nezvládne takovou triviální věc jako přičíst číslo, pochybuju, že bude vědět něco o SQL Injection, natož aby to ošetřoval. Ono samozřejmost je to jak pro koho.

Prostě řetězce je třeba AddSlashes()nout a k číslům přičíst 0, aby bylo jasné, že je tam fakt číslo.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0