Diskuze: PHP - podstranky

PHP PHP PHP - podstranky American English version English version

Aktivity (1)
Avatar
Kejmou
Člen
Avatar
Kejmou: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
Šupák
Avatar
Odpovídá na Kejmou
Honza Bittner:3.9.2014 14:55

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

Nahoru Odpovědět  +2 3.9.2014 14:55
Milovník Dartu. Student FIT ČVUT. Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/...
Avatar
Odpovídá na Kejmou
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
Bogdan
Redaktor
Avatar
Bogdan: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  +2 3.9.2014 15:21
Pořiďte si zánovní MacBook od AppleTRH.cz
Avatar
Odpovídá na Bogdan
Neaktivní uživatel:3.9.2014 15:44

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

Nahoru Odpovědět  +2 3.9.2014 15:44
Neaktivní uživatelský účet
Avatar
Odpovídá na Kejmou
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.