Hilfe bei Sessions gesucht

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Sgt. Absolom
Mitglied
Beiträge: 103
Registriert: 27.07.2004 22:24
Wohnort: Eppelheim
Kontaktdaten:

Hilfe bei Sessions gesucht

Beitrag von Sgt. Absolom »

Hallo. Ich suche jemanden der mir da mal helfen kann. Ich brauche Sessions um Eingaben über mehrere Dokumente zu sammeln und dann später in einem SQL Befehl in eine Datenbank zu schreiben.
Mein Problem ist jetzt, dass ich Daten nicht mehr ändern kann. Sprich wenn eine Sessionvariable zb. $_Session["test"] einmal einen Wert hat und ich die anschließend ändern will dann wird der neue Wert nicht übernommen.
Also wenn mir irgendwann einfällt, dass ich vor 2 Seiten was falsch eingegen habe und ich gehe nun per Zurück-Funktion meines Browsers zurück und ändere die Eingabe dann wird beim nächsten Dokument immer noch der alte Wert ausgegeben. Ich habe in jedem Dokument Ausgaben am Anfang damit angezeigt wird was bisher eingegeben wurde.
Ich habe einfach jedes Dokument mit

Code: Alles auswählen

<? PHP session_start(); ?>
und dann due Zuweisungen mit

Code: Alles auswählen

$_SESSION["variable"]=$eingabe;
Zuletzt geändert von Sgt. Absolom am 15.02.2005 00:15, insgesamt 1-mal geändert.
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

schreib das Session Array groß -> $_SESSION
macht teilweise Probleme
Sgt. Absolom
Mitglied
Beiträge: 103
Registriert: 27.07.2004 22:24
Wohnort: Eppelheim
Kontaktdaten:

Beitrag von Sgt. Absolom »

Ok das war jetzt nen Fehler hier habe ich aber im Skript richtig gemacht. Habe es aber oben nochmal editiert.
Gruß
Thorsten
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Re: Hilfe bei Sessions gesucht

Beitrag von itst »

Ohne mehr von Deinem Code zu sehen kann Dir bei dieser Saceh niemand helfen.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Sgt. Absolom
Mitglied
Beiträge: 103
Registriert: 27.07.2004 22:24
Wohnort: Eppelheim
Kontaktdaten:

Beitrag von Sgt. Absolom »

Also hier mal der Code der ersten 3 Dokumente. Habe noch weitere die aber gleich aufgebaut sind. Ich denke mein Fehler ist in diesen schon erkennbar.

Seite 1:

Code: Alles auswählen

<?php session_start (); ?>
<html>

  <title>Uniformdatenbank v.1.0.0</title>
</head>
<body>
<?php

//Willkommensnachricht
echo '<div align="center"><h2>Willkommen bei der Uniformdatenbank von Thorsten Friedrich</h2></div>';
echo "<br>";
echo "Hier finden Sie Informationen zu den Nationen, die in der napoleonischen Eproche an den Kampfhandlungen beteiligt waren."
     ." Wir hoffen, dass hier mit der Zeit immer mehr Informationen zusammengetragen werden.";
?>
<center>
<form action="nation.php" method="POST">
      <input type="SUBMIT" value="Neuer Datensatz">
</form>
</center>
</body>
</html>
Seite 2:

Code: Alles auswählen

<?php session_start (); ?>
<html>
<head>
  <title>Uniformdatenbank v.1.0.0</title>
</head>

<body>
<center><h2>Hier können Sie einen neuen Datensatz eingeben</h2></center>
<br>
<h4>Für welche Nation möchten Sie eine Eingabe machen?</h4>
<table align="center">
<form action="eingabe1.php" method="POST">
<tr>
    <td><input type="radio" name="nation" value="Baden">Baden</td>
    <td><input type="radio" name="nation" value="Bayern">Bayern</td>
    <td><input type="radio" name="nation" value="Braunschweig">Braunschweig</td>
</tr>
<tr>
     <td><input type="radio" name="nation" value="Cleve-Berg">Cleve-Berg</td>
     <td><input type="radio" name="nation" value="Dänemark">Dänemark</td>
     <td><input type="radio" name="nation" value="Frankreich">Frankreich</td>
</tr>
<tr>
    <td colspan="3"> <center> <input type="SUBMIT" value="Weiter"> </center></td>
</tr>
</table>
<center>  </center>
</form>
</body>
</html>
Seite 3:

Code: Alles auswählen

<?php session_start (); ?>
<html>
<head>
  <title>Uniformdatenbank v.1.0.0</title>
</head>
<body>
<form action="eingabe2.php" method="POST">
<?php
//Bisherige Eingaben
$_SESSION["nation"]=$nation;
echo "Sie möchten eine Eingabe für <b>".$_SESSION["nation"]."</b> machen";
echo "<p><h4>Für welche Zeit möchten Sie einen Datensatz für die Nation $nation".
     " eingeben?</p>";
?>
<table cellspacing="10">
<tr>
    <td><b><div align="center">Von</div></b></td>
    <td><b><div align="center">Bis</div></b></td>
</tr>
<tr>
    <td><input type="RADIO" name="zeita" value="1805">1805</td>
    <td><input type="RADIO" name="zeitb" value="1805">1805</td>
</tr>
<tr>
    <td><input type="RADIO" name="zeita" value="1806">1806</td>
    <td><input type="RADIO" name="zeitb" value="1806">1806</td>
</tr>
<tr>
    <td colspan="2"><center><input type="SUBMIT" value="Weiter"></center></td>
</tr>
</table>
</form>

</body>
</html>
Danach kämen noch weitere Eingaben die aber alle gleich aufgebaut sind. Am Anfang Ausgabe der bisherigen Eingaben dann eine Eingabemaske für die nächsten Werte
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

sieht nach einem register_globals Problem aus mach aus:

Code: Alles auswählen

$_SESSION["nation"]=$nation;

Code: Alles auswählen

$_SESSION["nation"]=$_POST['nation'];
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Sgt. Absolom hat geschrieben:$_SESSION["nation"]=$nation;
Der Variable $nation weist du na nirgendwo einen Inhalt zu. Da bei dir Vermutlich register_globals=on aktiviert ist, bekommt diese jetzt offensichtlich den Wert von $_SESSION['nation'] zugewiesen - also ändert sich effektiv gar nichts.
KB:knigge
Sgt. Absolom
Mitglied
Beiträge: 103
Registriert: 27.07.2004 22:24
Wohnort: Eppelheim
Kontaktdaten:

Beitrag von Sgt. Absolom »

Der Variable $nation weist du na nirgendwo einen Inhalt zu.
$nation ist doch aus dem Formularelement aus Seite 2 mit der angeklickten Nation belegt. Also wird zb. Bayern in $_SESSION["nation"] geschrieben wenn man das bei den Radiobuttons anlickt. Nur wenn ich von Seite 3 auf Seite 2 zurückgehe und nun auf Baden ändern würde und wieder auf Seite 3 weitergehe wird immer noch Bayern ausgegeben. Oder habe ich das jetzt falsch verstanden was ihr damit meint?

EDIT:
Also ich habe jetzt immer

Code: Alles auswählen

$_Session["variablename"]=$_POST['variable'];
gemacht. Aber wieso funktioniert das nur so?

Dann hätte ich da noch ne Frage:
Wenn ich mein Skript online aufrufe bekomme ich folgende Fehlermeldung auf allen Seiten
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/worldofm/public_html/uniformen3/uniformen.php:2) in /home/worldofm/public_html/uniformen3/uniformen.php on line 2
bzw. in der URL die aufgerufene Seite. Bei der ersten Seite kriege ich den Fehler sogar 2 mal. Woran liegt das?

Aber danke erstmal für die Lösung des ersten Problems. Würde jetzt nur noch gerne verstehen wieso das nicht funktioniert hat.
Gruß
Thorsten
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Sgt. Absolom hat geschrieben:Also ich habe jetzt immer

Code: Alles auswählen

$_Session["variablename"]=$_POST['variable'];
gemacht. Aber wieso funktioniert das nur so?
Weil
Pyramide hat geschrieben:... Da bei dir Vermutlich register_globals=on aktiviert ist, bekommt diese jetzt offensichtlich den Wert von $_SESSION['nation'] zugewiesen...
(diese = $nation)
Sgt. Absolom hat geschrieben:Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/worldofm/public_html/uniformen3/uniformen.php:2) in /home/worldofm/public_html/uniformen3/uniformen.php on line 2
KB:headers_already_sent
KB:knigge
Sgt. Absolom
Mitglied
Beiträge: 103
Registriert: 27.07.2004 22:24
Wohnort: Eppelheim
Kontaktdaten:

Beitrag von Sgt. Absolom »

Also das erste verstehe ich noch nicht wirklich. Würde es schon gerne verstehen möchte da jetzt aber nicht weiter fragen, es sei denn es würde mir nochmal einer ausführlich erklären.

Zum 2. Punkt:
Ich habe jetzt auch eine Lösung gefunden. Allerdings weiß ich nicht genau ob ich damit nicht noch nen ungewollt negativen Effekt mit reingeschrieben habe.
Ich habe in allen Dateien einfach das

Code: Alles auswählen

start_session();
rausgenommen und mit

Code: Alles auswählen

$_Session["variablename"]=$_POST['variable'];
die Variablen zugewiesen. Fakt ist, dass die Fehlermeldung nicht mehr kommt, die Ausgaben alle richtig sind und das bei der ersten Eingabe und bei einer geänderten Eingabe. Allerdings wundert mich, dass ich $_SESSION['variable'] verwenden kann wenn ich gar keine Session gestartet habe. Das muss man doch eigentlich in jeder Seite machen, in der die Session benutzt werden soll also auf allen Seiten in der bei mir Eingaben erfolgen oder?

In der Knowledge Base steht:
Datei mit Header-Informationen: In dieser Datei befindet sich der Code zum Modifizieren der Header-Informationen (in dieser Zeile). In der Regel handelt es sich dabei um setcookie() oder header() Befehle.
Zeile 2 wäre bei mir direkt der session_start() Befehl weil in der ersten Zeile der doctype steht. Und die beiden Befehle setcookie und header() habe ich nicht benutzt. Müsste mal schaun was bei meinem FTP Client eingestellt ist für ÜBertragung. Allerdings habe ich auch ein Forum laufen und da gabs noch keine Probleme mit den Einstellungen.
Gruß
Thorsten

PS: Ein riesiges Danke, dass ihr mir helft!!!!
Antworten

Zurück zu „Coding & Technik“