NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 6 - NERS - Editor článků v PHP

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Odpovídá 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.

 
Odpovědět
24.3.2020 19:32
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ě?

 
Odpovědět
29.3.2020 14:33
Avatar
Odpovídá 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í.

Odpovědět
29.3.2020 16:45
Neaktivní uživatelský účet
Avatar
Odpovídá 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.

 
Odpovědět
29.3.2020 21:28
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();
    }
}
?>
 
Odpovědět
29.9.2020 20:04
Avatar
Odpovídá 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

 
Odpovědět
29.9.2020 20:45
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.

 
Odpovědět
25.11.2020 16:56
Avatar
Milan Turyna
Tvůrce
Avatar
Odpovídá 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/

Editováno 26.11.2020 16:00
Odpovědět
26.11.2020 16:00
Řeš pouze to, co dokážeš ovlivnit.
Avatar
Odpovídá 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ů.

 
Odpovědět
26.11.2020 16:13
Avatar
Milan Turyna
Tvůrce
Avatar
Odpovědět
26.11.2020 17:02
Řeš pouze to, co dokážeš ovlivnit.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 119.