Autor Zpráva
peta
Profil
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
session má podobu
$_SESSION['nazev']="hodnota"
php
Profil
problém je v tom, že ve skriptu
soub.php
voláš
session_start();
pak k tomu souboru připojíš přes
file_get_contents($url)
soubor
test.php
ve, kterém nastavuješ ID sešny:
session_id($_GET[$sid]);
, jenže pokud chci sešně nastavovat ID tak to musím uděla před zavoláním
session_start();
peta
Profil
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
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
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.

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:

0