Autor Zpráva
kozusnik.jan
Profil *
Ahoj, na webu jsem našel tento PHP skript:

<ul>
            <li><a href="index.php?stranka=anketa">Anketa</a></li>
            <li><a href="index.php?stranka=knihasdb">Kniha S DB</a></li>
            <li><a href="index.php?stranka=uprava_tvorba_souboru">Uprava tvorba souboru</a></li>
        </ul>
<?php



if (isset($_GET["stranka"]) && substr_count($_GET["stranka"], "/") < 1)
    $stranka = $_GET["stranka"];
else
    $stranka = "uvod";
                         
$soubor = $stranka."php";
if (file_exists($soubor))
    include $soubor;
else 
    include "stranka_nenalezena.php";
                         
?>

Nechápu na něm tu podmínku
if (isset($_GET["stranka"]) && substr_count($_GET["stranka"], "/") < 1)
    $stranka = $_GET["stranka"];
Nevím, kde vzal tu proměnnou stránka, proč tam má globální proměnnou GET, když tam není žádný formulář a nepochopil jsem to
substr_count()
Díval jsem se na to do knížky, kde jsou PHP funkce, a našel jsem tam jenom substr a o substr_count tam není ani zmínka.
Mohli byste mi prosím vysvětlit výše zmíněné dotazy? Předem mockrát děkuji
panther
Profil
kozusnik.jan:
Nevím, kde vzal tu proměnnou stránka, proč tam má globální proměnnou GET
GET se bere z URL

když tam není žádný formulář
není potřeba formulář, stačí odkaz nebo ruční vepsání.

a nepochopil jsem to substr_count
...tak si klikni na odkaz, který se z názvu funkce udělal v [#1], třeba pochopíš. Funkci sis ohledně mohl sám dávno dohledat.
kozusnik.jan
Profil *
panther:
"...tak si klikni na odkaz, který se z názvu funkce udělal..........." to mě nenapadlo

Mohli byste mi prosím vysvětlit, kde vzal tu proměnnou stránka?
Jan Tvrdík
Profil
kozusnik.jan:
Mohli byste mi prosím vysvětlit, kde vzal tu proměnnou stránka?
Nikde ji nevzal. Na daném místě ji vytvořil (tj. dříve neexistovala).
Johnik
Profil
Spravne by bylo vytahnout tu promennou nad podminku, ale v php to neni potreba, protoze se promenna vytvori automaticky - neni potreba klicoveho var a podobne.
kozusnik.jan
Profil *
JJ, už jsem to snad pochopil
kozusnik.jan
Profil *
No, tak teď to vypadá nějak takhle:
<a href="inc.php?clanek=uvod" name="uvod">Uvod</a>
<a href="inc.php?clanek=odkaz" name="odkaz">Odkaz</a>
<?php
function ukaz($gs, $p, $u) {
if (isset($gs) ) {
$p = $gs;
$sh = $p.".php";
}
include "./".$sh;
}
?>
<div id="clanky">
<?php

ukaz(isset($_GET['stranka']),isset($page), isset($show));

?>
 </div>

Teď mi to hlásí tyto chyby:
Warning: include(./.php) [function.include]: failed to open stream: No such file or directory in D:\wamp\www\weby\2010Jun14-18_50\POKUSY\include\Inc.php on line 14
Warning: include() [function.include]: Failed opening './.php' for inclusion (include_path='.;C:\php5\pear') in D:\wamp\www\weby\2010Jun14-18_50\POKUSY\include\Inc.php on line 14

Zjistil jsem, že to celé je kvůli proměnné $p, proměnná p je prostě prázdná. Prosím poraďte, jak to vyřešit
panther
Profil
kozusnik.jan:
na ř. 15 máš $_GET['stranka'], v odkazu naplňuješ $_GET['clanek']. Začni od základů, to bude nejlepší.
kozusnik.jan
Profil *
JJ, toho jsem si všiml, pak jsem to zpravil, a pořád mi to hlásí ty samé chyby. Nechal jsem si vypsat proměnnou p a ono mi to vypsalo 1. Takže chyba je asi někde tam
Davex
Profil
kozusnik.jan:
Podívej se do dokumentace, k čemu slouží funkce isset() a co vrací jako výsledek. Hodnoty vstupních parametrů ve funkci ukaz() si pro účel ladění můžeš vypsat pomocí funkce var_dump().

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: