Autor Zpráva
stepanka
Profil *
Ahoj,

narazila jsem na takový zvláštní problém..

Potřebuju v jednom skriptu zavolat jiný, ale přidat k němu do URL nějaké parametry. Konkrétně mám skript faktura-pfd.php a v jiném skriptu volám:
include_once ('faktura-pdf.php?language=cz&ido='.$_GET['id_objednavka'].'&action=priloha');


když oddělám celou tu část za otazníkem, tak to funguje, ale s těma třema parametrama ne.. Jenže já bych je tam potřebovala..

Nevěděl by někdo, jak na to?

Mockrát děkuju.
Majkl578
Profil
nemuzes pouzivat parametry pri lokalnim volani souboru
musis bud nastavit ve scriptu, ne jako get
Radek9
Profil
Nebou použít
<?php
echo file_get_contents("http://adresa/faktura-pdf.php?language=cz&ido=".$_GET['id_objednavka']."&action=priloha");
?>
stepanka
Profil *
Radek9

Děkuji za radu.

To Tvoje mi pořád vypisuje:
Warning: file_get_contents(eshop1.localhost/admin/faktura-pdf.php?language=cz&ido=2009030024&action=priloha) [function.file-get-contents]: failed to open stream: No error in C:\web\www\eshop1\admin\objednavky-detail.php on line 197

a to ať tam dávám relativní cestu, nebo tuto absolutní.
Radek9
Profil
zadáváte to tedy i s http:// ?
stepanka
Profil *
Radek9
Aha, zadávala jsem to bez http:// ... teď už to chybu nevyhazuje, ale objeví se bílá stránka. Já v tom skriptu faktura-pdf.php nemám žádné echo, veškerý text ukládám do jedné proměnné. A když tedy v tom novém skriptu zadám:

$html = file_get_contents('http://'.$_SERVER['SERVER_NAME'].'/admin/faktura-pdf.php?language=cz&ido='.$_GET['id_objednavka'].'&action=priloha');
echo $html;

nic se mi neobjeví.. je to tím, že v tom skriptu není žádné echo?
Aesir
Profil
stepanka:

Jak již zmínil Majkl578 v [#2], nemusíte to takhle předávát. Příkazy include, require a jejich *_once alternativy vkládají obsah souborů na místo jejich volání ve shodném kontextu. Znamená to, že pokud zavoláte

$foo = 'bar';
include 'skript.php';


můžete ve skript.php normálně s proměnnou $foo pracovat.
stepanka
Profil *
Aesir
Děkuju moc na reakci. Ale já to potřebuju spíš opačně.. Něco jako..

skript.php
$foo = 'text...';


jiny-skript.php
text ...
$html = file_get_contents ('skript.php');
echo $html;  //a zde by to mělo vypsat proměnnou $foo
text...


jestli si rozumíme..
Aesir
Profil
stepanka:

Doufám, že rozumíme. V tomto opačném případě se jedná o stále stejný kontext.
Zkuste:

Soubor skript.php:

<?php
$foo = 'bar';


Soubor jiny-skript.php:

<?php
include 'skript.php';
echo $foo;


A zkuste si spustit jiny-skript.php :)
stepanka
Profil *
Aesir
Ještě detail... potřebuju k té URL nacpat nějaké parametry, jak píšu v [#1] ... a to pomocí include nejde. Proto jsem se tam snažila nacpat to file_get_contents ... s URL takto:
file_get_contents("http://adresa/faktura-pdf.php?language=cz&ido=".$_GET['id_objednavka']."&action=priloha");


Ve skriptu faktupa-pdf.php si naplním proměnnou $html. A po vypsání

$html = file_get_contents("http://adresa/faktura-pdf.php?language=cz&ido=".$_GET['id_objednavka']."&action=priloha");
echo $html


v jiném skriptu bych chtěla mít proměnnou $html opět stejně naplněnou.

Je to takový blbý dotaz, omlouvám se za něho :-) Chápete mě?
Alphard
Profil
Takhle to nepůjde, k proměnné se přes file_get_contents() nedostanete a s include zase nemůžete použít get v adrese.
Nejlepší by bylo přepsat daný script do nějaké funkce nebo třídy, includovat a normálně ho zavolat.
Prasácké řešení by mohlo být tohle:
$_GET['language'] = 'cz';
$_GET['ido'] = $_GET['id_objednavka'];
$_GET['action'] = 'priloha';
include_once ('faktura-pdf.php');
Aesir
Profil
stepanka:

Možná už se ztrácím, z prvního vašeho příspěvku plyne, že soubor faktupa-pdf.php je lokální soubor ve stejném adresáři jako je skript, ve kterém potřebujete výstup ze souboru faktupa-pdf.php, je to tak?

Pokud ano, tak předpokládám, že soubor faktupa-pdf.php potřebuje ty tři parametry, které uvádíte. Pokud ano, pak tedy:

// nastavime pozadovane parametry, soubor faktupa-pdf.php je bude mit dostupne jako lokalni promenne
$language = 'cz';
$ido = $_GET['id_objednavka'];
$action = 'priloha';

// soubor faktupa-pdf.php zpracuje promenne a naplni vysledkem promennou $html
include 'faktupa-pdf.php';

// zde je promenna $html pristupna jako lokalni promenna
echo $html;
stepanka
Profil *
Alphard, Aesir

Moc oběma děkuju, obě vaše řešení fungujou.. které z nich je míň prasácké? :-)
Aesir
Profil
stepanka:
které z nich je míň prasácké?
Však jsou obě stejné, Alphard akorát dotáhl do detailu to, že jste zřejmě potřebovala mít proměnné v _GET.

Ideálně by bylo vhodné asi obsah skriptu faktupa-pdf.php zapouzdřit do nějaké třídy nebo funkce a tu pak volat podle potřeby s libovolnými parametry. Podobné problémy by vám pak odpadly.
stepanka
Profil *
Aesir
ok, možná to dám do nějaké funkce, to nebude problém. Ještě jednou za všechno moc děkuju.

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: