Autor | Zpráva | ||
---|---|---|---|
TooFew Profil |
#1 · Zasláno: 17. 7. 2006, 22:40:37
Ve svém monitorovacím systému pro web jsem si vytvořil administrační formůlář:
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>"> a script, který ho obhospodařuje vypadá takto: if($_POST["action"] == "code" && !empty($_POST['code'])) { Když tam zadám příkaz jako třeba DROP TABLE tabulka, všechno funguje, ale problém nastává, když chci vložit více příkazů najednou ( DROP TABLE tabulka + CREATE TABLE tabulka(....) + INSERT INTO tabulka (...), VALUES (0) ), protože obsah <textarea> se dosazuje do zapsaného mysql_query. To můsím dělat jednotlivě. Jak by se to dalo zařídit, aby se příkazy mohly zadávat hromadně? |
||
tiso Profil |
#2 · Zasláno: 17. 7. 2006, 23:04:18
SQL príkazy sa majú oddeľovať bodkočiarkou, takže ich stačí z toho $_POST vložiť do poľa cez explode a potom spraviť cyklus s mysql_query cez všetky prvky poľa...
|
||
Hugo Profil |
#3 · Zasláno: 17. 7. 2006, 23:05:14
Musíš zkontrolovat obsah té proměnné a rozdělit to v místech, kde jsou středníky. Ale je potřeba ošetřit případy, kdy je např. středník součástí řetězce, který se má vložit do db apod.
|
||
TooFew Profil |
#4 · Zasláno: 17. 7. 2006, 23:12:27 · Upravil/a: TooFew
Jojo. Jde to. Ale vyskytlo se mi tu ještě něco. Mam tabulku "tabulka" s buňkou cislo int. Když chci vložit následujícím způsobem, nic se neprovede. Je ten kód správný?
INSERT INTO tabulka (cislo), VALUES (0) Pořád platí mysql_query($_POST['code']); |
||
TooFew Profil |
#5 · Zasláno: 17. 7. 2006, 23:13:34
Jééé. Moje blbost. Až teď vidím tu čárku před values. Tak je to celé vyřešené. Díky.
|
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0