[PHP5] Problem mit LogIn-Script

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

  • [PHP5] Problem mit LogIn-Script

    Hallo zusammen,

    habe ein kleines Login-Script geschrieben und es funktioniert (beinahe ).
    Habe nur an einer Stelle ein Problem. Wenn sich ein User eingelogt hat, wird er auf eine Seite mit diversen Links geleitet. Wenn er allerdings einen dieser Links aktiviert, springt er zurück zum LogIn. Hier ist mal mein Quellcode:
    PHP-Code:
    session_start()
    ...

    IF (!ISSET(
    $_POST['Nick']))
     {
     }
    ELSE
     {
     
    $Nick $_SESSION['Nick'] = $_POST['Nick'];
     
    $Pass $_SESSION['Pass'] = $_POST['Pass'];
     }

    IF (!ISSET(
    $_SESSION['Nick']))
     {
     INCLUDE  
    "$Data/Security/LogIn.php";
     }
    ELSE
     {
     
    $SQL_AI = ("SELECT * FROM $Tab_AI WHERE NickName = '$Nick';");
     
    $RESULT_AI mysql_query($SQL_AI) OR die(mysql_error());
     WHILE (
    $ROW_AI mysql_fetch_array($RESULT_AI))
      {
      
    $CheckNick $ROW_AI['NickName'];
      
    $CheckPass $ROW_AI['Passwort'];
      }
      IF (
    $Nick $CheckNick AND $Pass $CheckPass)
       {
    ... 
    Kann mir jemand sagen, wo mein Fehler liegt?
    Zuletzt geändert von Melchor; 26.02.2005, 12:44.

  • #2
    Wie prüfst du denn ob ein User bereits eingeloggt ist ?
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Das prüfe ich doch durch die letzte If Schleife

      PHP-Code:
      IF($Nick $CheckNick AND $Pass $CheckPass
      oder?

      Gruss

      Marcus
      Zuletzt geändert von Melchor; 26.02.2005, 12:49.

      Kommentar


      • #4
        Das prüfe ich doch durch die letzte If Schleife
        Aber auf der Zielseite (die Seite die der User durch den Link aufruft) musst du das ja auch irgendwie testen, um festzustellen ob der User durch den Login auf die Seite gekommen ist oder direkt gelinkt hat.

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Die URL wird bei der Aktivierung eins Links nur erweitert. Also nachdem man sich eingelogt hat, sieht die URL so aus:

          index.php?Portal=2

          Dann kann man halt die verschiedenen Links auswählen. Die URL würde dann einfach erweitert um:

          index.php?Portal=2Bereich= (zB 15)

          Dadurch wird das Script mit der Prüfung ja auch durchlaufen.

          Sicher muss ich bei den Linkseiten noch eine Prüfung einbauen, damit man sich nicht direkt darauf einlinken kann. Aber ich denke nicht das dass mein momentanes Problem lösen würde.

          Bei den IF-Abfragen wird ja geprüft ob es eine Session gibt und wenn ja ob der Inhalt dieser Session mit dem entsprechenden Datensatz aus der Datenbank übereinstimmt. Wenn das zutrifft kommt der User in den geschützten Bereich.

          Soblad nun allerding ein Link aktiviert wird, ist meine Session wieder leer.


          Gruss

          Marcus
          Zuletzt geändert von Melchor; 26.02.2005, 12:53.

          Kommentar


          • #6
            Erst lesen...

            Lass dir doch einfach mal überall den Inhalt der Session ausgeben!
            PHP-Code:
            print_r($_SESSION); 
            hopka.net!

            Kommentar


            • #7
              Hallo Hopka,

              erstmal sorry bin neu hier und kenn mich noch nicht so aus. Hoffe ich habs jetzt richtig gemacht.

              Habe mir mal den Inhalt der Session anzeigen lassen. Vor dem LogIn ist das Arry leer, ist aber auch klar. Nachdem man sich eingelogt hat steht im Arry folgendes:

              [COLOR=darkblue]Array ( [Nick] => Melchor [Pass] => test )[/COLOR]

              Das stimmt auch mit dem Überein was in der Db steht. Nach der Linkaktivierung ist das Arry allerdings wieder leer. Aber da es sich ja um eine Session handelt dürfte das doch garnicht sein, oder?

              Kommentar


              • #8
                Original geschrieben von Melchor
                Aber da es sich ja um eine Session handelt dürfte das doch garnicht sein, oder?
                wieso denn nicht?

                session_start() ist aber schon auf allen seiten integriert?

                und du schreibst die $_GET-daten auch in $_SESSION rein?
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Juhu es funktioniert ,

                  war ein dummer fehler von mir. Hatte im Hauptscript ganz unten den Befehl

                  session_destroy();

                  eingegeben. Dadurch wurde die Session jedesmal Zerstört. Herzlichen Dank an euch alle. Nur noch eine Frage:

                  Ist dieses Login GUT oder eh SCHLECHT? Wenn es schlecht sein sollte, warum?

                  Kommentar


                  • #10
                    schaue dir happy's tut an. dann weisst du es ....
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar

                    Lädt...
                    X