Moin!
Dieses Gästebuch funktioniert auf meinem Rechner zu Hause hervorragend - nachdem ich die Dateien allerdings auf den Server bei all-inkl.com hochgeladen hatte, funktionierte die Vorschau-Funktion nicht mehr! Alle Variablen, die ich vorher eingegeben hatte, wurden falsch ausgegeben - aus "Mischa" wurde beispielweise "BmMRha" - aus
Wichtigster Punkt: Stimmen bei dir zuhause und beim Hoster die Einstellungen von
- register_globals
- magic_quotes_gpc
überein?
phpinfo() gibt Auskunft.
Zweitens würde ich bei Sessions nie die Variablenwerte von normalen Variablen in $_SESSION hineinkopieren und umgekehrt, sondern wo immer möglich direkt auf $_SESSION zugreifen. Dass bei dir da einiges schiefgeht, siehst du ja.
Dass beispielsweise leergelassene Felder in der Vorschau mit "Array" gefüllt werden, zeigt irgendeine Undefiniertheit oder falsche Ansprache eines Arrays. Die ist aber aus dem geposteten Code nicht ersichtlich.
Dass eingegebene Werte in PHP so seltsam verstümmelt werden, kann auch an einer vorgenommenen Typwandlung liegen. Ich meine, dass ich da mal irgendwas entdeckt hatte - find's aber nicht mehr im Archiv.
Nebenfrage: Was bedeuten eigentlich deine Variablen in diese Zeilen hier, bzw. wo kriegen die ihre Werte her? Doch nicht etwa aus dem Formular, oder?
session_start();
$sid = session_id();
$_SESSION['icon'] = $icon;
$_SESSION['sender'] = $sender;
$_SESSION['ort'] = $ort;
$_SESSION['mail'] = $mail;
$_SESSION['website'] = $website;
$_SESSION['text'] = $text;
$_SESSION['preview'] = 1;
Außerdem:
$loc = "content.php?cat=kontakt&id=guestbook&PHPSESSID="$loc = "content.php?cat=kontakt&id=guestbook&PHPSESSID=" . $sid;
header("Location: $loc");
Der Header "Location" erfordert eine absolute URL, beginnend mit "http://".
Und zweitens solltest du die Konstante "SID" dort einsetzen, wo du in URLs die Session-ID benötigst. Die enthält nämlich auch den Session-Namen, der nicht in jedem Fall "PHPSESSID" lauten muß.
- Sven Rautenberg