NOVINKA: Pracuj až o 60 % rychleji díky akreditovanému kurzu Specialista na AI. Nyní již od 0 Kč. Zjisti více:

Diskuze – Lekce 7 - NERS - Výpis č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 michal.smatlak
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');
Odpovědět
26.1.2016 21:46
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

Odpovědět
11.3.2016 17:26
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.

 
Odpovědět
13.3.2016 15:25
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?

 
Odpovědět
13.3.2016 16:19
Avatar
santa580
Člen
Avatar
Odpovídá 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
 
Odpovědět
13.3.2016 16:22
Avatar
Odpovídá 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');
 
Odpovědět
13.3.2016 16:45
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.

 
Odpovědět
1.4.2016 22:39
Avatar
Peter Schoeller:2.4.2016 3:00

Problem vyrieseny jednoduchym prikazom :)

else header('Location: clanky.php');
 
Odpovědět
2.4.2016 3:00
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

Odpovědět
15.4.2016 10:28
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>
 
Odpovědět
16.7.2016 14:50
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 125.