Autor Zpráva
TooFew
Profil
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"]; ?>">

<p class="admin">
<input type="radio" name="action" value="none" />Nothing<br />
<input type="radio" name="action" value="code" />
<textarea name="code" rows="15" cols="50"></textarea><br />
<input type="submit" value="DO" />
</p>
</form>


a script, který ho obhospodařuje vypadá takto:


if($_POST["action"] == "code" && !empty($_POST['code'])) {

mysql_query($_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
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
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
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
Jééé. Moje blbost. Až teď vidím tu čárku před values. Tak je to celé vyřešené. Díky.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0