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
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

Odpovědět
16.6.2019 16:14
Nikdy není pozdě začít s něčím novým
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá 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 :)

Odpovědět
16.6.2019 17:13
TruckersMP vývojář
Avatar
Stivko
Člen
Avatar
Odpovídá 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

Editováno 16.6.2019 17:18
Odpovědět
16.6.2019 17:17
Nikdy není pozdě začít s něčím novým
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá 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 :)

Odpovědět
16.6.2019 17:26
TruckersMP vývojář
Avatar
Stivko
Člen
Avatar
Odpovídá 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();
}
Editováno 16.6.2019 17:36
Odpovědět
16.6.2019 17:35
Nikdy není pozdě začít s něčím novým
Avatar
Odpovídá 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.

Odpovědět
10.9.2019 20:53
"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']);
        }
 
Odpovědět
29.9.2019 20:58
Avatar
Honza Motal
Člen
Avatar
Odpovídá na Honza Motal
Honza Motal:30.9.2019 21:18

8-) Problem solved

 
Odpovědět
30.9.2019 21:18
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 .

 
Odpovědět
8.10.2019 7:28
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

 
Odpovědět
24.3.2020 18:55
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.