session wird nicht registriert
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
auftritt
auswahl
blau code
code
datei
dokument
formular
post
problem
ruf
safari
session
standard
stelle
testen
url
verarbeitung
vermutung
weitergeben
wert standart
-
ich wollte mit dem code die session style registrieren
$_SESSION['style'] = $_POST['style'];
nur leider geht das irgendwie nicht??
so hab ichs auch schon probiert
$style = $_POST['style']; $_SESSION['style'] = $style;
ging aber auch nicht
die seite bekommt den werts style auch richtig übermitelt (ist auch der richtige name)
könnt ihr mir sagen warum das nicht geht??
mfg andré -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
versuchs mal mit
session_start(); $_SESSION['style'] = $_POST['style'];
danach kannste ja mal prüfen:
if(empty($_SESSION['style'])) { echo "keine Session 'Style' gefunden <br />"; } else { echo "Session'Style' vorhande <br />"; }
und die bist auch sicher das in der POST was drin steht?^^
Beitrag geändert: 24.9.2008 15:25:08 von myhead -
Müsste eigentlich funktionieren, bist du sicher, dass du auf jeder Seite auf der du die Session verwendest session_start() aufrufst
-
ja steht in meiner head datei und die wird immer includet
-
....benutzt du den Internet explorer?
oder mach einfach mal so eine Überprüfung wie ich oben noch geschrieben habe ^^
Beitrag geändert: 24.9.2008 15:27:05 von myhead -
ich habs mit IE, Firefox und safari probiert nirgends hat es geklappt
Beitrag geändert: 24.9.2008 15:27:31 von andre-morillon -
Woher weißten du das die Session nicht registriert wird?^^
falls immernoch nix geht ruf einfach mal session_id(); und session_name(); auf ...dann bekommste den Namen und ID der Session^^
...ich kenn mich mit sessions auch nicht mehr so gut aus^^ hab ja ne include^^
Beitrag geändert: 24.9.2008 15:32:47 von myhead -
post ist nicht leer hab ich mal auf get gestellt und in der url stand ?style=blue
also ist es ja nicht leer
und
myhead schrieb:
Woher weißten du das die Session nicht registriert wird?^^
falls immernoch nix geht ruf einfach mal session_id(); und session_name(); auf ...dann bekommste den Namen und ID der Session^^
...ich kenn mich mit sessions auch nicht mehr so gut aus^^ hab ja ne include^^
naja geplant ist das sich der hintergrund ändert...
auf standart ist er grün und ich hab noch nen blauen zur auswahl
wenn ich den style auf blau ändere bleibt er genau 1 seite lang blau danach wird er wieder grün
gucks dir an http://andre-morillon.de/stylechange.php
jetzt sthet überall session style vorhanden
mit ff kann man einfach auf das favicon kilcken und dann sich die cookies anzeigen lassen der zeigt aber auch sessions an.
die session user ist vorhanden (nach login) und immer ist vorhanden PHPSESID
was wohl die id dier session wäre
Beitrag geändert: 24.9.2008 15:36:02 von andre-morillon -
dann musst du die session_id(); und den session_name() an die url weitergeben...
bsp.:
session_start(); $name = session_name(); $id = session_id(); //So sollte es erstmal gehen, erstmal zum testen echo "<a href='datei.php?$name=$id> LINK </a>'";
-
myhead schrieb:
dann musst du die session_id(); und den session_name() an die url weitergeben...
bsp.:
session_start(); $name = session_name(); $id = session_id(); //So sollte es erstmal gehen, erstmal zum testen echo '<a href='datei.php?$name=$id> LINK </a>'';
dann kommt das in der url (wenn ich es in die seite einfüge)
datei.php?PHPSESSID=054141614e0ebc21053301940a19a220 -
Meine Vermutung wäre, dass du auf jeder Seite die Session setzt:
$_SESSION['style'] = $_POST['style'];
Dadurch ersetzt du den Wert von $_SESSION['style'] auf "", wenn $_POST['style'] nicht vorhanden ist.
Sollte dies sien, kannst du das so beheben:
if (isset($_POST["style"])) { $_SESSION['style'] = $_POST['style']; } [code] Dadurch wird $_SESSION['style'] nur geändert/gesetzt wenn das Formular wirklich gewählt wurde und nicht von einem erneuten Seitenaufruf auf leer ("") gesetzt. Überprüfen auch mal mit: [code] if (isset($_SESSION['style'])) { echo "Session gesetzt"; if (empty($_SESSION['style'])) { echo " aber mit einem leeren Wert"; } else { echo " mit dem Wert: ".$_SESSION['style']; } else { echo "Session nicht gesetzt"; }
-
wenn ich tw's version nehme kommt
Session gesetzt mit dem Wert: standart
der wert müsste aber blue sein
und ich setzte nur auf einer seite $_SESSION['style'] = $_POST['style'];
und nicht auf jeder
Beitrag geändert: 24.9.2008 15:49:01 von andre-morillon -
Dann liegt der Fehler ja nicht in er Session. Poste mal den Code des Formulares und dort, wo du die Session setzt. Man muss das Problem einschränken und kommt dadurch an die Stelle, wo das Problem auftritt und das muss wohl in dem Formular oder der Stelle liegen, wo die Session gesetzt wird, gesetzt wird diese ja nur anscheinend nicht richtig.
-
formular:
<?php include_once('head.php'); ?> Script noch in arbeit<br> !Es muss javascript aktiviert sein!<br><br> <form action="verarbeiten.php" method="post" > <select name="style" onchange="this.form.submit()"> <option selected >Bitte wählen</option> <option value="standard">Standard</option> <option value="blue">Blau</option> </select> </form> <?php include_once('end.php'); ?>
verarbeitung:
<?php include_once('head.php'); if(empty($_POST['style'])) { echo ' POST LEER'; exit; } $_SESSION['style'] = $_POST['style']; if(empty($_SESSION['style'])) { echo "keine Session 'Style' gefunden "; } else { echo "Session'Style' vorhanden "; } ?> </body><head> <meta http-equiv="Refresh" content="0; URL=stylechange.php"> </head><body> <?php include_once('end.php'); ?>
in der head datei steht session_start();
Beitrag geändert: 24.9.2008 16:01:19 von andre-morillon -
if(!empty($_POST["style"])) { $_SESSION["style"] = htmlentities($_POST["style"]); } else { echo "kein style ausgewählt..."; }
-
<?php session_start(); if(isset($_POST["style"]) AND $_GET["changestyle"] == "true") { $_SESSION["style"] = $_POST["style"]; } switch($_SESSION["style"]) { case "rot": $style = "rot"; break; case "gruen": $style = "gruen"; break; case "blau": $style = "blau"; break; default: $style = "default"; } ?> <html> <head> <title>...</title> <link rel="stylesheet" type="text/css" href="./css/<?=$style;?>.css"> </head> <body> <form action="?changestyle=true" method="post"> <select name="style"> <option>Style wählen</option> <option value="rot">Rot</option> <option value="gruen">Grün</option> <option value="blau">Blau</option> </select> <input type="submit" value="change" /> </form> </body> </html>
;)
Beitrag geändert: 24.9.2008 17:03:14 von trueweb
Beitrag geändert: 24.9.2008 17:03:43 von trueweb -
ich hab das alles jetzt ohne session gemacht einfach mit
$style = $_GET['style']; if(empty($style)) { $style = 'standard'; }
thx mfg andré -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage