Session auch ohne IF möglich?

hume1991

Erfahrenes Mitglied
Hallo zusammen,

habe eine Session erstellt welche aber nicht funktioniert, weshalb auch immer. In der Index.php wird die Session gestartet und dann auf dass Bezahlfenster weitergeleitet, welches auch wieder die Session folgt und dann zur Absendung welches auch wieder das selbe. Leider weiß ich nicht ob ich hier richtig liege oder ob es überhaupt eine Möglichkeit dieser Art gibt, also ohne IF.

Folgender Vorgang ist bei allen Seiten gleich:

PHP:
 session_start ();
        $_SESSION['Typ'];
        $_SESSION['Brennstoffeinheit'];
        $_SESSION['Brennstoffderzeit'];
        $_SESSION['Art'];
        $_SESSION['Alter'];
        $_SESSION['Leistung'];
        $_SESSION['Stromverbrauch'];
        $_SESSION['Stromverbrauchseinheit'];
        $_SESSION['Arbeitspreis'];
        $_SESSION['Brennstoffverbrauch'];
        $_SESSION['Flaeche'];
        $_SESSION['Sanierung'];
        $_SESSION['Baujahr'];
        $_SESSION['Anrede'];
        $_SESSION['Vorname'];
        $_SESSION['Nachname'];
        $_SESSION['Strasse'];
        $_SESSION['Hausnummer'];
        $_SESSION['PLZ'];
        $_SESSION['Wohnort'];
        $_SESSION['Mail'];
        $_SESSION['Agb'];

Habe vorher noch nie mit Session zutun gehabt und habe mich schon eingelesen, aber direkt verstehen kann ich es noch nicht richtig.

Würde mich auf eure Hilfe oder Tipps freuen.

Mit freundlichen Grüßen

Christian
 
Hi

a) wo hast du da ein IF?
b) Was sollen die ganzen Anweisungen a la "$_SESSION['Typ'];"?

Beschreib vllt. mal, was du erreichen willst.

Was eine Variable ist weißt du?
Da kann man Werte zuweisen und später wieder verwenden.
PHP:
$meineVariable = 1;
...
if($meineVariable >= 0)
    $meineVariable = $meineVariable + 100;
...
echo $meineVariable;
Sowas einfach allein würde aber keinen Sinn machen:
PHP:
$meineVariable;

Dann gibts Arrays, das sind mehrere Variablen unter dem gleich Namen, durchnummeriert.
zB. ein Array $zahlen mit 100 verschiedenen Zahlen drin,
die über $zahlen[0] bis $zahlen[99] verwendet werden können.
PHP:
$zahlen[0] = 1;
$zahlen[1] = 789;
$zahlen[44] = $zahlen[0] * $zahlen[1];
Vorteil zu 100 einzelnen Variablen:
Man muss sich nicht 100 Namen ausdenken und kann zB. mit Schleifen bequem alle 100 Zahlen durchgehen, ohne 100 Mal den selben Code mit einem anderen Variablennamen zu schreiben.

Dann kann man Arrayelemente auch wieder über eigene Namen ansprechen.
PHP:
$note['Geographie'] = 1;
$note['Mathematik'] = 1.8;
$note packt also mehrere benamte Variablen zusammen.
Die oben genannten Arrayvorteile (alles einfach durchschleifen etc.) bleiben aber erhalten,
trotz Namen statt Nummern.

Auch bei Arrays machen Anweisungen wie
PHP:
$note['Geographie'];
$zahlen[37];
Keinen Sinn.
Variablen sind dazu da, um Werte zuzweisen oder die Werte wieder zu verwenden.

Und _SESSION ist so ein Namenarray, das bei richtiger Verwendung der Funktionen wie session_start etc. dauerhaft gespeichert ist und seitenübergreifend verwendet werden kann,
statt am Ende eines PHP-Scripts einfach zu verschwinden.

Zum isset: Das prüft, ob ein Eintrag name im Array vorhanden ist.
Ein isset($note['Geographie']) würde prüfen,
ob schon eine Geographienote im Array ist oder nicht.
 
Sag uns doch einfach mal was du machen willst.

Die Zuweisung selber kannst du ohne IF machen nur prüfen ob die SESSION-Variable bereits einen Wert hat oder nicht das kannst du nur mit IF.
 
Ich möchte erreichen dass wenn die Formulardaten auf index.php eingegeben wurden und dann auf einer anderen Seite weitergeleitet wird die Daten beständig bleiben sollten, nach einem Klick wird der Benutzer auf die Seite Absenden.php welches die Formulardaten gesendet werden ausgewertet.
 
Nach ein Klick wird der Benutzer ... ausgewertet. Hm.

Deine index.php generiert ein Formular.
Der Benutzer gibt was ein und drückt auf Absenden.
absenden.php wird aufgerufen.
Und dort möchtest du die eingegebenen Daten haben.
Richtig?

Das hat mit Sessions gar nichts zu tun.
Siehe _GET und _POST.
Sind auch so Namenarrays.

Das Formular hat eine method bei <form>, da steht get oder post drin.
Außerdem hat jedes Eingabefeld einen Namen, zB. Adresse.
Je nach method findest du den Wert dann in $_GET['Adresse'] oder $_POST['Adresse'].
 
Nach ein Klick wird der Benutzer ... ausgewertet. Hm.

Deine index.php generiert ein Formular.
Der Benutzer gibt was ein und drückt auf Absenden.
absenden.php wird aufgerufen.
Und dort möchtest du die eingegebenen Daten haben.
Richtig?

Das hat mit Sessions gar nichts zu tun.
Siehe _GET und _POST.
Sind auch so Namenarrays.

Das Formular hat eine method bei <form>, da steht get oder post drin.
Außerdem hat jedes Eingabefeld einen Namen, zB. Adresse.
Je nach method findest du den Wert dann in $_GET['Adresse'] oder $_POST['Adresse'].

Nicht korrekt, davor kommt noch eine Seite und dann wird ausgewertet.
Hab das Formular bei normalen Absenden ist alles OK, sobald eine Seite dazwischen ist kommt ein leeres Formular.

Was ich immer noch nicht ganz verstehe ist:

PHP:
<?php
if (!isset($_SESSION['name']))
   {
   $_SESSION['name'] = "Klaus";
   }
?>

Wenn der name, dann name = Klaus?

Warum Klaus? Heißt den jeder Klaus im Namen :D oder wie soll ich das jetzt verstehen?
 
Zuletzt bearbeitet:
Dir ist aber schon klar das Klaus nur ein Beispiel ist und es dabei nicht um den Namen Klaus sondern um die Funktion/den Ablauf geht!

Im Beispiel wird geprüft ob es die SESSION Variable nicht gibt und in diesem Fall wird ihr ein Wert zugewiesen.
 
Am Besten vergisst du diese Beispielzeilen, die scheinen dich zu verwirren

Vllt. einfacher:
PHP:
$meineVariable = 88;
...
$meineVariable = 0;
Was passiert da?
Du überschreibst die Variable mit 0.
Wenn das 88, was vorher drin war, wichtig war:
Pech; das ist jetzt nämlich weg.

Hier könnte man jetzt ja einfach wieder 88 zuweisen,
aber wenn der Wert zB. von einer Benutzereingabe gekommen ist
weißt du den Wert beim Codeschreiben ja noch nicht.
Du hättest den Wert damit endgültig gelöscht.

Beim Verwenden von Session kann man sich nicht immer sicher sein,
welche Seite vor der aktuellen schon irgendwas in Session reingeschrieben hat.
Und wenn man jetzt vorhat, $_SESSION['name'] zu beschreiben
kann man mit isset prüfen, ob schon irgendwann vorher ein name reingeschrieben wurde.
Wenn man will kann man den alten Namen dann noch immer überschreiben,
oder eben anders reagieren, wenn schon was da ist.
...
 

Neue Beiträge

Zurück