Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 6. diel - Ners - Editor článkov v PHP

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Odpovedá na Jakub Kondělka
Jakub Kondělka:24.3.2020 19:32

Už jsem na to přisel :-) chyba vypisuje neznamy řádek. Chybně napsané v databázi.

Avatar
Václav Vomáčka:29.3.2020 14:33

Ahoj nevím, zda se to tu někde už neřešilo, ale jaký má význam na začátku toho PHP skriptu plnit to pole $clanky? Je to pouze abych měl jistotu, že to pole bude prázdné a nepředvyplní se mi do formuláře daná data? V případě, že budu řešit ošetření odesílaných dat (pole nebylo vyplněně, datum není ve správném formátu, anti-spam je špatně), tak je toto pole pro mě nežádoucí, neboť se mi po "nepovedeném" odeslání formuláře a znovunačtení této stránky celý formulář vymaže. Mám pravdu nebo na to nahlížím špatně?

Avatar
Odpovedá na Václav Vomáčka
Neaktivní uživatel:29.3.2020 16:45

Ahoj, jak na to v rychlosti koukám, určitě bys bez toho pole dostával při tvorbě nového článku nebo při zadání neplatného $_GET['url'] na web a do logu Notice Undefined Index $clanek['clan­ky_id'], titulek, url atd. Tahle část kódu totiž jinak nepočítá s tím, že by pole neexistovalo.

<input type="hidden" name="clanky_id" value="<?= htmlspecialchars($clanek['clanky_id']) ?>" />

I kdybys ho dal pryč, tak se ti při nepodařeném odeslání obsah vymaže. Když se na to podíváš, je to psané tak, že se data z POST requestu uloží do DB a pak jsi pomocí hlavičky location redirectován na volání s GET parametrem url. Tím se celý POST po uložení rovnou ztrácí. Když ti tedy uložení neprojde, vrátí se ti neexistující DB záznam.

U takové konstrukce kódu by bylo nejlepší při selhání validace přepsat výchozí prázdné hodnoty těmi z POST requestu, přidat chybovou zprávu a bez úspěšné kontroly nedělat uložení do DB ani přesměrování.

Odpovedať
Neaktivní uživatelský účet
Avatar
Odpovedá na Neaktivní uživatel
Václav Vomáčka:29.3.2020 21:28

Ahoj, už jsem to pochopil a celý ten script překopal podle tvých rad. Díky V.

Avatar
Pavel Buřič:29.9.2020 20:04

zdravím přátelé.
Vím, že j)se podobný dotaz zde objevil několikrát, ale nějak rádná odpověď na problém.
Vše jsem dělal dle postupu, ale při pokusu o přihlášení se nic nestane pouze mi vypíše"Neplatné uživ. jméno nebo heslo".Žádná chyba nic. Může někdo prosím poradit co je špatně. dík moc

<?php
session_start();
require('Db.php');
Db::connect('127.0.0.1', 'users_db', 'root', '');

if (isset($_SESSION['uzivatel_id']))
{
    header('Location: administrace.php');
    exit();
}

if ($_POST)
{
    $uzivatel = Db::queryOne('
        SELECT uzivatele_id, admin, heslo
        FROM uzivatele
        WHERE jmeno=?
    ', $_POST['jmeno']);
    if (!$uzivatel || !password_verify($_POST['heslo'], $uzivatel['heslo']))
        $zprava = 'Neplatné uživatelské jméno nebo heslo';
    else
    {
        $_SESSION['uzivatel_id'] = $uzivatel['uzivatele_id'];
        $_SESSION['uzivatel_jmeno'] = $_POST['jmeno'];
        $_SESSION['uzivatel_admin'] = $uzivatel['admin'];
        header('Location: administrace.php');
        exit();
    }
}
?>
Avatar
Odpovedá na Pavel Buřič
Pavel Buřič:29.9.2020 20:45

jediné co mne napadá jestli nemůže byt problém v php.ini. veditoru mam vykřicník s textem

Do not access superglobal $_POST array directly

Avatar
Jaroslav Strmiska:25.11.2020 16:56

Při spuštění stránky s editorem TinyMCE se nově objevil problém. Zobrazí se upozornění:

Your access to TinyMCE will expire on 30 November 2020. Please either contact your administrator or upgrade your account using the instructions available at https://www.tiny.cloud/…o-tinymce-5/.

Existuje nějaký způsob jak to vyřešit? Děkuji za pomoc.

Avatar
Milan Turyna
Tvůrce
Avatar
Odpovedá na Jaroslav Strmiska
Milan Turyna:26.11.2020 16:00

Je tam napsane, co mas delat.

Aktualizuj verzi TinyMCE - vytvor si ucet s vlastni licenci na officialnim webu TinyMCE a postupuj podle kroku, ktere po vytvoreni dostanes.

https://www.tiny.cloud/…quick-start/

Editované
Avatar
Odpovedá na Milan Turyna
Jaroslav Strmiska:26.11.2020 16:13

Díky za odpověď. To už jsem zkusil, ale mám dojem, že to je jenom trial verze na 30 dnů.

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 119.