proč když napíšu:
$pokus = "nic";
require ./neco.php; (kde je $pokus = "neco";)
echo "$pokus";
tak se vytiskne nic, místo něco ?
no právě že se vytiskne nic. a já nevím proč a potřebuju vytisknout něco. co s tím krámem je ?
stip: a máš u toho require před a za souborem taky uvozovky? mohlo by to vyřešit tvůj problém
ale jó, ten soubor se opravdu zrequajruje správně. prostě chyba bude asi jinde, protože správně by se měla proměná přenést, nebo ne?
<HTML>Jak psala dis. musi to vypsat "neco" pokud to nevypise nic mas to budto zapsane jinak nez jsi uvedl sem do fora nebo mas nejakou oldies verzi php</HTML>
a co zkusit include - to je neco hodne podobnyho, ne? tusim ze bez includovanyho muze PHP pracovat, bez require ne, ze... ?
stip: teď mi to není přesně jasný. Tobě se "vypíše 'nic' " nebo "nevypíše nic"? :D možná jsi nevybral úplně přesnej příklad s tou hodnotou proměnných...
pro jistotu přesná syntaxe:
<?
$pokus = "nic";
require "neco.php";
echo "$pokus";
?>
a soubor neco.php:
<?
$pokus = "něco";
?>
jestli myslíš že to máš správně, tak zkus
a) máš-li v tom vkládaném souboru spoustu příkazů, tak to zkušebně nahraď jen za ten jeden s proměnnou. Můžeš mít chybu v úplně jiném příkazu.
b) jestli myslíš že to máš dobře, tak do toho requirovaného souboru vlož nějaký echo, ať vidíš, jestli se provádí...
Je docela možné, že ti to v tom vkládaném souboru někde vyhnilo. Doporučuji odstranit všechny @ před příkazama, protože to není užitečná věc pro debug a většinou způsobí to, že místo chyby, která by se ti vypsala, se nevypíše nic, jenže ta chyba ukončí vykonávání skriptu, takže nevíš, co se kde stalo. Odstraň i @ před require (pochopitelně, pokud tam nějaký máš). A jinak viz b)
BTW, require ./neco.php; bych ti teda nesežral, musel bys mi předhodit ještě nějaké uvozovky :)
Pardón já jsem to popsal obráceně, než to je. Jde o toto:
*
index.php
<?php
// načtu funkci pro parsováni konfiguračního souboru Load_Config()
require("./include/F_Load_Config.php");
// pomocí funkce Load_Config() rozparsuju soubor a zaregistruju konstanty
$key = Load_Config("./config/config.ini");
//načtu stránku danou cestou poskládanou z konstant page_url a error_document
require(page_url.error_document);
?>
*
Správně se načte stránka error.php, což znamená že vše funguje správně. Jenomže pokud obsahuje načtený soubor:
*
error.php
<?php
$jina_key = Load_Config("./config/config.ini");
echo error_dokument;
?>
*
hlásí fatal error, že nezná funkci Load_Config(), v případě smazání tohoto řádku, nezná ani konstantu (nevytiskne její obsah, ale název). Otázka tedy zní: Jak udělat, aby funkce, konstanty a oproměnné, které jsem definoval v stránce, byly normálně použitelné v souboru který do stránky načítám pomocí require (Samozřejmě pouze po načtení, nikoliv když soubor volám samostatně).
*
require("./include/F_Load_Config.php"); musi byt i v error.php
Rozumim, jde o to, že všechno v includovaném souboru se provede v rámci toho skriptu z kterého ho volám, ale naopak ten includovaný z původního skriptu nic nevidí, žádné funkce, proměnné ani konstanty. Mohl bych ho includovat s parametrama, jako třeba:
require("./include/F_Load_Config.php?key=007");
abych do něj tu proměnnou dostal ?
Jak vypada funkce loadconfig?
Sorry byl jsem chvili mimo, takže load_config() je takto:
<?php
function Load_Config($ini)
{
if (!($config = @Parse_Ini_File($ini)))
{
Die("FATAL ERROR - function Load_Config() failed");
}
else
{
foreach($config as $key => $value)
{
if (!defined($key))
{
define($key, $value, 0);
}
}
}
return $config;
}
?>
hele, mě to include taky vyhnil, ale jen na nějakym serveru. dokonce nežere ani z URL, musí se mu napsat
if($_GET['promenna'] == ""){$_GET['promenna'] = $_GET['promenna'];}
co to je?
Tohle je pekna ptakovina, ktera nedela nic. No, zalozi promennou v globalnim poli $_GET[], pokud neexistuje...
vim co to je, ale proč to musím psát, proč prostě nestačí
echo $_GET['promenna'];
ale musim pred to vrazit tu nesmyslnou podminku, aby to vytisklo obsah ty promenny...