Autor | Zpráva | ||
---|---|---|---|
Kos112567 Profil |
Že je tam $_POST['obsah'] :) Ten printscreen jsem vytvořil, poté jsem si toho všiml tak jsem to opravil...stále to nešlo, tak jsem ho sem postnul
|
||
Lonanek Profil |
#2 · Zasláno: 29. 1. 2017, 21:26:34
tak sem dejte ten upravený kód co nyní nejde.
|
||
Keeehi Profil |
#3 · Zasláno: 29. 1. 2017, 21:27:16
Jak ti má někdo poradit, když ukazuješ kódy, které neplatí?
|
||
Kos112567 Profil |
#4 · Zasláno: 29. 1. 2017, 21:29:08
Tady je
|
||
Lonanek Profil |
No přepisovat to nebudu a není to kompletní.
|
||
Kos112567 Profil |
#6 · Zasláno: 29. 1. 2017, 21:46:09
Není to kompletní? Já tam než toto nemám, myslel jsem si, že o tomto jsme se bavili celou dobu (že nic jiného než tato část kódu není potřeba, aby mi to správně zapisovalo do databáze)
|
||
Lonanek Profil |
Pokud je toto celý kód, který to má zabezpečovat, tak tam minimálně chybí načtení Db.php, připojení k databázi a funkce zabezpec().
|
||
Kos112567 Profil |
#8 · Zasláno: 29. 1. 2017, 21:51:01
Ten kód vypadá stejně, jak jsem postoval předtím
<?php session_start(); require('Db.php'); $spojeni = Db::connect('127.0.0.1', 'sokolmilicincz1', 'root', ''); //pripojeni k db if (isset($_GET['clanek'])) //zobrazeni clanku $url = $_GET['clanek']; else $url = 'uvod'; $clanek = Db::queryOne(' SELECT * FROM clanky WHERE url=? ', $url); if (!$clanek) //pokud se nenalezne clanek, tak 404 { if ($url != 'chyba') { header('Location: index.php?clanek=chyba'); exit(); } else die('Nebyl nalezen chybovy clanek'); } if (isset($_GET['odhlasit'])) { session_destroy(); header('Location: index.php'); exit(); } function zabezpec($retezec) { global $spojeni; return Db::quote($spojeni, $retezec); } ?> <!DOCTYPE html> <html lang="cs-cz"> <head> <meta charset="utf-8" /> <meta name="description" content="<?= htmlspecialchars($clanek['popisek']) ?>" /> <meta name="keywords" content="<?= htmlspecialchars($clanek['klicova_slova']) ?>" /> <link rel="stylesheet" href="styl.css" type="text/css"/> <link rel=stylesheet href="style_blue.css" id=css> <link rel=stylesheet href="print.css" media="print"> <title><?= htmlspecialchars($clanek['titulek']) ?></title> <script src="js/rozklikavaci_menu.js"></script> <script src="js/switcher.js"></script> <script src="js/checkform.js"></script> </head> <body> <header> <div id="logo"><img src="obrazky/sokolMale.png" alt="logo"></div> <nav> <ul> <li class="aktivni"><a href="index.php">Domů</a></li> <li><a href="sport.php">Sport</a></li> <li><a href="kultura.php">Kultura</a></li> <li><a href="fotogalerie.php">Fotogalerie</a></li> <li><a href="dokumenty.php">Dokumenty</a></li> <li><a href="historie.php">Historie</a></li> <?php if (!isset($_SESSION['id'])) { echo '<a href="prihlaseni.php" class="login">Přihlášení</a>'; } else { echo '<a href="index.php?odhlasit" class="login">Odhlásit</a>'; echo '<a href="#" class="login">'.htmlspecialchars($_SESSION['uzivatel_jmeno']).'</a>'; } ?> </ul> </nav> </header> <div id="centrovac"> <article> <header> <h1><?= htmlspecialchars($clanek['titulek']) ?></h1> </header> <section> <?= $clanek['obsah'] ?> </section> <div class="cistic"></div> </article> </div> <?php if (!isset($_SESSION['id'])) { echo 'Pro komentování článků se prosím <a href="prihlaseni.php">přihlašte</a>'; } else if (isset($_POST['autor']) AND isset($_POST['obsah'])) { $data_insert['autor'] = zabezpec($_POST['autor']); $data_insert['datumvlozeni'] = DATE("Y-m-d"); $data_insert['obsah'] = zabezpec($_POST["obsah"]); Db::insert("nkniha", $data_insert); } ?> <div id="komentare"> <form action="" method="post" name="formular"> Vaše jméno:<br> <input type="text" name="autor" maxlength="30" size="30" required pattern="[0-9A-Za-z]{3,}" title="Minimální délka jména musí být tři znaky." accesskey="j"><br> Váš vzkaz:<br> <textarea name="obsah" rows="7" cols="50" wrap="soft" required pattern="[0-9A-Za-z]{2,}" title="Vzkaz musí být delší více jak tři znaky"></textarea><br> <input type="submit" value="Ulož do knihy"> </form> </div> <footer> <a href="prihlaseni.php">Administrace</a> </footer> </body> </html> |
||
Keeehi Profil |
#9 · Zasláno: 29. 1. 2017, 21:54:05
Chybí deklarace Db třídy (vím, že jsi to dával dříve), taky funkce zabezpec (tu jsi měl špatně).
Nauč se prosím tě hledat chyby. V tomto případě bys měl pole $data_insert nejdčíve naplnit statickými hodnotami ( $data_insert["autor"] = "testovací autor"; ). Když to projde, víš že v databázové vrstvě problém není. Pak můžeš otestovat ten POST $data_insert["autor"] = $_POST["autor"]; , když toto taky projde, tak víš, že problém bude v zabezpec. Pokud někde něco neprojde, tak víš, že je chyba tam.
|
||
Lonanek Profil |
Kos112567:
function zabezpec($retezec) { global $spojeni; return Db::quote($spojeni, $retezec); } function zabezpec($retezec) { return Db::quote($retezec); } else if (isset($_POST['autor']) AND isset($_POST['obsah'])) { $data_insert['autor'] = zabezpec($_POST['autor']); $data_insert['datumvlozeni'] = DATE("Y-m-d"); $data_insert['obsah'] = zabezpec($_POST["obsah"]); Db::insert("nkniha", $data_insert); } else { if (isset($_POST['autor']) AND isset($_POST['obsah'])) { $data_insert['autor'] = zabezpec($_POST['autor']); $data_insert['datumvlozeni'] = DATE("Y-m-d"); $data_insert['obsah'] = zabezpec($_POST["obsah"]); Db::insert("nkniha", $data_insert); } } else { if (isset($_POST['autor']) AND isset($_POST['obsah'])) { $data_insert['autor'] = zabezpec($_POST['autor']); $data_insert['datumvlozeni'] = DATE("Y-m-d"); $data_insert['obsah'] = zabezpec($_POST["obsah"]); Db::insert("nkniha", $data_insert); } } nebo nepoužívat novou funkci - zabezpec() - a přímo napsat: else { if (isset($_POST['autor']) AND isset($_POST['obsah'])) { $data_insert['autor'] = Db::quote($_POST['autor']); $data_insert['datumvlozeni'] = DATE("Y-m-d"); $data_insert['obsah'] = Db::quote($_POST["obsah"]); Db::insert("nkniha", $data_insert); } } Do proměnných $data_insert['autor'] a $data_insert['obsah'] se vždy plnily prázdnou (neexistují proměnnou $spojeni) hodnotou. |
||
Kos112567 Profil |
#11 · Zasláno: 29. 1. 2017, 22:08:42
Ok, už to funguje. Samozřejmě tam byla chyba v té funkci zabezpec().
Mockrát děkuji oběma za trpělivost a ano, máš pravdu že se musím naučit hledat chyby :) |
||
Časová prodleva: 7 let
|
0