php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 09-09-2003, 11:18
skalu
 Member
Links : Onlinestatus : skalu ist offline
Registriert seit: May 2003
Ort: Wien
Beiträge: 362
skalu ist zur Zeit noch ein unbeschriebenes Blatt
skalu eine Nachricht über ICQ schicken
Standard Session Problem

Hi Leute,

ich arbeite gerade an einem Webshop. Mein Problem habe ich nun bei der Registrierung des Benutzers. Das Formular teilt sich auf 3 Dateien auf: "register_step1.php" (Name, Adressangabe und Zahlungsart), "register_step2.php (Lieferadresse)" & "register_step3.php (Zahlungseingaben und Kennwort)".

In "register_step2.php" werden die Eingaben aus der ersten Stufe per POST geladen und dann in der Session registriert. Und genauso dann in der dritten Stufe aus der zweiten Stufe.

Auf der ersten Seite habe ich allerdings eine Checkbox, um die Lieferadresse zu überspringen, wenn Adresse und Lieferadresse gleich sind.

Nun zu meinem Prob: Wenn ich Eingaben im ersten File mache und dann die Checkbox "Lieferadresse gleich Adresse" NICHT aktiviere und somit zur Stufe 2 komme und dann zur Stufe 3 linke, kann ich die Daten aus der Session abrufen. Checke ich hingegen die Checkbox und komme gleich zur 3. Stufe, kann ich nicht mehr auf die Session-Daten zugreifen. Welches Problem könnte das sein? Ich poste mal den Code:

register_step1.php (Nur mal Session-Unregister, damit die Session sauber ist)
PHP-Code:
session_start();

// Unregister
session_unregister("salutation");
session_unregister("firstname");
session_unregister("lastname");
session_unregister("firmname");
session_unregister("street");
session_unregister("housenumber");
session_unregister("method_of_payment");
session_unregister("zipcode");
session_unregister("country");
session_unregister("phone");
session_unregister("fax");
session_unregister("email");
session_unregister("deliveryadress_session");

session_unregister("salutation_delivery");
session_unregister("firstname_delivery");
session_unregister("lastname_delivery");
session_unregister("firmname_delivery");
session_unregister("street_delivery");
session_unregister("housenumber_delivery");
session_unregister("method_of_payment_delivery");
session_unregister("zipcode_delivery");
session_unregister("country_delivery");
session_unregister("phone_delivery");
session_unregister("fax_delivery");
session_unregister("email_delivery");

session_destroy(); 
register_step2.php (Registrierung der Eingaben aus Stufe 1)
PHP-Code:

$salutation 
$_POST["fsalutation"];
$firstname $_POST["ffirstname"];
$lastname $_POST["flastname"];
$firmname $_POST["ffirmname"];
$street $_POST["fstreet"];
$housenumber $_POST["fhousenumber"];
$method_of_payment $_POST["fmethodofpayment"];
$zipcode $_POST["fzipcode"];
$city $_POST["fcity"];
$country $_POST["fcountry"];
$phone $_POST["fphone"];
$fax $_POST["ffax"];
$email $_POST["femail"];
$deliveryadress_checkbox $_POST["deliveryadress_checkbox"];

session_start();
session_register("salutation");
session_register("firstname");
session_register("lastname");
session_register("firmname");
session_register("street");
session_register("housenumber");
session_register("method_of_payment");
session_register("zipcode");
session_register("country");
session_register("phone");
session_register("fax");
session_register("email");
session_register("deliveryadress_checkbox"); 
register_step3.php (Registrierung der Daten aus Stufe 2)
PHP-Code:
$salutation_delivery $_POST["fsalutation_delivery"];
$firstname_delivery $_POST["ffirstname_delivery"];
$lastname_delivery $_POST["flastname_delivery"];
$firmname_delivery $_POST["ffirmname_delivery"];
$street_delivery $_POST["fstreet_delivery"];
$housenumber_delivery $_POST["fhousenumber_delivery"];
$zipcode_delivery $_POST["fzipcode_delivery"];
$city_delivery $_POST["fcity_delivery"];
$country_delivery $_POST["fcountry_delivery"];
$phone_delivery $_POST["fphone_delivery"];
$fax_delivery $_POST["ffax_delivery"];
$email_delivery $_POST["femail_delivery"];

// Register
session_register("salutation_delivery");
session_register("firstname_delivery");
session_register("lastname_delivery");
session_register("firmname_delivery");
session_register("street_delivery");
session_register("housenumber_delivery");
session_register("zipcode_delivery");
session_register("city_delivery");
session_register("country_delivery");
session_register("phone_delivery");
session_register("fax_delivery");
session_register("email_delivery"); 
Die Daten aus der Session rufe ich dann so ab:

PHP-Code:
$method_of_payment $_SESSION["method_of_payment"];
echo 
"Zahlungsart: $method_of_payment"
Muss ich auf jeder Seite eine neue Session starten oder genügt das einmal?

Danke für eure Hilfe!
Greetz Lukas
Mit Zitat antworten
  #2 (permalink)  
Alt 09-09-2003, 11:23
Seccho
 Registrierter Benutzer
Links : Onlinestatus : Seccho ist offline
Registriert seit: May 2003
Ort: kurz vor bzw. nach Zürich gleich links.. bei der brücke..
Beiträge: 544
Seccho ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Meines wissens auf jeder Seite starten

gem manual

Mit session_start() erstellt man eine neue Session oder führt eine schon
bestehende Session fort, deren ID über eine GET-Variable oder ein Cookie
übermittelt wurde.
Im Erfolgsfall gibt die Funktion true zurück.
__________________
_____________
Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!!

Mit Zitat antworten
  #3 (permalink)  
Alt 09-09-2003, 11:24
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

du musst in jeder seite die der benutzer zu gesicht bekommt session_start aufrufen

was dein problem it der checkbox angeht:
wenn die checkbox markiert ist, geht er nicht zu datei 2 und registriert daher auch nix in der session

entweder du sendest das formular aus datei 1 wieder an datei 1 (affenformular), registrierst da alles in der session und machst dann ne weiterleitung an datei 2 oder datei 3
oder du musst in datei 3 auswerten ob die checkbox markiert ist

P.S.
PHP-Code:
unset($_SESSION); 
is das gleiche wie deine ganzenvielen session_unregister und
PHP-Code:
$_SESSION['plz']=$_POST['plz']; 
find ich auch einfacher als deine art der zuweisung
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #4 (permalink)  
Alt 09-09-2003, 13:16
skalu
 Member
Links : Onlinestatus : skalu ist offline
Registriert seit: May 2003
Ort: Wien
Beiträge: 362
skalu ist zur Zeit noch ein unbeschriebenes Blatt
skalu eine Nachricht über ICQ schicken
Standard

@mrhappiness

erstmal danke für deine Hilfe!

Ich habe noch einen kleinen Teil meines Skripts aus Datei 2 vergessen. Also nochmal der ganze Code:

PHP-Code:
$salutation $_POST["fsalutation"];
$firstname $_POST["ffirstname"];
$lastname $_POST["flastname"];
$firmname $_POST["ffirmname"];
$street $_POST["fstreet"];
$housenumber $_POST["fhousenumber"];
$method_of_payment $_POST["fmethodofpayment"];
$zipcode $_POST["fzipcode"];
$city $_POST["fcity"];
$country $_POST["fcountry"];
$phone $_POST["fphone"];
$fax $_POST["ffax"];
$email $_POST["femail"];
$deliveryadress_checkbox $_POST["deliveryadress_checkbox"];

if (
$deliveryadress_checkbox == "1") {
    
$deliveryadress "1";
} else {
    
$deliveryadress "0";
}

$deliveryadress_session $deliveryadress_checkbox;

session_start();

session_register("salutation");
session_register("firstname");
session_register("lastname");
session_register("firmname");
session_register("street");
session_register("housenumber");
session_register("method_of_payment");
session_register("zipcode");
session_register("country");
session_register("phone");
session_register("fax");
session_register("email");
session_register("deliveryadress_session");


if (
$deliveryadress == 1) {
    
header("Location:register_step3.php?visitkey=$visitkey");
    exit;

Also zuerst hole ich mir aus Datei 1 die Eingaben, dann registriere ich alle Eingaben in der Session. Wenn die Checkbox aktiv war und Adresse und Lieferadresse gleich sind, leite ich zu Stufe 3 weiter, wenn nicht, dann lade ich Stufe 2.

Das müsste doch so passen, oder? Denn die Daten werden ja in jedem Fall registriert...

Grüße Lukas
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

PHP Newsletter Script SuperWebMailer ansehen PHP Newsletter Script SuperWebMailer

Die webbasierte PHP Newsletter Software SuperWebMailer ist die optimale Lösung zur Durchführung eines erfolgreichen E-Mail-Marketings. Zur Nutzung des PHP Script-Pakets ist eine eigene Webpräsenz/Server mit PHP 5 oder neuer, MySQL 4 oder neuer und die

29.04.2021 mirko_swm | Kategorie: PHP/ Mail
OXID eShop

Mit OXID eshop bieten wir Ihnen eine modulare und skalierbare Internet Shopping Software mit einem hervorragenden Preis-/Leistungsverhältnis.

29.04.2021 eric.jankowfsky@ | Kategorie: PHP/ Shops
PHP-Login

Die Aufgabenstellung bestand darin, ein einfaches Login-Script zu erstellen, dass schnell und universell auf jeder Webseiten eingebaut werden kann. Der Schwerpunkt lag dabei auf der Entwicklung eines universell einsetzbarem Modul für den Login und zur

05.04.2021 Wallhalla | Kategorie: PHP/ Kundenverwaltung
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:46 Uhr.