Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
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í.
Avatar
Unda
Člen
Avatar
Unda:15.11.2018 18:18

Zdravím nemohl by mi někdo najít chybu v kódu, nejde mi příjít na jinou stránku. :)

<body>
<nav>
    <a href="<?= BASE_URL ?>">Home</a>
    <a href="<?= BASE_URL . "?page=user&action=read-all" ?>">Read all user</a>
    <a href="<?= BASE_URL . "?page=user&action=by-email" ?>">By email</a>
    <a href="<?= BASE_URL . "?page=logout" ?>">Logout</a>
    <a href="<?= BASE_URL . "?page=login" ?>">Login</a>
    </nav>
    <main>
        <?php
        $file = "./page/" . $_GET["page"] . ".php";
        if(file_exists($file)){
            include $file;
        }else{
            echo "<h1>This is home page </h1>";
        }
        ?>
</main>
</body>

Zkusil jsem: stackoverflow.com
w3school.com

 
Odpovědět
15.11.2018 18:18
Avatar

Člen
Avatar
:15.11.2018 19:41

Nefunguje ti to, lebo konštantu BASE_URL nemáš definovanú, tým pádom error sa vloží do href atribútu:

<a href="&lt;br /&gt;&#10;&lt;b&gt;Warning&lt;/b&gt;:  Use of undefined constant BASE_URL - assumed 'BASE_URL' (this will throw an Error in a future version of PHP) in &lt;b&gt;E:\xampp\htdocs\index.php&lt;/b&gt; on line &lt;b&gt;4&lt;/b&gt;&lt;br /&gt;&#10;BASE_URL?page=user&amp;action=read-all">Read all user</a>

Takto to môžeš vyriešiť bez použitia PHP na tvorbu ciest:

<body>
<nav>
    <a href="/">Home</a>
    <a href="/?page=user&action=read-all">Read all user</a>
        <a href="/?page=user&action=by-email">By email</a>
        <a href="/?page=logout">Logout</a>
        <a href="/?page=login">Login</a>
    </nav>
    <main>
        <?php
        $file = "./page/" . $_GET["page"] . ".php";
        if(file_exists($file)){
            include $file;
        }else{
            echo "<h1>This is home page </h1>";
        }
        ?>
</main>
</body>
Editováno 15.11.2018 19:43
 
Nahoru Odpovědět
15.11.2018 19:41
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:16.11.2018 8:05

Ono tam muze byt vic pricin. Mozna si zkus zapnout error_reporting().

Jak pise gold604, BASE_URLmuze byt undefined.
google = php BASE_URL
Pravdepodobne BASE_URL je v programu definovana jako const. Tu cast programu sis nezkopiroval. Nebo nemas aktivovane nejake nastaveni v php

<?= je zkraceny zapis pro <?php echo, to je take treba v php aktivovat, jinak se zkracovani nepouziva, php to ignoruje a do html kodu da text '<?='

Pouzivani / na zacatku adresy bych se vyhnul, kdyz nevis, jak to funguje. Proto ho mozna nepouzivas.
/ je root directory. To je treba nastavit v php kam root bude zmerovat. Pripadne pres soubor .htaccess. Jinak budes misto na svu slozku odkazovat na serverovou linuxovou slozku /var/www

A vubec, cely php kod bys mel poresit predtim nez napise body. Prerusovat vypis pres echo nejakym dalsim zpracovanim ti muze zpusobit celou radu problemu. a kdyz by to bylo predtim, muzes si tu konstantu definovat a nepsalo by ti to chybu.

define('BASE_URL',  base_url());

Ostatne, google = google php BASE_URL const
https://stackoverflow.com/…nstants-file

--- constants.php: ---

define('BASE_URL', "http://mysite.com");
define('USER_UPLOAD_URL', BASE_URL."uploads/user_uploads/");

--- config.php ---

$config['base_url'] = BASE_URL;
Editováno 16.11.2018 8:07
 
Nahoru Odpovědět
16.11.2018 8:05
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 3 zpráv z 3.