dodání ihned! nové
Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
BF
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
Redaktor
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
Student FIT ČVUT. In love with Flutter. :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://g...
Avatar
Ondřej Štorc
Redaktor
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..
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
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.