Autor | Zpráva | ||
---|---|---|---|
stepanka Profil * |
#1 · Zasláno: 9. 7. 2009, 17:42:56
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 |
#2 · Zasláno: 9. 7. 2009, 17:49:45
nemuzes pouzivat parametry pri lokalnim volani souboru
musis bud nastavit ve scriptu, ne jako get |
||
Radek9 Profil |
#3 · Zasláno: 9. 7. 2009, 18:04:41
Nebou použít
<?php echo file_get_contents("http://adresa/faktura-pdf.php?language=cz&ido=".$_GET['id_objednavka']."&action=priloha"); ?> |
||
stepanka Profil * |
#4 · Zasláno: 9. 7. 2009, 18:25:22
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 |
#5 · Zasláno: 9. 7. 2009, 18:32:10
zadáváte to tedy i s http:// ?
|
||
stepanka Profil * |
#6 · Zasláno: 9. 7. 2009, 22:39:02
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 |
#7 · Zasláno: 9. 7. 2009, 22:44:15
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 * |
#8 · Zasláno: 9. 7. 2009, 22:48:20
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 |
#9 · Zasláno: 9. 7. 2009, 22:55:12
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 * |
#10 · Zasláno: 9. 7. 2009, 23:03:26
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 |
#11 · Zasláno: 9. 7. 2009, 23:13:49 · Upravil/a: Alphard
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 |
#12 · Zasláno: 9. 7. 2009, 23:14:42
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 * |
#13 · Zasláno: 10. 7. 2009, 11:05:33
Alphard, Aesir
Moc oběma děkuju, obě vaše řešení fungujou.. které z nich je míň prasácké? :-) |
||
Aesir Profil |
#14 · Zasláno: 10. 7. 2009, 11:22:08
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 * |
#15 · Zasláno: 10. 7. 2009, 12:06:47
Aesir
ok, možná to dám do nějaké funkce, to nebude problém. Ještě jednou za všechno moc děkuju. |
||
Časová prodleva: 15 let
|
0