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 – 7. diel - Ners - Výpis č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 Michal Šmatlák
Michal Šmahel:26.1.2016 21:46

Ahoj, když poupravíš podmínku, bude vše fungovat, jak má. Tady jde o to, že ty sice přesměruješ na uvod.php, ale vzápětí posíláš dotaz do databáze, který ti nic nevrátí (prázdné URL tam nemáš), tudíž přesměruje na chyba.php.

// Pokud je v URL zadany clanek
if (isset($_GET['clanok'])) {
    // Ziskani URL clanku
    $url = $_GET['clanok'];

    // Vyber dat z databaze
    $clanok = Db::queryOne('
            SELECT *
            FROM clanky
            WHERE url=?
    ', $url);

    // Pokud takovy clanek neexistuje
    if (!$clanok) {
        header('Location: chyba.php');
        exit();
    }
}
// V URL neni dany clanek = hlavni stranka
else
    header('Location: uvod.php');
Odpovedať
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Neaktivní uživatel:11.3.2016 17:26

Ahoj, měl bych otázku. jak mám udělat aby se seznam článků zobrazoval na indexu? Když jsem seznam přesunul na index, tak mi příspěvky zas nešly otevírat a taky zobrazovaly místo písmen s háčkama otazníky. Btw. pardon za takovou otázku :D

Odpovedať
Neaktivní uživatelský účet
Avatar
Peter Schoeller:13.3.2016 15:25

Ahoj, skvele clanky, vela sa z tohoto ucim. :)
Ale mam otazku: Je mozne ze cast kodu by bol ulozeny na samostatne stranke?
Mam na mysli prihlasovanie do MyAdmin-u a pripadne miesto, kde je ulozeny Db.php

require('../ob­jects/Db.php');
Db::connect('127­.0.0.1', 'ners_db', 'root', '');

lebo v tomto tutoriali je len 6 stranok a z toho 5 to vyuziva. Takze pri zmene hesla by som musel prejst a upravit vsetky stranky.
Ak sa to da, poradite ako?
Dakujem.

Avatar
santa580
Člen
Avatar
santa580:13.3.2016 16:19

Nevím jestli jsem dobře pochopil otázku, jde o to aby byly přihlašovací údaje uloženy v jednom souboru, že? Pokud to tak je tak ano,
stačí v souboru Db.php upravit tuto část kodu:

public static function connect($host, $database, $user, $password)
        {
                if (!isset(self::$connection)) {
                        $dsn = "mysql:host=$host;dbname=$database";
                        self::$connection = new PDO($dsn, $user, $password, self::$options);
                }
        }

na

public static function connect()
        {
             $host = "host"; // do "host" doplnit udaj
             $database = "database"; // do "database" doplnit udaj
             $user = "user"; // do "user" doplnit udaj
             $password = "password" // do "password" doplnit udaj

                if (!isset(self::$connection)) {
                        $dsn = "mysql:host=$host;dbname=$database";
                        self::$connection = new PDO($dsn, $user, $password, self::$options);
                }
        }

K databázi se pak tedy bude připojovat takto:

Db::connect();

Jinak doufám, že kod jasný je, že?

Avatar
santa580
Člen
Avatar
Odpovedá na Peter Schoeller
santa580:13.3.2016 16:22

Omlouvám se, v

$password = "password" // do "password" doplnit udaj

mi chybí středník.

$password = "password"; // do "password" doplnit udaj
Avatar
Odpovedá na santa580
Peter Schoeller:13.3.2016 16:45

Ano, vdaka.... Otazka ale je, ze ak k Db.php pristupujem z viacerych projektov, tak sa meni aj nazov databazy (som v PHP uplny zaciatocnik, tak si aj databazy kvoli prehladu rozdelujem. - tato sa napr. vola "ners_db")
Zda sa ze som problem vyriesil vytvorenim stranky "adm_ners_db.php" kde su prihlasovacie udaje a na tuto stranku odkazuje vsetkych 5 stranok z projektu

require('../objects/adm_ners_db.php');
Avatar
Peter Schoeller:1.4.2016 22:39

Zdravim vsetkych a mam otazku....
Riesim cast z tohoto tutorialu, ale upraveneho len na pouzitie "prihlasenie", "administracia" a "registracia"..... (klasicky login, ale len tento mi vyhovuje jednoduchostou a pritom kvalitou ochrany pred SQL injekciami)
editor.php nepouzijem vobec, a clanky.php som upravil len na prezeranie. Ziadna editacia ani mazanie.
Otazka znie, ako a kde nastavit, ze len ak udelim cloveku "admin" prava, tak az vtedy uvidi stranku "clanky.php"
Kym bude len zaregistrovany, tak bude vidiet hlasku "Nemáte administrátorská oprávnění, požádejte administrátora webu, aby vám je přidělil."
Nic viac. (html kod si osetrit viem), lebo teraz kym nema admin prava, tak si tie clanky pozerat moze a tomu chcem zabranit. Proste, len mnou schvaleni ludia budu mat pristup na obsah stranok.
Dakujem za rady.

Avatar
Peter Schoeller:2.4.2016 3:00

Problem vyrieseny jednoduchym prikazom :)

else header('Location: clanky.php');
Avatar
Martin Kapička:15.4.2016 10:28

Zdravim mam dotaz, potřeboval bych aby se mi na stránce články zobrazovali pod sebou vždy nejnovější na začátek. ale když mám v body

<?= $clanek['obsah'] ?>

tak se my vypíše pouze jeden a ostatní ne, ty mám pouze uložené v databázi
dik za rady

Odpovedať
Just because you can does not mean you should.
Avatar
kivdul
Člen
Avatar
kivdul:16.7.2016 14:50

ahoj lidi,

v jednom videu jsme narazil na tento vypis foreach, co si o nem myslite? Jak je možné, že se kod opakuje (vypise) i kdyz neni v { } a je hozeny do html misto php?

<table>
    <tr>
        <th>First Name</th><th>Second Name</th>
    </tr>
    <?php
        $query = $connection->prepare('SELECT * FROM db_knihovna.authors ORDER BY id_author ASC');
        $query->execute();
        $result = $query->fetchAll();
        foreach ($result as $row){
    ?>
        <tr>
            <td><?= $row['first_name'] ?></td><td><?= $row['second_name'] ?></td>
        </tr>
    <?php
        }
    ?>
</table>
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 125.