Kannst du das mal etwas genauer beschreiben, ich versteh nun nicht so recht, was du da vor hast. Etwas Code könnte auch hilfreich sein.
Ich versuche gerade, ob es möglich ist, eine Session in einem "Bild" wieder aufzunehmen, das eigentlich ein PHP-Script ist, daß das Bild mittels gd_lib generiert.
Ich habe das Bildscript also über einen img-Tag in das Script eingebunden, daß die Session startet. Jetzt soll diese Session wieder in dem Eingebundenen Script wieder aufgenommen werden. Ist dies überhaupt möglich? Ich hab es versucht, indem ich die Session_ID in der im "Bild" gestarteten Session mit der anderen überschrieben habe..
Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
-Dieter Nuhr
Kannst du das mal etwas genauer beschreiben, ich versteh nun nicht so recht, was du da vor hast. Etwas Code könnte auch hilfreich sein.
Bahnhof?![]()
also der client requestet eine html seite, die keinen session cookie mitsendet. in dieser wird durch img element ein weiterer http request vom browser generiert, der ein bild holt. dieses bild wird von einem php script generiert wird und dieses script startet auch einen session. wenn man jetzt auf der html seite, die das img element beinhaltet navigiert, soll die session fortgesetzt werden, die das bildscript gestartet hat?
gefühlsmäßig würde ich tippen, dass das nicht geht, aber das bedarf noch eines beweises - werde das mal überprüfen...
forenregeln - 3.d) ... richtige groß- und kleinschreibung benutzen ...
Also hier mal der Code der einbindendenden Datei:
Und hier der des "Bildes":PHP-Code:<?php
session_start();
$SESSION[la] = "blub";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<meta name="generator" content="Adobe GoLive">
<title>Test</title>
</head>
<body>
<img src="graphik.php?ses_id=<?=session_id()?>&ses_name=<?=session_name()?>" alt="" border="0">
</body>
</html>
PHP-Code:<?php
session_start();
session_name($_GET[ses_name]);
session_id($_GET[ses_id]);
if(session_is_registered(la) $txt = "Session wurde gestartet";
else $txt = "Session wurde nicht gestartet";
// Uebergabeparameters:
// font Schriftdateiname ohne Endung
// txt Der darzustellende Text
// s Schriftgrösse (optional)
// r Randbreite um die Schrift (optional)
// Anforderungen
// GD-Lib muss installiert sein. Die Schrift muss sich am richtigen Ort befinden (ttf-Format))
if ($_GET['auf']=="1024") {$s=15;}
else {$s=11;}
// Standarthöhe
// Standartrahmen
if (!$r) $r=5;
// Schriftpfad. Achtung, Serveradresse!
// Zu finden in der phpinfo unter Apache Environment -> DOCUMENT_ROOT
$font="G:/Datumsrechner/Font/masonbol.ttf";
// Schriftbildgrösse ermitteln
$box=imagettfbbox($s,0,$font,$txt);
// Grafik erstellen
$im = imagecreate ($box[4]+$r, abs($box[7])+$r);
//Grundfarben definieren (rgb))
// Background (Es empfiehlt sich diese ungefähr der Hintergrundtextur der Seite anzupassen, da immer ein schwacher Rahmen bleibt. In unserem Fall nehm ich als Hintergrund Schwarz
$bc = ImageColorAllocate ($im, 255, 255, 255);
// Textfarbe:
$tc = ImageColorAllocate ($im, 192, 0, 0);
// Hintergrund mit Hintergrundfarbe füllen
imagefill($im,0,0,$bc);
// Hintergrundfarbe als transparent definieren
imagecolortransparent($im,$bc);
// Text einfügen
ImageTTFText ($im, $s, 0, 0, abs($box[7]) , $tc, $font, $txt);
// Header ausgeben
Header ("Content-type: image/png");
// Grafik als Png ausgeben
ImagePNG ($im);
// temporäre Grafik zerstören
ImageDestroy ($im);
session_destroy();
?>
Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
-Dieter Nuhr
Wenn schon dann bitte $_SESSION['la'] = "blub"; ...$SESSION[la] = "blub";
Also, das ist erstmal unötig. Wenn man eine Session startet, braucht man die Session-ID nicht per $_GET weitergeben.<img src="graphik.php?ses_id=<?=session_id()?>&ses_name=<?=session_name()?>" alt="" border="0">
Ändere mal if(session_is_registered(la)) (<= hier fehlt bei dir übrigens noch eine Klammer) in if ($_SESSION['la'] == "blub") ab, dann wird funktionieren...
Scheint nicht zu funktionieren..
Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
-Dieter Nuhr
Kommando zurück. Funktioniert doch...
Falls es jemanden Interessiert, wofür ich mir das Überlegt habe: Ich dachte, daß das eine gute Möglichkeit gegen das Hotlinken von Bildern sein könnte. Eigentlich alle Scripts die ich kenne, arbeiten ja über den Referrer, was aber bei Surfern, die den Referrer unterdrücken, zur Folge hat, daß die immer nur das Hotlinking- Bild zu sehen bekommen. Das wäre somit ja umgangen.
Naja, vieleicht schüttelt es jetzt manche Leute, für was ich alles Sessions mißbrauche..
Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
-Dieter Nuhr
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)