Portál AbcLinuxu, 11. května 2025 10:33

Dotaz: Špatně fungující php - include

jendulakh avatar 30.7.2008 18:34 jendulakh
Špatně fungující php - include
Přečteno: 611×
Odpovědět | Admin
Zdravím, mám problém s funkcí include. Abych to vysvětlil, předkládám jednoduchou ukázku:soubor test.php:
< a href="test.php">odkaz1< /a>
< a href="test2.php?sss=psani2.php">odkaz2< /a>
< a href="test2.php?sss=psani3.php">odkaz3< /a>
< ? include "psani.php"; ? >
Úmyslně mám v těch odkazech pevně dané index2.php?sss=psanix.php. Do další stránky to vstoupí jako proměnná $sss.
Dále soubor test2.php
< a href="test.php">odkaz1< /a>
< a href="test2.php?sss=psani2.php">odkaz2< /a>
< a href="test2.php?sss=psani3.php">odkaz3< /a>
< ?php include $sss ; ? >
V souborech psani.php psani2.php psani3.php je jakýkoliv text. Ale když to spustim tak mi to píše

Warning: include() [function.include]: Failed opening '' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/test2.php on line 4

Nevím proč, protože na hostingu forpsi i ic to šlape skvěle :( Prosím pomoc. Doufám, že to z toho pochopíte :)

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

30.7.2008 18:38 Andrej Herceg | skóre: 43
Rozbalit Rozbalit vše Re: Špatně fungující php - include
Odpovědět | | Sbalit | Link | Blokovat | Admin
Na tom servri je vypnuté register_globals (čo je rozumné), takže namiesto $sss treba použiť $_GET['sss']. Každopádne používať include na čokoľvek, čo príde z internetu nie je, bez otestovania obsahu, najlepší nápad.
jendulakh avatar 30.7.2008 18:44 jendulakh
Rozbalit Rozbalit vše Re: Špatně fungující php - include
Panečku to byla rychlost :) $_GET['sss'] tam teď používám, nicméně mi to trochu dělá problém, pže jsem si zvykl na to co jsem psal. Každopádně register_globals jsem už kdysi slyšel ve spojitosti s tímto. Děkuji převelice ;) register_globals nastavím, ale slibuju, že udělám vše proto, abych si na to zvyknul. třeba < br> a < br/> mi taky trvalo leta :) Ještě jednou díky
30.7.2008 18:42 Honza
Rozbalit Rozbalit vše Re: Špatně fungující php - include
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pominuli ze to je bezpecnostni dira ;o) tak problem je v tom, ze mas jinak nastavene PHP ;o) misto $sss pouzij $_GET['sss'] a fungovat to bude.

Pokud to neni jen zjednodusena ukazka, tak urcite doporucuji pred zverejnenim trosku nastudovat neco o bezpecnosti psani aplikaci v PHP ;o)
jendulakh avatar 30.7.2008 18:58 jendulakh
Rozbalit Rozbalit vše Re: Špatně fungující php - include
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vyřešeno, odzkoušeno, funkční.. Už to jede. :) Nicméně přemluvili jste mě, přestávám to používat. :( To zas bude fuška :)
30.7.2008 19:25 kedlubacek
Rozbalit Rozbalit vše Re: Špatně fungující php - include
Odpovědět | | Sbalit | Link | Blokovat | Admin

a co tam pridat alespon neco jako toto?... minimalne... prosim!

define('DEFAULT_PAGE', 'home.php');

$inpage = '';
if(isset($_GET['sss']) {
    $inpage = $_GET['sss'] . '.php';
    if(!file_exists($inpage)) {
        $inpage = DEFAULT_PAGE;
    }
} else {
    $inpage = DEFAULT_PAGE;
}

include($inpage);

a odkaz v html: ?sss=mrkvackov povede na "mrkvackov.php", pokud bude tento php soubor existovat - a pokud ne, bude se includovat "home.php

jendulakh avatar 30.7.2008 19:34 jendulakh
Rozbalit Rozbalit vše Re: Špatně fungující php - include
V praxi to takhle nějak funguje - zjednodušeně:
include $site;
 if (!$site)
include "site_hlavni.php";
nebo tak nějak. Nicméně to že by se tam nedávalo .php je rozumný nápad :) Dá se to pak použít i jako třeba nadpis, nebo < title>. Děkuji za skvělý nápad :) mám to teď řešený poněkud krkolomně :) Díky

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.