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
pokusnicek
Člen
Avatar
pokusnicek:3.9.2014 14:49

Ahoj,

kde je prosím chyba?

<?php
if (isset($_GET['stranka']))
        $stranka = $_GET['stranka'];
else
        $stranka = 'domu';
if (preg_match('/^[a-z0-9]+$/', $stranka))
{
        $vlozeno = include('podstranky/' . $stranka . '.php');
        if (!$vlozeno)
                echo('Podstránka nenalezena');
}
else
        echo('Neplatný parametr.');
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <style type="css/text">

  </style>
  <title>Skládání stránek</title>
  </head>
  <body>
          <div class="skladanka">
             <ul>
               <li><a href="index.php?stranka=domu">Index</a></li>
               <li><a href="index.php?stranka=modra">Modrá</a></li>
               <li><a href="index.php?stranka=zelena">Zelená</a></li>
               <li><a href="index.php?stranka=cervena">Červená</a></li>
               <li><a href="index.php?stranka=fialova">Fialová</a></li>
             </ul>
          </div>

  </body>
</html>
Editováno 3.9.2014 14:49
 
Odpovědět
3.9.2014 14:49
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na pokusnicek
Honza Bittner:3.9.2014 14:55

A máš soubor domu.php ve složce podstranky?

Nahoru Odpovědět
3.9.2014 14:55
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na pokusnicek
Ondřej Štorc:3.9.2014 14:55

Sice nejsem expert na php ale nebylo by lepší mít to include takhle:

$vlozeno = include("podstranky/$stranka.php");
Nahoru Odpovědět
3.9.2014 14:55
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Neaktivní uživatel:3.9.2014 15:21

Je tam psáno že soubor nebo složka neexistuje, takže buď se odkazuješ na špatnou složku nebo na soubor který není.

PS: Možná taky že máš složku někde schovanou a k ní se pak odkazuje pomoci teček.

../../../atd..

Editováno 3.9.2014 15:21
Nahoru Odpovědět
3.9.2014 15:21
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:3.9.2014 15:44

Lépe s lomítkem na začátku - od rootu ;)

Nahoru Odpovědět
3.9.2014 15:44
Neaktivní uživatelský účet
Avatar
Odpovídá na pokusnicek
Uživatel sítě :3.9.2014 16:43

Zkus toto:

$vlozeno = include('./podstranky/' . $stranka . '.php');//Přidáš tam './'

A také bych doporučoval zjišťovat zda-li soubor existuje funkcí 'file_exists' -> http://php.net/…e-exists.php

Takže to může vypadat nějak takto:

$vlozeno = './podstranky/' . $stranka . '.php';

if(file_exists($vlozeno)){
include $vlozeno;
}else{
echo 'Obsah nebyl nalezen!';
}
Nahoru Odpovědět
3.9.2014 16:43
Chybami se člověk učí, běžte se učit jinam!
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 6 zpráv z 6.