Session startet nicht!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Session startet nicht!

    Hallo zusammen,
    nach vielem Suchen im Forum und viel gegoogle muß ich jetzt doch mal posten.

    Es geht sich um ein Warenkorbsystem mit Sessions.

    Ich habe eine Zulieferfirma, die ein Shop-in-Shop System anbietet.
    Deren Link baue ich in meiner Seite ein und komme in deren Shop.
    Nun kann ich mir dort Artikel aussuchen und in DEREN Warenkorb legen.
    Drücke ich dort auf Bestellen, werden die Daten auf meine Seite an die Datei wk_import.php per $_POST übergeben.

    Das klappt auch prima.

    In der wk_import.php zerlege ich nun das $_POST-array und sortiere die Daten in ein neues mehrdimensionales Array.

    Funzt auch prima.

    Nun mein Problem:
    Das neue Array und ein paar Eckdaten will ich in einer Session speichern, aber es wird keine Session erzeugt!

    wk_import.php:
    PHP-Code:
    session_start ();  # Session starten

    # $_POST Daten verarbeiten ----------------------------------------------------------------

    if ($_POST) {
           while(list(
    $name$werte) = each($_POST)) {
               if (
    $name != "SessionID" OR $name != "Sender"){
                         if (
    substr($name, -1) == $i AND substr($name03) != "EAN"){
    # Mehrdimensionales Array erzeugen -------------------------------------------------------
                             
    $ware[substr($name, -1)][substr($name0, -1)]=$werte;
                            } else if (
    substr($name, -1) > $i) {
                               ++
    $i;
                            }
                         }
                   }
        } else {
           echo 
    "Es kommt nichts an." ;
        }

    # Session variablen speichern---------------------------------------------------------------- 
        
    $_SESSION["ware"] = $ware;
        
    $_SESSION['MWSt'] = 0.16;

    # Weiterleitung an meinen eigenen Warenkorb -------------------------------------------
        
    header("Location: der_warenkorb.php"); 
    Nach der Weiterleitung ist jedoch keine Session erzeugt.

    Anders, wenn ich direkt die wk_import.php aufrufe.
    Dann wird zwar kein Array erzeugt (kommt ja auch kein $_POST gesendet),
    aber die Session mit den Variablen ware= und MWSt=0.16 werden erzeugt.

    Fazit:
    Es muß doch was mit dem $_POST-array zutuen haben, das die Session nicht erzeugt wird.

    Hoffentlich konnte ich mein Problem verständlich rüberbringen und bedanke mich schonmal
    für hilfreiche Antworten.

    Axel F.

  • #2
    Wenn deren Script deine wk_import.php aufruft, wird garantiert auch eine Session erzeugt. Aber den Session-Cookie empfängt eben deren Script (und kann damit u.U. nichts anfangen).

    Mach dir klar, dass das Script dieses Anbieters auch ein User ist, genau wie du. Wenn du also die Session dieses 'Users' sehen könntest, dann könnte auch jeder dahergelaufene deine Session sehen. Und klauen!

    Ob überhaupt eine Session erzeugt wird, kannst du nur feststellen, wenn du den session_save_path beobachtest oder deine wk_import.php so änderst, dass sie die Sessiondaten in eine Textdatei schreibt, wo du sie kontrollieren kannst.
    Zuletzt geändert von onemorenerd; 12.02.2006, 12:33.

    Kommentar


    • #3
      hallo onemorenerd,
      also der shop-in-shop des anderen Anbieters erzeugt auf jedenfall
      einen Cookie, das sehe ich im Firefox unter "Cookies anzeigen".

      Aber ich verstehen nicht ganz, warum ich dann nicht in der wk_import.php meine eigenen Session erzeugen kann.

      Wenn ich die ganze if($_Post)-Schleife auslasse, dann wird ja eine
      Session erzeugt.

      Axel F.

      Kommentar


      • #4
        Hab ich das richtig verstanden?

        Der Shopanbieter sendet Dir die Daten per POST an die Datei import.php auf Deinem Server?

        Wenn ja - gib doch mal den Inhalt von $_POST aus.

        Hast denn errror_reporting (E_ALL); drin?

        Kommentar


        • #5
          Hallo Koala,
          Ja, du hast es richtig verstanden.

          Wenn ich das $Post auslese, kommt dies raus:

          SessionID =>
          Sender => Anbieter
          EAN1 =>
          Artikel1 => DKL F06 5141
          Preis1 => 102
          Menge1 => 1
          Bezeichnung1 => Verdunkelungs-Rollo Paris Pink Thermo

          Damit kann ich eigentlich auch gut arbeiten, sprich, ich kann Artikel,
          Preis, Menge, Bezeichnung in ein array packen($ware), welches ich ja in meine Session packen will.

          Was mich etwas stutzig macht ist "SessionID => ".
          Dieses wird mit dem $_POST übergeben.
          Könnte dies das erzeugen meiner Session verhindern?

          Axel F.

          Kommentar


          • #6
            ne - das glaub ich nicht. Diese Session_ID betrifft doch das Verhältnis irgendeines Käufers der auf Deiner Seite ist zum Shop-Server.

            Wie erfährst Du, daß Deine import.php aufgerufen wurde?

            Kommentar


            • #7
              das sehe ich in der adressleiste.

              ich starte mit http://www.meineseite.de/

              klicke dan auf den link für den fremdanbieter shop.

              in der adressleiste steht nun die URL die mir der anbieter genannt hat.
              ach ja, ich habe natürlich mit dem anderen anbieter gemailt und ihm geschrieben, das die daten an di wk_imort.php gesendet werden sollen.

              wenn ich dann auf bestellen im warenkorb des anbieters klicke
              geht es wieder auf meinen server.
              http://www.meineseite.de/wk_import.php

              ich habe aber zur besseren übersicht das
              header("Location: der_warenkorb.php"); raus genommen.

              Kommentar


              • #8
                ich versuchs mir noch mal klar zu machen:

                1. ein Kunde kauft über Deine Seite bei einem Shop ein

                2. der Kunde hat ne Session beim Shop.

                3. der Shop schickt die Daten an Deinen Server.

                4. Du kannst die Daten speichern, aber Du kannst Sie nicht dem Kunden anzeigen, da ja nicht er sondern der Shop die import.php ausführen läßt. Du kannst ihm ne mail mit den Daten schicken, wenn Du die email-Adresse hast.


                Deine import.php kann ich übrigens nicht aufrufen: CGI Error - file not found.
                Zuletzt geändert von Koala; 12.02.2006, 13:36.

                Kommentar


                • #9
                  sooo,
                  ich habe jetzt meinem script noch etwas zur kontrolle angehangen:
                  PHP-Code:
                  while (list($key,$value) = each($_SESSION))
                        
                  # {
                         #    echo $key." = ".$value."<br>";
                         #} 
                  das zeigt mir schonmal an, das es wohl doch eine session gibt:

                  ware => array()
                  MWSt => 0.16

                  So soll es ja auch sein, aber wenn ich
                  header("Location: der_warenkorb.php");
                  wieder aktiviere, ist die session auf der_warenkorb.php
                  wieder leer.
                  diese seite starte natürlich mit session_start();

                  Kommentar


                  • #10
                    hast Du meinen letzten Beitrag gelesen?

                    Kommentar


                    • #11
                      sorry koala,
                      das waren nur beispiel url's.

                      geh mal hier drauf:
                      den link habe ich erstmal rausgenommen!!!

                      is aber noch baustelle!!!
                      von der seite aus klickst du links auf SONNENSHP Velux,
                      dann kommst du in das Shop-in-Shop von Velux.
                      wenn du dort was in den warenkorb legst und dann auf bestellen
                      klickst,
                      kommst du wieder auf meine seite.
                      Zuletzt geändert von Axel F.; 12.02.2006, 14:33.

                      Kommentar


                      • #12
                        Wenn ICH jetzt zum Beispiel auf Deiner Website auf nen Shoplink klicke, dann kriegst DU (Dein Server) erst mal davon nichts mit, weil ich die Seite ja nicht bei Dir sondern bei dem Shop anfordere.

                        Wenn Dir der Shopserver dann die Daten per POST schickt, wie willst Du (Dein Server) dann rauskriegen, an wen Du das Ergebnis schicken sollst?

                        Nicht der Kunde startet die import.php, sondern der Shop.
                        Zuletzt geändert von Koala; 12.02.2006, 13:59.

                        Kommentar


                        • #13
                          die ganze geschichte ist ja nur, damit der kunde artikel auswählen kann.
                          die eigentliche bestellung findet ja wieder auf meiner seite statt.
                          der kunde gibt auf meiner seite seine daten an und bestellt dann.

                          das problem ist doch nur, das ich in der wk_import.php eine session erzeuge, die wenn ich über location die seite wechsel keine daten mehr enthält.

                          so als wenn beim verlassen der wk_import.php ein session_destroy ausgeführt würde.
                          Zuletzt geändert von Axel F.; 12.02.2006, 14:00.

                          Kommentar


                          • #14
                            Wenn alle Shops auf Deinem Server liegen ist das ja auch kein Problem.

                            Kommentar


                            • #15
                              nun ja, leider liegt der velux-shop nicht auf meinem server.
                              aber ich verstehe das anscheinend noch nicht so ganz.
                              die wk_import.php liegt ja auf meinem server.
                              wieso wird die session die ich dort erzeuge nicht aufrecht erhalten,
                              wenn ich die seite wechsel?

                              Kommentar

                              Lädt...
                              X