Hallo!
Folgendes Phänomen: Es soll ein Bilderalbum angezeigt werden. Die Bilder werden alle aus einer DB geladen und automatisch verkleinert angezeigt.
Dazu mal ein wenig Code:
Also sobald sich jemand authentifiziert hat, wird $_SESSION[logedin] auf true gesetzt und es ist möglich die ganzen geschützten Seiten (wie diese hier) zu betrachten.
Öffnet man nun diese Seite, dann sollten alle Bilder verkleinert angezeigt werden. Man bekommt aber nur lauter Bildhalter mit roten x angezeigt.
Was hat das ganze jetzt mit Session-Cookies zu tun?
Gebe ich bei den oberen beiden if-Befehlen, die Abfrage nach $_SESSION[logedin] weg, dann funktioniert es. Konkret geht es deshalb nicht, weil sich die Seite, um Thumbnails zu erstellen, 2x selbst aufruft. Dabei wird beim 2ten Mal irgendwie die Session nicht richtig übergeben werden.
Möchte ich nur ein Bild in Originalgröße (also ohne es zu verkleinern, d.h. nur einmal sich selbst aufrufen) darstellen, dann funktioniert das auch.
Meine Frage ist, wo hier der Fehler liegt, bzw. warum die Session beim 2ten Mal nicht richtig "übermittelt" wird.
Folgendes Phänomen: Es soll ein Bilderalbum angezeigt werden. Die Bilder werden alle aus einer DB geladen und automatisch verkleinert angezeigt.
Dazu mal ein wenig Code:
PHP-Code:
<?php
@session_start();
//Bilddaten laden
if ($_SESSION[logedin])
{
if (isset($_GET[id_data]))
{
$id_data = $_GET[id_data];
include ("dbconnect.php");
$result = mysql_query("SELECT data FROM picture WHERE id = $id_data");
$row = mysql_fetch_row($result);
$data = stripslashes($row[0]);
header("Content-type: image/jepg");
header('Content-Disposition: inline');
echo $data;
die("");
}
//Thumbnail anzeigen
if (isset($_GET[id]))
{
$id = $_GET[id];
session_register('logedin');
$_SESSION[logedin]=true;
$image = imagecreatefromjpeg("url_zur_seite$PHP_SELF?id_data=$id");
$image = ImageThumbnail($image);
header("Content-type: image/jepg");
header('Content-Disposition: inline');
Image($image);
die("");
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Titel der Website</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
if ($_SESSION[logedin])
{
//Anzeigen aller Bilder
//Bilder werden mit
echo "<img src='$PHP_SELF?id=$id'>";
//angezeigt
}
?>
</body>
</html>
Öffnet man nun diese Seite, dann sollten alle Bilder verkleinert angezeigt werden. Man bekommt aber nur lauter Bildhalter mit roten x angezeigt.
Was hat das ganze jetzt mit Session-Cookies zu tun?
Gebe ich bei den oberen beiden if-Befehlen, die Abfrage nach $_SESSION[logedin] weg, dann funktioniert es. Konkret geht es deshalb nicht, weil sich die Seite, um Thumbnails zu erstellen, 2x selbst aufruft. Dabei wird beim 2ten Mal irgendwie die Session nicht richtig übergeben werden.
Möchte ich nur ein Bild in Originalgröße (also ohne es zu verkleinern, d.h. nur einmal sich selbst aufrufen) darstellen, dann funktioniert das auch.
Meine Frage ist, wo hier der Fehler liegt, bzw. warum die Session beim 2ten Mal nicht richtig "übermittelt" wird.
Kommentar