| Autor | Zpráva | ||
|---|---|---|---|
| peta Profil |
#1 · Zasláno: 12. 8. 2011, 08:52:21 · Upravil/a: peta
Potreboval bych z aktualni stranky predat session id pro stranku volanou pres file_get_contents jako napr http://localhost/test-session/test.php?id=123.
Stale mi to pise hlasku, Fatal error: Maximum execution time of 30 seconds exceeded. (v okamziku, kdy odkomentuji radek session_id($_GET[$sid]) v test.php; Rychlejsi je pozavirat okna prohlizece a otevrit znova, protoze si session pamatuje.) Kod vypada nejak takto: --- soub.php ---
<?php
session_start();
$session = '&prenossid='. session_id();
echo $session;
$value = 5;
$url = 'http://localhost/test-session/test.php?id='.$value . $session;
echo file_get_contents($url).'<hr>';
?>
--- test.php ---
<?php
//http://localhost/test-session/test.php?id=123
$sid = 'prenossid';
if (isset($_GET[$sid]))
{
echo '<br>111:'.$_GET[$sid];
//session_name('PHPSESSID');
session_id($_GET[$sid]);
}
session_start();
echo '<br>222:'.session_id();
?>Potrebuji to pro cyklus, protoze tam mam ulozene prihlaseni. Adresar je uplne stejny i na vnejsim serveru. Mam to udelane javascriptem, ze to dam do framu, framy natahnu. Jedna se o tohle. Mam program, ktery vygeneruje jakysi formular. Napr fakturu. Tomuto programu predavam id faktury. Potrebuji na strance zobrazit 40 faktur vytisknout. Problem je, ze v te iframove verzi dochazi v ruznych prohlizecich k zajimavym udalostem pri nahledu tisku. Napriklad Opera, kdyz ji to vyjde, tak mi da dve faktury na jednu stranku. A to nechci. Ve FF mi tam sem tam vlozi prazdnou stranku, ale to by nevadilo. Jenze kdyz mu frame vyjde delsi nez stranka, tak zbytek textu neukaze. V tom frame je nejaky div, nejaka tabulka. Takze jsem chtel zkusit vypsat to pres php, co to udela pro tisk ted. |
||
| puzzle Profil |
#2 · Zasláno: 12. 8. 2011, 14:46:56
session má podobu
$_SESSION['nazev']="hodnota" |
||
| php Profil |
#3 · Zasláno: 13. 8. 2011, 01:23:08 · Upravil/a: php
problém je v tom, že ve skriptu
soub.php session_start(); file_get_contents($url) test.php session_id($_GET[$sid]); session_start(); |
||
| peta Profil |
#4 · Zasláno: 13. 8. 2011, 08:45:03 · Upravil/a: peta
php: Ok a jak to teda udelat?
Mam program, kam se prihlasim, prihlaseni ulozim do session. v tom programu kliknu na tlacitko a chci aby se zobrazilo 30 faktur, ktere vygeneruje jiny program, ktery potrebuje take toto prihlaseni. V test.php prave volam start az po nastaveni id a protoze to jde pres file content, tak by to mel byt uplne jiny soubor. Nebo, jak predat do file_get_contents session? |
||
| php Profil |
#5 · Zasláno: 13. 8. 2011, 09:38:38 · Upravil/a: php
tak ten problém by mělo vyřešit když přidáš do soubor (soub.php)
<?php session_start(); $session = '&prenossid='. session_id(); echo $session; $value = 5; session_write_close(); //tohle sem přidej a mělo by ti to fungovat $url = 'http://localhost/test-session/test.php?id='.$value . $session; echo file_get_contents($url).'<hr>'; ?> ještě taková malá ukázka jak by to šlo trochu efektivnějc:
//soub.php
session_id('new-session');
session_start();
$_SESSION['barva'] = "red";
session_write_close();
$url = 'http://localhost/test-session/test.php?' . SID;
echo file_get_contents($url);
//test.php
session_start();
if( isset($_SESSION['barva']) ) echo "barva = $_SESSION[barva]";
else echo "sme bez barvy";
vyzkoušej tohle |
||
| peta Profil |
#6 · Zasláno: 15. 8. 2011, 12:32:42
Dik moc, funguje to.
Sice mi neni jasne moc, proc session_write_close, ale neva. V prikladech to pouzivali jen kdyz potrebovali ulozit data z predchozi session a otevrit novou. Coz zrovna muj pripad nebyl, stara data zahodit a otevrit session jiny session soubor. Ale je mozne, ze on se prave na tom zacyklil, ze se snazil pracovat s necim, co nemel dostupne, protoze to mel jiny program otevrene a ze to vlastne bylo bloknute podobne jako to dela flock. Mno, budu o tom jeste rozjimat. To druhe, SID, si zapamatuji a nekdy zkusim. Ted to potrebuji spis pouzivat nez cekat, co vykutim. |
||
|
Časová prodleva: 14 let
|
|||
0