Session-Variablen ändern
Philipp
- php
0 AllesMeins0 Philipp0 AllesMeins0 Philipp
Hallo !
Bin etwas am verzweifeln...
Folgendes Script bekommt eine id aus der url übermittelt:
<?
session_start();
if($Submit){
$bildnameid="bildname$id";
$_SESSION["bildname$id"]=$$bildnameid;
}
?>
<form method="post" action="?<? echo SID; ?>">
<input type="hidden" name="id" value"<? echo $id; ?>">
<input type="hidden" name="bildname<? echo $id; ?>" value="ErstesBild.gif">
<input type="submit" name="Submit" value="los">
</form>
<img src="ErstesBild.gif"><br><br><br>
<form method="post" action="?<? echo SID; ?>">
<input type="hidden" name="id" value"<? echo $id; ?>">
<input type="hidden" name="bildname<? echo $id; ?>" value="ZweitesBild.gif">
<input type="submit" name="Submit" value="los">
</form>
<img src="ZweitesBild.gif"><br>
Nun findet sich wunderbar in der Session die registrierte Variable (für z.B. id=35 und erstes Form abgesendet): bildname35|s:10:"ErstesBild.gif";
Sendet man nun daraufhin das zweite Form ab, ändert sich die Variable in der Session nicht.
Wie kann ich das erreichen? Setzte ich im String des Ausdrucks
$_SESSION["bildname$id"] keine Variable ein geht es bestens, aber ich benötige sie dort...! Und PHP scheint sie ja auch dort nicht zu stören, da sie beim ersten Mal registrieren keine Probleme macht.
Versuche mit unset sind auch gescheitert.
Besten Dank für Hilfe
Hiho,
zwei Anmerkungen:
1.) <form method="post" action="?<? echo SID; ?>">
Böse, böse Syntax! In das action gehört NUR die Adresse. Keine weiteren Werte. Dafür gibt es ja die <input type="hidden"> Felder. Da solltest du dringend was ändern!
2.) Irgendwie ist dein ganzes System ziemlich kaputt. Sowohl Syntaktisch als auch logisch. Ich steige jednefalls nicht durch was das genau machen soll. Meiner Meinung nach ist da nicht mehr so viel zu retten. Beschreib lieber was du genau machen willst und wir schaun mal ob wir da nicht ne bessere Lösung finden. So kann es auf jeden Fall nicht bleiben...
Grüsse
Danke für Antwort !
zwei Anmerkungen:
1.) <form method="post" action="?<? echo SID; ?>">
Böse, böse Syntax! In das action gehört NUR die Adresse.
Kann ich eigentlich auch weglassen, stimmt. Wenn ich das form an die gleiche Datei schicke, wird ja die ganze URL wieder übergeben incl. der SID :)
2.) Beschreib lieber was du genau machen willst und wir schaun mal ob wir da nicht ne bessere Lösung finden. So kann es auf jeden Fall nicht bleiben...
Also ich habe einfach auf einer Seite die Bilder aus einem Ordner aufgelistet und da soll sich der Benutzer eins aussuchen können. Das ausgesuchte Bild muß aber gleichzeitig noch für einen bestimmten 'Beitrag' markiert werden, deshalb die id. Nun soll man das aber in der gleichen Sitzung auch wieder ändern können, wenn es einem nicht passt. Doch da sitzt immer das erstausgewählte Bild (also dessen Name) in der Session und will sich einfach nicht ändern...
Freu mich über eine Lösung oder eine anderen Vorschlag.
Vielen Dank, Philipp
Hiho,
wieso arbeitest du dann nicht mit einem Formular? Dort kommen die Bilder rein. Darunter dann jeweils ein 'radiobutton' um das entsprechende Bild auszuwählen (am besten auch klüger benannt z.b. name="bild" value="1" (bzw. dann halt 2, 3 usw). Mit Zahlen lässt sich immer besser arbeiten als mit Buchstaben.
Und nach dem abschicken einfach das so in der Session regsitrieren. Am besten per $_SESSION['bild'] = $_POST['bild'];
Das sollte es eigentlich tun...
Grüsse
Marc
Ich denke ich habe mir einfach zuviel zugemutet, da man für verschiedene Beiträge verschiedene Bilder auswählen können soll in einem rutsch und das script später diese bilder nach der id wieder dem beitrag zuordnen soll nach zB bild$id.
Was eigentlich dann das problem ist das ich in der $_SESSION anweisung in die eckige klammer nicht die $id einbauen kann...das klappt aber komischerweise beim ERSTEN mal, dann läst sich mit der gleichen anweisung und anderer id nicht mehr 'überspeichern' in der session. ein anweisung wie $_SESSION['bild'] lässt sich problemlos ändern, aber eben nicht $_SESSION['bild$id']...
vielleicht mach ichs mir auch zu kompliziert...
Viele Grüße
Philipp