Apache streikt nicht mehr bei Cookies

Aus NOBAQ
Wechseln zu:Navigation, Suche

Wie im vorigen Beitrag bereits als Ausweg genannt, lasse ich nun wirklich mein CMS die Benutzer überprüfen, hole mir die Session-ID und setze das Cookie...


Das zugehörige PHP-Code sieht so aus:

<source lang="php"> <? require_once(dirname(__FILE__) . '/inc/Page.inc.php');

$page = new Page(__FILE__); $page->SetTitle(’Shareaza’); $page->SetPageOption(PAGEOPT_NORIGHTROW); $page->SetPageOption(PAGEOPT_NOLEFTROW); $page->SetMID(’SHAREAZA_PHP’);

$acl = &$page->GetACL(); $acl->SetPublic(false); $acl->AddGroup(’intern’);

if(!$acl->IsAllowed()) { $page->Header(); }

$sid = GetShareazaSID();

if(!$sid) { $page->Header(); ?>

offline

Shareaza antwortet leider nicht :-(

<? $page->Footer(); }

// Setze passendes Cookie header("Set-Cookie: ShareazaRemote=$sid; path=/");

flush();

$page->Header();

?>

Shareaza

<iframe xsrc="<?=$WebBase?>/shareaza/home?<?=$sid?>" mce_src="<?=$WebBase?>/shareaza/home?<?=$sid?>"

 width="100%" height="1200" name="shareaza" scrolling="no" frame marginheight="0" marginwidth="0">

Dein Browser unterstützt leider keine eingebetteten Frames! </iframe>

<? $page->Footer();

function GetShareazaSID() { $data = "GET /remote/?submit=1&username=user&password=pass HTTP/1.1 Host: 192.168.0.4:4711 Connection: Close ";

$fp = fsockopen(’192.168.0.4′, 4711, $errno, $errstr, 10); if(!$fp) { return 0; } fputs($fp, $data);

$data = ""; while(!feof($fp)) { $data .= fgets($fp, 4096); if(preg_match("/ShareazaRemote=([0-9]+)/", $data, $sid)) { fclose($fp); return $sid[1]; } }

fclose($fp);

return 0; }

?> </source>

Wie man sieht, wird die Legitimität des Benutzers direkt durch das CMS gecheckt (zusätzlich prüfe ich das durch $acl->IsAllowed(), damit die SID nicht unnötig geholt werden muss), danach wird die SID geholt, mit Set-Cookie das Cookie gesetzt und der iframe geladen.

Kommentare

Diskussion:Apache streikt nicht mehr bei Cookies