Autor Zpráva
Fisak
Profil
Zdravím. Nyní jsem začal potřebovat ve fci Require použít gety tzn. require("plugins/media_players/".options("media_player")."/index.php?url_media=$url&width_media=$width&height_media=$height");
jde mi o to jestli lze v requiru použít to "/index.php?url_media=$url&width_media=$width&height_media=$height" tudíž jestli můžu v tom souboru index.php pak zvolat obsah echo $_GET['width_media']; a jestli mi to normálně vypíše $width... předem díky za odpověď
abc
Profil
Fisak:
Co to třeba zkusit? :-)
Fisak
Profil
abc:
blbá otázka :-) zkusil sem to nešlo mi to nevím jestli mám chybu v kodu nebo jestli to opravdu nejde
abc
Profil
Fisak:
Otázka rozhodně blbá není.. Stačilo v prvním postu napsat něco jako: "zkusil jsem, ale nešlo mi to" ;)
Jistě jsi i zabrousil do manuálu, kde je u fce require napsáno volně přeloženo "viz dokumentace include()", kde jsi jistě narazil na třetí ukázku, kde se dozvíš, jak dosáhnout požadovaného cíle.. Odkaz
Fisak
Profil
V tom případě mi přijde že to mam dobře.. pokud to dobře chápu
//načte řetězec
function load_page($string)
{

    require(BASE."/$string");

}

if ($result_media_player === false) 
    { 
        load_page("plugins/media_players/".options("media_player")."/index.php?url_media=$url&width_media=$width&height_media=$height");  
        
    }
a obsah index.php
<script type="text/javascript">
    jwplayer("mediaspace").setup({
        flashplayer: "/plugins/media_players/black_player/player.swf",
        height: <?php echo $_GET['height_media']; ?>,
        width: <?php echo $_GET['width_media']; ?>,
        levels: [
            { file: "<?php echo $_GET['url_media']; ?>" }
        ]
    });
</script>



BASE = adresář...


chybu to vypisuje na řádek: load_page("plugins/media_players/".options("media_player")."/index.php?url_media=$url&width_media=$width&height_media=$height");


Warning: include(/home/users/insignia/insignia.funsite.cz/web/plugins/media_players/black_player/index.php?url_media=/uploads/Bez nzvu.mp3&width_media=auto&height_media=auto): failed to open stream: No such file or directory in /home/users/insignia/insignia.funsite.cz/web/system/function/function.main.php on line 202 Warning: include(): Failed opening '/home/users/insignia/insignia.funsite.cz/web/plugins/media_players/black_player/index.php?url_media=/uploads/Bez nzvu.mp3&width_media=auto&height_media=auto' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /home/users/insignia/insignia.funsite.cz/web/system/function/function.main.php on line 202
LosFilipos
Profil
Fisak:
Zřejmě si nepochopil, co se snažil abc říci (a na co odkazoval do manuálu php). Funkce require, stejně jako include, přidá do tvého kódu (na místo, ze kterého funkci voláš) daný obsah souboru a ten se stane součástí kódu samotného, tedy:
Soubor promenne.php (ten co inkluduješ):
$barva = 'zelene';
$ovoce = 'jablko';

soubor index.php (ten do kterého includuješ):
echo "$ovoce je $barva"; // vypíše: "je"

include 'promenne.php';

echo "$ovoce je $barva"; // vypíše: "jablko je zelene"
Tzn, že v includovanem souboru můžeš používat proměnné, které se vyskytují i tam, kde soubor vkládáš a naopak, pokud v includovaném souboru používáš proměnnou, můžeš jí využít i v původním kódu...
Fisak
Profil
LosFilipos:
no to sem pochopil bohužel mám problém s tím že se mi nějak netějí ty proměnné do toho souboru index.php načítat ...


//media přehrávač
function media_player($url, $width = "auto", $height = "auto") {
static $result_media_player = false; 
if(options("media_player") != "default") {

    if ($result_media_player === false) 
    { 
        load_page("plugins/media_players/".options("media_player")."/index.php");  
        
    }

    
    
} else {

    if ($result_media_player === false) 
    { 
    
        return ("<video src=\"$url\" width=\"$width\" height=\"$height\" controls>
                                <object id=\"mediaplayer\" classid=\"clsid:6bf52a52-394a-11d3-b153-00c04f79faa6\" type=\"application/x-oleobject\" width=\"$width\" height=\"$height\">
                                <param name=\"url\" value=\"$url\">
                                <param name=\"autostart\" value=\"1\">
                                <param name=\"showcontrols\" value=\"1\">
                                <param name=\"stretchtofit\" value=\"0\">
                                <param name=\"enablecontextmenu\" value=\"0\">
                                <param name=\"ShowStatusBar\" value=\"1\">
                                <embed src=\"$url\" autostart=\"1\" type=\"application/x-mplayer2\" pluginspage=\"http://www.microsoft.com/Windows/MediaPlayer/\" transparentatstart=\"0\" animationatstart=\"0\" showcontrols=\"1\" autosize=\"0\" displaysize=\"0\" showtracker=\"0\" showstatusbar=\"1\" width=\"$width\" height=\"$height\">
                                </object>
                                </video>");
    }
    
}

}

Obsah index.php
<script type="text/javascript" src="/plugins/media_players/black_player/jwplayer.js"></script>
<script type="text/javascript" src="/plugins/media_players/black_player/swfobject.js"></script>

<div name="mediaspace" id="mediaspace"></div>

<script type="text/javascript">
    jwplayer("mediaspace").setup({
        flashplayer: "/plugins/media_players/black_player/player.swf",
        height: <?php echo $height; ?>,
        width: <?php echo $width; ?>,
        levels: [
            { file: "<?php echo $url; ?>" }
        ]
    });
</script>



A problém je v tom že pokud je nastavený přehrávač "default" tak se mi normálně spustí ovšem když je jiný tak už ne ..
LosFilipos
Profil
Fisak:
mám problém s tím že se mi nějak netějí ty proměnné do toho souboru index.php načítat
Protože ten require voláš uvnitř funkce a ta "nevidí" proměnné venku. Řešením je buď předat tyto proměnné jako parametr oné funkce load_page, nebo je uvnitř této funkce učinit globálními.

Tyto dvě řešení dělají totéž:
function load_page($str) {
  global $karel;
  include($str);
}
$karel = "Obsah proměnné";
load_page("include.php");
a
function load_page($str,$karel) {
  include($str);
}
$karel = "Obsah proměnné";
load_page("include.php",$karel);

obsah include.php
echo $karel;

Obě dvě funkce vypíšou "Obsah proměnné".
Fisak
Profil
LosFilipos:
když jí udělám globální tu proměnou tak nastane problém s tim že pokud vyvolám funkci několikrát pokaždý s jinejma hodnotama tak už to bude robit bordel..


ale už asi vím čím to je.. ono mi to totiž dříve normálně fungovalo a najdnou mi to nefunguje...
LosFilipos
Profil
Fisak:
V tom případě proměnné předávej jako parametr...
Fisak
Profil
LosFilipos:
jak to myslíš ?? můžeš prosím uvést příklad ?
LosFilipos
Profil
Fisak:
function load_page($str,$parametr1,$parametr2) {
  include($str);
}
load_page("include.php",$promenna1,$promenna2);

V souboru include.php budeš používat názvy "$parametr1" a "$parametr2".
Fisak
Profil
LosFilipos:
no teď mě moc nechápeš ty :-) takhle to mam viz[#7] Fisak


ale je pravda že pokud sem nahradil:
    if ($result_media_player === false) 
    { 
        load_page("plugins/media_players/".options("media_player")."/index.php");  
        
    }
tímto
    if ($result_media_player === false) 
    { 
        require("plugins/media_players/".options("media_player")."/index.php");  
        
    }
tak to najednou funguje....
LosFilipos
Profil
Fisak:
No právě že chápu... Funkci load_page chybí parametry height, width a url...

Funkce media_player je má jako parametr, ale už je nepředá do toho require, protože funkce load_page má pouze jeden parametr, a to string. Pokud to má fungovat, uprav funkci load_page takto:
function load_page($string,$url,$width,$height) {
     require(BASE."/$string");
 }

a její volání uvnitř funkce media_player:

//media přehrávač
function media_player($url, $width = "auto", $height = "auto") {
static $result_media_player = false; 
if(options("media_player") != "default") {
 
    if ($result_media_player === false) 
    { 
        load_page("plugins/media_players/".options("media_player")."/index.php",$url,$width,$height);  
        
    }
 
    
    
} else {
 
    if ($result_media_player === false) 
    { 
    
        return ("<video src=\"$url\" width=\"$width\" height=\"$height\" controls>
                                <object id=\"mediaplayer\" classid=\"clsid:6bf52a52-394a-11d3-b153-00c04f79faa6\" type=\"application/x-oleobject\" width=\"$width\" height=\"$height\">
                                <param name=\"url\" value=\"$url\">
                                <param name=\"autostart\" value=\"1\">
                                <param name=\"showcontrols\" value=\"1\">
                                <param name=\"stretchtofit\" value=\"0\">
                                <param name=\"enablecontextmenu\" value=\"0\">
                                <param name=\"ShowStatusBar\" value=\"1\">
                                <embed src=\"$url\" autostart=\"1\" type=\"application/x-mplayer2\" pluginspage=\"http://www.microsoft.com/Windows/MediaPlayer/\" transparentatstart=\"0\" animationatstart=\"0\" showcontrols=\"1\" autosize=\"0\" displaysize=\"0\" showtracker=\"0\" showstatusbar=\"1\" width=\"$width\" height=\"$height\">
                                </object>
                                </video>");
    }
    
}
 
}



Fisak:
tak to najednou funguje....
No vida... Pokud je jedinou funkčností funkce load_page přídat to BASE, opravdu tam být nemusí, pokud dělá ještě něco jiného, musíš ji přidat ty parametry...
Fisak
Profil
LosFilipos:
dobře díky za pomoc :-)

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: