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
Stivko
Člen
Avatar
Stivko:16.6.2019 16:14

Zdravím,

Mám problém. Udělal jsem vše dle návodu, ale když se chci přihlásit a zadám jakékoliv jméno a heslo napíše mi prohlížeč tohle: Fatal error: Uncaught Error: Call to undefined method Db::querryOne() in "umístění souboru, řádek 12"

<?php
session_start();
require('Db.php');
Db::connect('localhost', 'loginsystem', 'root', '');

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

if ($_POST) {
    $uzivatel = Db::querryOne('
    SELECT user_id, user_password
    WHERE user_uid=?', $_POST['username']);

    if (!$uzivatel || !password_verify($_POST['password'], $uzivatel['user_password'])) {
        $zprava = "Nesprávné uživatelské jméno nebo heslo";
    }
    else {
        $_SESSION['uzivatel_id'] = $uzivatel['user_id'];
        $_SESSION['uzivatel_jmeno'] = $uzivatel['user_uid'];
        header ('Location: administrace.php');
    }


}

Nevíte, kde je chyba? Budu rád za každou radu. Děkuji

Odpovedať
Nikdy není pozdě začít s něčím novým
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovedá na Stivko
Jan Lupčík:16.6.2019 17:13

Ahoj, jak již z chyby vyplývá (Uncaught Error: Call to undefined method), voláš neexistující metodu. Totiž querryOne s dvěma R neexistuje :`
Asi jsi měl na mysli metodu queryOne :)

Odpovedať
TruckersMP vývojář
Avatar
Stivko
Člen
Avatar
Odpovedá na Jan Lupčík
Stivko:16.6.2019 17:17

Ahoj,

Že mě to nenapadlo hned. Nicméně pokud jdu dále, vyskočí na mě error, který souvisí s Db.php a jelikož to jsem stáhl v rámci studijních materiálu, protože k objektovému programování jsem se ještě nedostal, tady asi můj zásah končí. Error mi zobrazí tohle.

"Warning: PDO::prepare(): SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE user_uid=?' at line 2 in C:\xampp\htdoc­s\steven\admin\Db­.php on line 60

Fatal error: Uncaught Error: Call to a member function execute() on bool in C:\xampp\htdoc­s**********\Db­.php:61 Stack trace: #0 C:\xampp\htdoc­s************\Db­.php(92): Db::executeSta­tement(Array) #1 C:\xampp\htdoc­s**********\lo­gin.inc.php(13): Db::queryOne('SE­LECT user_id ...', 'admin') #2 {main} thrown in C:\xampp\htdoc­s************\Db­.php on line 61"

Je možné, že se za tu dobu, co autor vytvořil pro tuto vyuku soubor Db.php něco změnilo? Děkuji za případne rady

Editované
Odpovedať
Nikdy není pozdě začít s něčím novým
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovedá na Stivko
Jan Lupčík:16.6.2019 17:26

V tom dotazu ti chybí FROM uzivatele. Nevšiml jsem si toho hned napoprvé, moje omluva :`
Správně by to teda mělo být:

$uzivatel = Db::queryOne('
    SELECT user_id, user_password
    FROM uzivatele
    WHERE user_uid=?
', $_POST['username']);

Za předpokladu, že sloupeček user_uid existuje a nemá to být user_id :)

Odpovedať
TruckersMP vývojář
Avatar
Stivko
Člen
Avatar
Odpovedá na Jan Lupčík
Stivko:16.6.2019 17:35

Ano, máš pravdu. Teď je akorát divné to, že pokud se nyní zkusím přihlásit, tak se mi za každých okolností (správné, špatné heslo, či nevyplnění) zobrazí prázdná stránka, ikdyž jsem nastavil, že při správném hesle se mám přesměrovat na administrace.php viz kod. Nevíš čím, to může být?

<?php
session_start();
require('Db.php');
Db::connect('localhost', 'loginsystem', 'root', '');

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

if ($_POST) {
    $uzivatel = Db::queryOne('SELECT user_id, user_password
    FROM users WHERE user_uid=?', $_POST['username']);

    if (!$uzivatel || !password_verify($_POST['password'], $uzivatel['user_password'])) {
        $zprava = "Nesprávné uživatelské jméno nebo heslo";
    }
    else {
        $_SESSION['uzivatel_id'] = $uzivatel['user_id'];
        $_SESSION['uzivatel_jmeno'] = $uzivatel['user_uid'];
        header ('Location: administrace.php');
        exit();
    }


}

tady je výstřižek na to "přesměrování"

else {
    $_SESSION['uzivatel_id'] = $uzivatel['user_id'];
    $_SESSION['uzivatel_jmeno'] = $uzivatel['user_uid'];
    header ('Location: administrace.php');
    exit();
}
Editované
Odpovedať
Nikdy není pozdě začít s něčím novým
Avatar
Odpovedá na Michal Lustig
Jiří Pecher:10.9.2019 20:53

Ahoj, co vím, tak možnost vkládání obrázků z vlastního zdroje (tedy obrázek máš u sebe v PC a chceš ho vložit na web) je u TinyMCE možná jen s pomocí placeného pluginu.

Odpovedať
"Když nemám co dělat, pracuji."
Avatar
Honza Motal
Člen
Avatar
Honza Motal:29.9.2019 20:58

Ahoj, mám v databázi tabulku "uzivatele" a sloupec "adresa". Pomocí formuláře chci adresu změnit pro aktuálně přihlášeného uživatele, ale ať to kontroluji jak chci, pořád to nefunguje. Nenapadá někoho čím to může být?

if(isset($_POST['adresa']))
        {
            Db::query('
                UPDATE uzivatele
                SET adresa = ?
                WHERE uzivatel_id = ?',
                $_POST['adresa'], $_SESSION['uzivatel_id']);
        }
Avatar
Honza Motal
Člen
Avatar
Odpovedá na Honza Motal
Honza Motal:30.9.2019 21:18

8-) Problem solved

Avatar
phpnoob
Člen
Avatar
phpnoob:8.10.2019 7:28

parádička , zapísalo článok do DB , ďakujem ... viem že skoro nič neviem , ale snažím sa to pochopiť a tieto články mi v tom pomáhajú . viac menej idem copy paste ale čítam váš komentár + snažím sa pochopiť kod . dúfam že do týždňa to budem schopný naprogrmaovať sám .

ešte si to pár krát budem opakovať aby sa mi informácie dobre načítali do mozgu :) . a ide sa na dalšiu lekciu .

Avatar
Jakub Kondělka:24.3.2020 18:55

Ahoj,
potřeboval bych poradit. Když chci článek uložit do databáze, tak mi to vyhodí tu to chybu.

Warning: PDO::prepare(): SQLSTATE[42S22]: Column not found: 1054 Unknown column 'titulek' in 'field list' in C:\xampp\htdoc­s\Layoty\Db.php on line 61

Fatal error: Uncaught Error: Call to a member function execute() on bool in C:\xampp\htdoc­s\Layoty\Db.php:62 Stack trace: #0 C:\xampp\htdoc­s\Layoty\Db.php(72): Db::executeSta­tement(Array) #1 C:\xampp\htdoc­s\Layoty\editor­.php(45): Db::query('\r\n\t\t­\tINSERT INT...', 'HoBiho web', '<p>sdfsdfsfs­ddf...', 'uvod', '\xC3\x9Avodn\xC3\xAD \xC4\x8Dl\xC3­\xA1n...', '\xC4\x8Dl\xC­3\xA1nek,web,\xC3\xBA­...') #2
{main} thrown in C:\xampp\htdoc­s\Layoty\Db.php on line 62

Netuším co mi tam chybí a nebo kde je chyba.
Díky za rady. Jakub

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.