php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 06.02.2005, 13:44  
Gast
 
Beiträge: n/a
Standard Proble mit Sessions

Hallo.
Ich habe ein Problem mit der Benutzung von Sessions. Ich möchte Variablenwerte über mehrere Seiten mit Eingabenformularen weitergeben. Dies lässt sich wohl recht einfach und gut mit Sessions lösen. Ich habe es auch soweit hinbekommen, dass alle Eingaben in der Session gespeichert werden und bei allen folgenden Dokumenten zur Verfügung stehen.
Das Problem liegt jetzt bei folgendem:

1. Im Moment läuft das glaube ich nur mit Cookies weil die Session ID nicht in der URL steht.

2. Wenn ich den "Zurück" Button des Inetexplorers verwende dann kommt immer "Server nicht gefunden und wenn ich nochmal zum ersten Dokment wechsle und dann andere Eingaben mache, dann werden bei Ausgaben die alten Eingaben angezeigt. Erst wenn ich den Explorer schließe und neu aufmache kann ich wieder neue Eingaben machen, die dann auch richtig angezeigt werden.

Was ich konkret möchte ist:
1. Dass die Sessions auch arbeiten, wenn Cookies deaktiviert sind.
2. Dass man Eingaben noch ändern kann, wenn man per "Zurück" auf vorherige Dokumente geht und dann Eingaben ändert.

Ich habe mir auch schon ein paar Sachen dazu durchgelesen, da ich aber noch wenig Ahnung habe, hat mir das leider nicht weitergeholfen. Folgend mal der Code von 3 aufeinander folgenden Dateien. Ich denke das sollte reichen um meine Fehler zu finden.

Seite 1:
Code:
<?php

//Verbindung zum Server
Conn();


//Verbndung zur Datenbank
mysql_select_db($DB,$Conn) or die(mysql_error());

//Willkommensnachricht
echo '<div align="center"><h2>Willkommen bei der Uniformdatenbank von Thorsten Friedrich</h2></div>';
echo "
";
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.";

//Anzeige der Anzahl an Einträgen
$res = mysql_query("select * from daten");

$num = mysql_num_rows($res) or die(mysql_error());



echo "
";

if ($num==1)
   echo "

Es ist ingesamt $num Eintrag in der Datenbank</p>";
else
    echo "

Es sind ingesamt $num Einträge in der Datenbank</p>";
    
echo "

Die folgende Tabelle gibt einen Überblick über die Anzahl der bisherigen Einträge zu den einzelnen Nationen</p>";
echo '<div align="center"><table border="1"><tr><td>Nation</td><td>Anzahl der Einträge</td></tr></table></div>';
?>
<center>
<form action="nation.php" method="POST">
      <input type="SUBMIT" value="Neuer Datensatz">
</form>
</center>

</body>
</html>
Seite2:
Code:
<!doctype html public "-//W3C//DTD HTML 4.0//EN">
<?php session_start(); ?>
<html>
<head>
  <title>Uniformdatenbank v.1.0.0</title>
</head>

<body>
<?php

echo "<center><h2>Hier können Sie einen neuen Datensatz eingeben</h2></center>";
?>


<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><input type="radio" name="nation" value="Groß Britannien">Groß Britannien</td>
    <td><input type="radio" name="nation" value="Hannover">Hannover</td>
    <td><input type="radio" name="nation" value="Hessen-Darmstadt">Hessen-Darmstadt</td>
</tr>
<tr>
    <td><input type="radio" name="nation" value="Holland">Holland</td>
    <td><input type="radio" name="nation" value="Italien">Italien</td>
    <td><input type="radio" name="nation" value="Nassau">Nassau</td>
</tr>
<tr>
    <td><input type="radio" name="nation" value="Österreich">Österreich</td>
    <td><input type="radio" name="nation" value="Polen">Polen</td>
    <td><input type="radio" name="nation" value="Preußen">Preußen</td>
</tr>
<tr>
    <td><input type="radio" name="nation" value="Russland">Russland</td>
    <td><input type="radio" name="nation" value="Saxen-Coburg-Saalfeld">Saxen-Coburg-Saalfeld</td>
    <td><input type="radio" name="nation" value="Saxen">Saxen</td>
</tr>
<tr>
    <td><input type="radio" name="nation" value="Schweden">Schweden</td>
    <td><input type="radio" name="nation" value="Schweiz">Schweiz</td>
    <td><input type="radio" name="nation" value="Spanien">Spanien</td>
</tr>
<tr>
    <td><input type="radio" name="nation" value="Warschau">Warschau</td>
    <td><input type="radio" name="nation" value="Westfalen">Westfalen</td>
    <td><input type="radio" name="nation" value="Württemberg">Württemberg</td>
</tr>
<tr>
    <td colspan="3"> <center> <input type="SUBMIT" value="Weiter"> </center></td>
</tr>
</table>
<center>  </center>
</form>
</body>
</html>
Seite3:
Code:
<!doctype html public "-//W3C//DTD HTML 4.0//EN">
<?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 ".$_SESSION["nation"]." machen";


echo "

<h4>Für welche Zeit möchten Sie einen Datensatz für die Nation $nation".
     " eingeben?</p>";

?>
<table cellspacing="10">
<tr>
    <td><div align="center">Von</div></td>
    <td><div align="center">Bis</div></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><input type="RADIO" name="zeita" value="1807">1807</td>
    <td><input type="RADIO" name="zeitb" value="1807">1807</td>
</tr>
<tr>
    <td><input type="RADIO" name="zeita" value="1808">1808</td>
    <td><input type="RADIO" name="zeitb" value="1808">1808</td>
</tr>
<tr>
    <td><input type="RADIO" name="zeita" value="1809">1809</td>
    <td><input type="RADIO" name="zeitb" value="1809">1809</td>
</tr>
<tr>
    <td><input type="RADIO" name="zeita" value="1810">1810</td>
    <td><input type="RADIO" name="zeitb" value="1810">1810</td>
</tr>
<tr>
    <td><input type="RADIO" name="zeita" value="1811">1811</td>
    <td><input type="RADIO" name="zeitb" value="1811">1811</td>
</tr>
<tr>
    <td><input type="RADIO" name="zeita" value="1812">1812</td>
    <td><input type="RADIO" name="zeitb" value="1812">1812</td>
</tr>
<tr>
    <td><input type="RADIO" name="zeita" value="1813">1813</td>
    <td><input type="RADIO" name="zeitb" value="1813">1813</td>
</tr>
<tr>
    <td><input type="RADIO" name="zeita" value="1814">1814</td>
    <td><input type="RADIO" name="zeitb" value="1814">1814</td>
</tr>
<tr>
    <td><input type="RADIO" name="zeita" value="1815">1815</td>
    <td><input type="RADIO" name="zeitb" value="1815">1815</td>
</tr>
<tr>
    <td colspan="2"><center><input type="SUBMIT" value="Weiter"></center></td>
</tr>
</table>
</form>

</body>
</html>
Wäre für Hilfe sehr dankbar.
Gruß
Thorsten
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 07.02.2005, 10:12  
Gast
 
Beiträge: n/a
Standard

Sorry bei mir geht das ALLES...

mit den zurück Button:
Dann musst du das formular nich über POST sondern GET übergeben
Dann gehts!
 
Alt 07.02.2005, 14:31  
Gast
 
Beiträge: n/a
Standard

Hm was mir grade einfällt. Bei mir ging es auch mal aber dann habe ich das nächste Eingabeformular programmiert und dann gings wieder nicht. Werde es nochmal mit Post ausprobieren und dann nochmal mit Get. Aber hat es bei dir auch funktioniert, wenn du beim Zurück neue Daten eingegeben hast, dass er die dann auch angezeigt hat und nicht die alten?
Gruß
Thorsten

EDIT: Also mit GET funktioniert es bei mir auch mit dem Zurückbutton. Allerdings werden neue Eingaben nur in der URL angezeigt. Alle Ausgaben geben aber noch die alten Werte aus und nicht die geänderten. Woran liegt das?
 
Alt 07.02.2005, 14:39  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wenn du keine cookies nutzen willst, dann eben in die URL damit.
schau mal bei
http://php.net/ini_set
vorbei

formulare und method="get" ... ich werde es nie verstehen ..
ich hoffe mal ich habe mich da irgendwie verlesen.

das nächste mal kannst du übrigens den unnötien HTML-kram, der nur der "formatierung" dient weglassen.

grüße ben
imported_Ben ist offline  
Alt 07.02.2005, 14:47  
Gast
 
Beiträge: n/a
Standard

Wegen method"GET" siehe mein editiertes Posting. Mit Get gehts mit Post nicht.
OK ich lasse das nächste mal das HTML Zeug weg.
Das in die URL würde ich gerne nur ich habe bis jetzt nicht verstanden wie das geht. Habe mir den Link mal angesehen. Hatte auch schon in der PHP Referenz nachgesehen aber das ist für mich nicht verständlich. Ich bräuchte mal ein paar Beispiele an denen man das mal nachvollziehen kann. Aber die Beispiele die da sind zählen nur wie oft man schon die Session benutzt hat.

EDIT: So ich habe bisher das Skript immer nur lokal mit XAMPP getestet. Als ich es nun mal auf meinen Webspace gemacht habe ging es auch mit POST. Allerdings werden Änderungen nicht übernommen. Das heißt wenn eine Sessionvariable einmal einen Wert hat behält sie diesen bei bis die Session schließt. Es soll aber möglich sein, den Wert zu ändern. Wie mache ich das?
 
Alt 07.02.2005, 15:32  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

teste mal das:
http://phpfriend.de/ftopic28022-4.html
imported_Ben ist offline  
Alt 07.02.2005, 15:36  
Gast
 
Beiträge: n/a
Standard

das einzige wo der bei mir gemeckert hat:

PHP-Code:
//Verbindung zum Server 
Conn(); 
das kannte mein interpreter nich^^ is wohl ne funktion bei dir ne?
 
Alt 07.02.2005, 17:42  
Gast
 
Beiträge: n/a
Standard

@Ben: Der Link führt zu einem Skript überprüft, ob alle Eingaben in einem Formular gemacht worden sind. Wenn dem nicht so ist wird man wieder zum Formular geleitet. Sowas werde ich auch noch brauchen.

@Evanescence: Ja Conn() ist in der per include eingebundenen Datei enthalten und definert alles was für die Datenbankverbindung notwendig ist. Kann aber für mein derzeitiges Problem missachtet werden.

Mich würden jetzt folgende 3 Sachen interessieren:

1. Wie mache ich das, das das Skript funktioniert, auch wenn man keine Cookies an hat. Irgendwas muss ja da in die URL-> Bitte mal an einem Beispiel zeigen wie das geht oder mal bei einem meiner Seiten mal zeigen wies geht.

2. Warum übernimmt mein Skript keine Änderugen? Wenn ich einmal alle Seiten durch bin und dann zurückgehe und Eingaben ändere und dann wieder zum Ende gehe, werden die ersten Eingaben ausgegeben.

3. Wieso bekomme ich lokal mit XAMPP die Fehlermeldung Server nicht gefunden wenn ich per Zurück zurückgehe und bei meinem Webspace funktioniert das?
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
2 Sessions Kein Genie PHP Tipps 2006 8 21.07.2006 15:45
sessions ip gebunden ? notyyy PHP Tipps 2006 14 19.01.2006 09:07
[Erledigt] probleme mit sessions PHP Tipps 2007 1 17.11.2005 10:43
[Erledigt] Nach Einfügugng der Sessions funktioniert mein Program nicht PHP-Fortgeschrittene 1 02.10.2005 06:13
Sessions! DER_Brain PHP Tipps 2005-2 5 30.06.2005 14:51
Sessions ohne Session-ID PHP Tipps 2005-2 14 14.06.2005 15:54
2 Sessions? PHP Tipps 2005 5 29.04.2005 19:04
Sessions Anfänger PHP Tipps 2005 5 23.04.2005 17:54
[Erledigt] [PHP5 / W2k3 / IIS] Sessions funktionieren nicht PHP-Fortgeschrittene 2 02.04.2005 00:39
Sessions lomtas PHP Tipps 2005 2 23.03.2005 10:30
Sessions werden automatisch an Links angehängt PHP-Fortgeschrittene 3 10.12.2004 13:50
Passwörter, Sessions ... obi Datenbanken 2 13.08.2004 16:48
Sessions in Klassen benutzen zwelch PHP Tipps 2004 2 09.08.2004 08:54
[Erledigt] Usermanagement mit Sessions - Sicherheitsprobleme ? PHP Tipps 2004 0 30.06.2004 09:49
[Erledigt] Sessions, sessions und nochmal sessions PHP-Fortgeschrittene 0 06.06.2004 00:36

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
session willkommensnachricht

Alle Zeitangaben in WEZ +1. Es ist jetzt 06:53 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.