Kundenlogin

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

  • Kundenlogin

    Hallo Leute,

    ich brauche da mal ein paar Tips.

    Folgendes:
    In meinem Online-Shop müssen die Kunden sich registrieren und dann einloggen um was im Shop bestellen zu können. Nun tritt beim Einloggen
    aber anscheinend hin und wieder ein Fehler auf.

    Die Kunden geben Ihre Emailadresse und das Passwort ein und klicken dann auf "Absenden". Statt danach die Bezahlauswahl erscheint, kommt dann immer wieder die Loginseite.

    Da ich den Fehler nicht nachreproduzieren kann, dachte ich am Anfang das es an den Kunden lag. Nun heuft sich aber der Fehler anscheinend, jedenfalls melden sich immer mehr Kunden bei denen es auftritt (ca. 1-2 von 100).

    So zum login:

    Im Login-template hab ich folgendes:

    PHP-Code:
     <form name="formularLog" method="post" action="/themes/user/index.php?action=bs_login&von=warenkorb"> 
    <input type="text" name="email" value="" size="5" class="inputLogin">
    <input type="password" name="pass" value="" size="5" class="inputLogin">
    <INPUT name="formularLog" class="buttonLog" type="submit" value="<?=$l_anmelden?>">
    in der user/index.php wird die user.php includet

    PHP-Code:
    include($dateiPfad "themes/user/user.php"); 
    in der befinden sich nur if abfragen

    z.B.
    PHP-Code:
    if($action == "bs_login")
    {
        include(
    $dateiPfad "themes/user/bs_login.inc.php");

    die bs_login.inc.php die abfrage nach der email und passwort und wenn beides vorhanden ist wird es in der session regristriert und zum nächsten formular weitergeleitet, theoretisch

    PHP-Code:
    <?
        $abfrage = "SELECT email,password FROM " . $kunden . " where email = '$email'";
        $ergebnis = mysql_query($abfrage);
        $row = mysql_fetch_object($ergebnis);
        if(($email != "") || ($pass != ""))
        {
            #echo "email = " . $email . "<br>emailDB = " . $row->email . "<br><br>";
            #echo "pass = " . $pass . "<br>passDB = " . $row->passwd . "<br><br>";
            
            if((strtolower($email) == strtolower($row->email)) && ($pass == $row->password))
            {
                $_SESSION['com'] = "true";
                $_SESSION['mail'] = $email;
                if($von == "warenkorb")
                {
                include($dateiPfad . "themes/bestellen/bestellen.php");
                }
                else if($von == "wunschzettel")
                {
                include($dateiPfad . "themes/wunschzettel/wunschzettel.php");
                }
                else
                {
                include($dateiPfad . "themes/user/mydaten.inc.php");
                }
            }
            else
            {
                // Template
                require($dateiPfad . "templates/standard/user/bs_login_fehler.tpl");
            }
        }
        else
        {
            // Template
            require($dateiPfad . "templates/standard/user/bs_login_fehler2.tpl");
        }
    ?>
    Nun zu meiner frage, ist das ogin zu aufwendig so das php manchmal abbricht? wenn müsste doch eigentlich ne Fehlermeldung oder eine weisse Seite dann kommen statt wieder das login-template.

    bei einem kunden weiss ich das er als BS win2k mit dem IE6.0 verwendet hatte mit aktivierten cookies, angeblich, von den anderen Kunden weiss ich es nicht.
    mfg
    marc75

    <Platz für anderes>

  • #2
    ich vermisse da grundlegende sache wie
    PHP-Code:
    session_start(); 
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      wird in der bestellen/index.php was das login-template aufruft und in der user/index.php ganz oben als erstes includet.

      PHP-Code:
      include($_SERVER['DOCUMENT_ROOT'] . "/includes/session_start.inc.php"); 
      darin befindet sich folgendes:

      PHP-Code:
      <?
      session_name("s");

      $spiders = array("appie",
          "architext",
          "bjaaland",
          "gekürzt sind ca. 300 Einträge",
          "robot",
          "crawl"); 
      $from_spider=FALSE; 
      foreach($spiders as $Val) 

      if (eregi($Val, $_SERVER["HTTP_USER_AGENT"])) 

      $from_spider=TRUE; 
      break; 



      // Session 
      if(!$from_spider) 
      session_start();


      ?>
      PS: würde session_start fehlen würde der login jedesmal nicht gehen, behaupte ich jetzt einfach mal.
      mfg
      marc75

      <Platz für anderes>

      Kommentar


      • #4
        könnte es auch am spider array liegen, das er zu gross ist?
        mfg
        marc75

        <Platz für anderes>

        Kommentar


        • #5
          könnte der Loginfehler auch von den action variablen kommen? das eventl. nicht alle Browser das Unterstützen im form-tag?


          ?action=bs_login&von=warenkorb
          PHP-Code:
          <form name="formularLog" method="post" action="/themes/user/index.php?action=bs_login&von=warenkorb"
          mfg
          marc75

          <Platz für anderes>

          Kommentar


          • #6
            parameter in der action sind höchst unsauber. könnte durchaus sein, dass da browser nicht mittmachen.

            lösung-> hiddenfields.

            Kommentar


            • #7
              der ie machts bestimmt mit aber es ist unsauber
              wie tobiaz schon sacht in hidden felder is das sauberste und beste
              mfg

              Kommentar


              • #8
                ok, werde das mal abändern, und gleich mal schauen wo der progger das noch so gemacht hat.

                NEU:
                <form name="formularLog" method="post" action="/themes/user/index.php">
                <INPUT type="hidden" name="action" value="bs_login">
                <INPUT type="hidden" name="von" value="warenkorb">
                ...usw.
                mfg
                marc75

                <Platz für anderes>

                Kommentar


                • #9
                  ok, werde das mal abändern, und gleich mal schauen wo der progger das noch so gemacht hat.
                  spätestens jetzt siehste, welche vorteile man hat, wenn man selber programmieren kann.

                  Kommentar


                  • #10
                    das ist wohl wahr,


                    hab jetzt knapp 10 dateien angepasst, wobei ich feststellen musste das der progger manchmal sogar hiddenfelder genutzt hat. Nach welchem Lottoprinzip er dabei vorgegangen ist, konnte ich allerdings nicht feststellen.
                    mfg
                    marc75

                    <Platz für anderes>

                    Kommentar


                    • #11
                      scheint wohl doch was mit den sessions zu tun zu haben. Hab jetzt ein Kunden gefunden wo das Problem auftaucht und er mir das besser beschreiben konnte.

                      Der Kunde selbst benutzt den IE5.5, vermute mal das da irgendwo im IE ein Bug ist, so das er mittendrin auf einmal keine Cookies mehr akzeptiert.

                      Denn der Fehler tritt ja nicht bei allen auf.


                      gibts eine möglichkeit die Sessionid per hiddenfeld generell (egal ob cookies an oder aus) bei der Anmeldung durchzuschleifen?

                      Beispiel:
                      PHP-Code:
                      <form name="formularLog" method="post" action="/themes/user/index.php">
                      <
                      INPUT type="hidden" name="action" value="bs_login">
                      <
                      INPUT type="hidden" name="von" value="warenkorb">
                      <
                      INPUT type="hidden" name="session" value="sessionid"
                      wobei der form-tag in einer tpl datei steht. also müsste ich die session vorher im php - script definieren oder?
                      mfg
                      marc75

                      <Platz für anderes>

                      Kommentar


                      • #12
                        PHP-Code:
                        <input type="hidden" name="<?php echo session_name(); ?>" value="<?php echo session_id(); ?>">
                        mfg

                        Kommentar


                        • #13
                          hab jetzt knapp 10 dateien angepasst, wobei ich feststellen musste das der progger manchmal sogar hiddenfelder genutzt hat. Nach welchem Lottoprinzip er dabei vorgegangen ist, konnte ich allerdings nicht feststellen.
                          vielleicht hättest du dir da mal einen anderen Shop aussuchen sollen...
                          heute bug ich, morgen browse ich...

                          Kommentar


                          • #14
                            Original geschrieben von Trashar
                            PHP-Code:
                            <input type="hidden" name="<?php echo session_name(); ?>" value="<?php echo session_id(); ?>">
                            mfg
                            ok danke das geht.

                            @frezno

                            da ist wohl was wahres dran, nur leider zu spät, und ist nicht mal die erste Fehlanschaffung meines Lebens.



                            noch ne frage am Rande, php erzeugt ja eigentlich selbstständig die sessions in url und bei formtags in hiddenfelder, wenn trans_sid aktiv ist und cookies deaktiviert sind.

                            nur bei mir erzeugt er solche hiddenfelder:

                            Beispiel
                            PHP-Code:
                             <input type="hidden" name="phpsessid" value="aab19a41251aef674e9a9fd83f23460e" /> 
                            da macht php einfach ein / vorm > das ist ja eigentlich nicht richtig oder hab ich da was verpasst?
                            mfg
                            marc75

                            <Platz für anderes>

                            Kommentar


                            • #15
                              Oh, du lebst anscheinend im Mittelalter. PHP schreibt seinen HTML-Code (im gegensatz zu dir) seit längerem XHTML-Konform!

                              Kommentar

                              Lädt...
                              X