Autor | Zpráva | ||
---|---|---|---|
noby Profil |
#1 · Zasláno: 23. 9. 2011, 16:00:55
Dobrý den.
Mám skript pro publikaci článku, myslel jsem že bude fungovat jenže nejde. Zda zveřejnit nebo ne zatrhávám pomoci input checkbox. Poradíte kde mám chybu? <?php include("../../connecting.php"); if(isset($_POST['clanek'])){ $id = $_POST['id']; $nazev = $_POST['nazev']; $popis = $_POST['popis']; $clanek = $_POST['clanek']; $hit = $_POST['hit']; $vlozen = $_POST['vlozen']; mysql_query("INSERT INTO clanky (id, nazev, popis, clanek, hit, vlozen) VALUES('$id','$nazev','$popis','$clanek','$hit',".time().")") or die (mysql_error()); }else{ echo 'Článek nebude zveřjněn na blogu.'; }elseif{ echo 'Článek bude zveřejněn na blogu.'; } header("location: ../admin.php?page=articl"); ?> <?php $komentar = $_POST['komentare']; $clanek = $_POST['clanek']; echo '<div class="oznam"> <input type="checkbox" name="komentare">Povolit komentáře | <input type="checkbox" name="clanek">Zveřejnit článek </div> <form method="post" action="inc/add.php"> <table> <tr><td>Titulek:</td><td><input type="text" name="nazev"></td></tr> <tr><td>Popis:</td><td><input type="text" name="popis" style="width: 600px;height: 100px;"></td></tr> <tr><td>Článek:</td><td><textarea type="text" name="clanek" style="width: 600px;height: 400px;"></textarea></td></tr> <tr><td></td><td><input class="submit" type="submit" value="Vložit článek"></td></tr> </table> </form>'; ?> |
||
WMPopi Profil |
#2 · Zasláno: 23. 9. 2011, 16:48:47
Máš tam trochu pomotaný else a elseif větve
if(isset($_POST['clanek'])) { mysql_query(.. echo 'Článek bude zveřjněn na blogu.'; } else { echo 'Článek nebude zveřjněn na blogu.'; } |
||
noby Profil |
#3 · Zasláno: 23. 9. 2011, 17:40:34
WMPopi:
Upravil jsem to tedy jak jsi napsal, ale nefunguje tedy funguje, ale článek se vloží na blog bez ohledu na zatržený checkbox. Jak udělat aby bral ohled zatržený checkbox? <?php include("../../connecting.php"); if(isset($_POST['clanek'])) { $id = $_POST['id']; $nazev = $_POST['nazev']; $popis = $_POST['popis']; $clanek = $_POST['clanek']; $hit = $_POST['hit']; $vlozen = $_POST['vlozen']; mysql_query("INSERT INTO clanky (id, nazev, popis, clanek, hit, vlozen) VALUES('$id','$nazev','$popis','$clanek','$hit',".time().")") or die (mysql_error()); echo 'Článek bude zveřjněn na blogu.'; }else { echo 'Článek nebude zveřjněn na blogu.'; } header("location: ../admin.php?page=articl"); ?> |
||
WMPopi Profil |
#4 · Zasláno: 23. 9. 2011, 17:43:30
noby:
jo jasně, checkboxům přidej value, třeba value="1" a pak kontroluj if($_POST['clanek']) { |
||
jenikkozak Profil |
#5 · Zasláno: 23. 9. 2011, 18:25:32
noby:
Chyb tam máš víc: - Políčka s checkboxy máš mimo <form>, proto se ti nemohou odeslat. - Nevím, proč vytváříš proměnné id, nazev, popis, clanek..., když je pak stejně jen použiješ v dotazu na databázi. Proč tam nepoužiješ přímo to pole? Ale budiž. - Proč vypisuješ něco na stránku, že článek bude/nebude zveřejněn, když stejně záhy chceš stránku přesměrovat, což by způsobilo, že by se ti ty hlášky ani nevypsaly? - Adresa uvedená v Location by měla být absolutní. - Před vkládáním dat do databáze je vůbec neověřuješ, což je bezpečnostní riziko. |
||
noby Profil |
#6 · Zasláno: 23. 9. 2011, 18:36:52
Jak pak takovou kontrolu provést?
|
||
WMPopi Profil |
#7 · Zasláno: 23. 9. 2011, 18:38:57
noby:
hledej sql injection |
||
Časová prodleva: 13 let
|
0