Autor | Zpráva | ||
---|---|---|---|
Josef Přerovský Profil |
#1 · Zasláno: 11. 11. 2018, 11:48:57
Zdravím, mám Ticket System, a když chci vytvořit nový topic, tak to nejde. Nevykoná to žádnou akci.
Kod: <?php if(isset($_SESSION['user'])) { ?> <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title">Ticket System • Vytvoření topicu <a class="btn btn-info pull-right" data-toggle="modal" data-target="#info"><i class="fa fa-info"></i></a></h3> </div> <div class="panel-body"> <div class="col-sm-12 col-md-3"> Tu nejaky text </div> <hr class="visible-xs visible-sm" /> <div class="col-sm-12 col-md-9"> <?php $nick = $user['nick']; $datum = date("d.m.Y v H:i"); if(isset($_POST['addticket'])) { mysql_query("INSERT INTO tickets SET stav='0', datum='$datum', nick='$nick', nazev='".$_POST['nazev']."', text='".$_POST['text']."'"); echo"<meta http-equiv='refresh' content='0;url=/podpora/index.php'>";} ?> <h4></h4> <input type="text" name="nazev" placeholder='Zadejte titulek' class="form-control" required> <br> <textarea style="margin: 0px; width: 510px; height: 188px;" name="text" placeholder="Prosím, poskytněte nám co nejvíce informací o problému pro rychlé vyřešení!" required></textarea> <br> <button class="btn btn-primary pull-right" name="addticket">Přidat ticket</button> </div> <?php };?> Poradí někdo? :) |
||
Keeehi Profil |
#2 · Zasláno: 11. 11. 2018, 11:54:38
Josef Přerovský:
Tak důležité je zjistit, co za data dostaneš a zda v komunikaci s databází nastala nějaká chyba. <?php var_dump($_GET); var_dump($_POST); $nick = $user['nick']; $datum = date("d.m.Y v H:i"); if(isset($_POST['addticket'])) { mysql_query("INSERT INTO tickets SET stav='0', datum='$datum', nick='$nick', nazev='".$_POST['nazev']."', text='".$_POST['text']."'"); var_dump(mysql_error()); // echo"<meta http-equiv='refresh' content='0;url=/podpora/index.php'>"; } ?> |
||
Josef Přerovský Profil |
array(0) { } array(0) { }
|
||
DarkMeni Profil |
Tak to asi není dobře, když po odeslání formuláře ani v GET, ani v POST, nejsou žádná data, ne? :D
Takže problém bude někde ještě před tímto kusem kódu. Je to celé ve <form>? Nepřepisuješ někde proměnné GET a POST? Případně zkus místo <button> použít <input type="submit" name="addticket" class="btn btn-primary pull-right" value="Přidat ticket">
A btw, tag <meta> kterým chceš po zpracování přesměrovat, už v <body> nejspíš nebude mít žádný efekt, a pokud ano, tak to nemusí fungovat ve všech prohlížečích. Je lepší zpracovat formulář ještě před jakýmkoliv výstupem a přesměrovat přes php funkci header("Location: jinam.php"); , nebo když by to bylo moc komplikované - dát to zpracování ještě před jakýkoliv výstup / echo (jinak to hodí warning "headers already sent") tak spoň v <head> a tam dát ten tag <meta> na přesměrování.
A ještě jedna důležitá vec: Ošetřuj vstupy, které předáváš SQL dotazu. // např. $nazev = mysql_real_escape_string($_POST['nazev']); $text = mysql_real_escape_string($_POST['text']); |
||
Josef Přerovský Profil |
#5 · Zasláno: 11. 11. 2018, 15:10:59
Takže, taková prkotina to byla... nebyla to ve form.. Díky moc :)
|
||
Keeehi Profil |
#6 · Zasláno: 11. 11. 2018, 15:23:54
DarkMeni:
„A btw, tag <meta> kterým chceš po zpracování přesměrovat, už v <body> nejspíš nebude mít žádný efekt, a pokud ano, tak to nemusí fungovat ve všech prohlížečích.“ Ale bude. Dle standardů by měl meta tag být v hlavičce ale prohlížeče s ním běžně nemají problém i v rámci dokumentu. Živá ukázka „(rozdíl je v přídání měkkého i na konec)“ To není úplně přesné. Rozdílů je tam více. Ale je si to velmi podobné |
||
Časová prodleva: 5 let
|
0