| 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: 9 let
|
|||
0