Datenbank gestützes Loginscript

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

  • #16
    @Titus: brabbel hier nicht dazwischen

    okay, hab den Fehler glaub schon gefunden. Die user.inc.php ist falsch bzw. das exit() bricht das gesamte Skript ab. War wohl mein Denkfehler. So sollte es gehen:
    Code:
    <? 
    session_start();
    
    if (session_is_registered("myuser") && session_is_registered("mypass")) {
    	$user=$myuser;
    	$password=$mypass;
    	}
    
    include("data_db.inc.php"); 
    $db = mysql_connect("$MySQL_Host","$MySQL_User","$MySQL_Passw") or die (mysql_error()); 
    mysql_select_db("$MySQL_Data"); 
    $res = mysql_query("select * from user where (usr='$user') and (pwd='$passwort')"); 
    $num = mysql_num_rows($res); 
    
    if ($num == 0) { // kein User, zurück zum Login 
    $login_flag=false; 
    	}
    else {
    	
    	// Anmeldung war erfolgreich, jetzt den Krempel als Session speichern, falls noch nicht passiert
    	if (!session_is_registered("myuser") && !session_is_registered("mypass")) {
    		session_register("myuser","mypass");
    		$myuser = $user;
    		$mypass = $password;
    		}
    	
    	$i=0; 
    	$gruppe = mysql_result($res, 0, "gruppe_id"); // welche Gruppe ist der User 
    	$res2 = mysql_query("select * from usergruppe where (gruppe_id = $gruppe)"); // Gruppe selektieren 
    	$rechte=mysql_fetch_array($res2); 
    	$login_flag=true;
    	}
    ?>
    das exit() ist rausgefallen, dafür gibts ein else-Anweisung

    Kommentar


    • #17
      kommt trotzdem die Felhermeldung!!!
      *winks*
      Gilbert
      ------------------------------------------------
      Hilfe für eine Vielzahl von Problemen!!!
      http://www.1st-rootserver.de/

      Kommentar


      • #18
        welche Fehlermeldung? wenn error_reporting dann mit (1) -> Warnings dürfen dann nicht mehr kommen. Nur noch Errors. Und das die beiden Variablen beim erstenmal nicht da sind, ist ja klar.
        Aber gibt es denn jetzt eine Ausgabe?

        Kommentar


        • #19
          du mußt aber auch dann die Schreibweise von $password beachten in der Zeile:

          $res = mysql_query("select * from user where (usr='$user') and (pwd='$passwort')");

          da solltest du $password benutzen, sonst kannst du dich nie anmelden.

          Kommentar


          • #20
            meine nav.php hat folgendes aussehen:

            <?php
            error_reporting(255);
            include("user.inc.php");

            if ($login_flag = false)
            {
            echo "Sie sind angemeldet.";
            echo "$user";
            }
            else
            {
            echo "Sie sind nicht angemeldet.";
            echo "$user";
            }
            ?>
            die fehler Meldung beim ersten aufruf ist:

            Warning: Undefined variable: user in c:\apache\htdocs\login\user.inc.php on line 12

            Warning: Undefined variable: passwort in c:\apache\htdocs\login\user.inc.php on line 12
            Sie sind nicht angemeldet.

            nach dem anmelden kommt:

            Sie sind nicht angemeldet.test

            habe die Variable $password auf passwort und gestellt.
            *winks*
            Gilbert
            ------------------------------------------------
            Hilfe für eine Vielzahl von Problemen!!!
            http://www.1st-rootserver.de/

            Kommentar


            • #21
              hab den Fehler in der nav.php gefunden.

              <?php
              error_reporting(255);
              include("user.inc.php");

              if ($login_flag = ('true'))
              {
              echo "Sie sind nicht angemeldet.";
              echo "$user";
              }
              else
              {
              echo "Sie sind angemeldet.";
              echo "$user";
              }
              ?>

              jetzt müßen wir nur die Fehlermeldung beim ersten Aufruf weg bekommen.
              *winks*
              Gilbert
              ------------------------------------------------
              Hilfe für eine Vielzahl von Problemen!!!
              http://www.1st-rootserver.de/

              Kommentar


              • #22
                hm, wenn die Warnung sagt, daß die Variable $passwort nicht da ist, solltest du mal alles auf $password überprüfen. auch im formular muß das Feld dann so heissen, oder eben alles $passwort, ist ja egal, aber eben alle gleich.

                Und immerhin kommt schon mal eine Ausgabe, gell?!

                Ich düse jetzt ab ins Wochenende. Falls du dich super beeilst, lese ich noch deine Antwort.

                Ciao

                Kommentar


                • #23
                  hä? habe gerade deine letzte Änderung gesehen. Wie kann denn das funktionieren? Du weist ja mit einem Gleichzeichen der Variable $login_flag immer den Wert "true" als Zeichenkette zu.

                  P.S.: für die Warnungen lösch doch bitte endlich die error_reporting-Zeile raus!!!!

                  Kommentar


                  • #24
                    Irrtum,

                    ich habe die error sache raus genommen, jetzt kommt zwar keine Fehlermeldung am Anfgang aber die nav.php springt nicht auf "Sie sind angemeldet.". Was jetzt?
                    *winks*
                    Gilbert
                    ------------------------------------------------
                    Hilfe für eine Vielzahl von Problemen!!!
                    http://www.1st-rootserver.de/

                    Kommentar


                    • #25
                      wie prüfe ich die Variable $login_flag auf Ihren zustand?
                      *winks*
                      Gilbert
                      ------------------------------------------------
                      Hilfe für eine Vielzahl von Problemen!!!
                      http://www.1st-rootserver.de/

                      Kommentar


                      • #26
                        if ($login_flag==true) blabala
                        if ($login_flag==false) blabalba
                        if (!$login_flag) blablabla // wie false

                        oder, wenn du lieber String speichern willst als Ergebnis und nicht true und false in user.inc.php zuweist:

                        if($login_flag=="kein Login") echo "nix login";
                        if($login_flag!="Login okay") echo "nix login"; // != bedeute ungleich

                        so, jetzt hast du einige Varianten, damitz müßtest du es hinkriegen. Bin jetzt aber wirklich weg. Ciao

                        Kommentar


                        • #27
                          ich kriegs nicht hin.

                          ich bekomme kein wert von der user.inc.php an die nav.php zuzrück geliefert über die anmeldung.

                          die nav.php sieht jetzt so aus:
                          <?php
                          include("user.inc.php");
                          // include("func.inc.php");
                          if ($login_flag==true)
                          {
                          echo "true";
                          }
                          else
                          {
                          if ($login_flag==false)
                          {
                          echo "false";
                          }
                          }
                          ?>
                          die anzeige bleibt immer auf false ob angemeldet oder nicht.
                          *winks*
                          Gilbert
                          ------------------------------------------------
                          Hilfe für eine Vielzahl von Problemen!!!
                          http://www.1st-rootserver.de/

                          Kommentar


                          • #28
                            Das ist die Fehlermeldung die ich nach einigen Änderungen jetzt bekomme:

                            Sie sind angemeldet.
                            Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\login\user.inc.php on line 27

                            Warning: Supplied argument is not a valid MySQL result resource in c:\apache\htdocs\login\user.inc.php on line 29
                            login_flag ist 1

                            Sie sind ein geloggt

                            Die user.inc.php sieht jetzt so aus:
                            <?
                            session_start();

                            if (session_is_registered("myuser") && session_is_registered("mypass")) {
                            $user=$myuser;
                            $passwort=$mypass;
                            }

                            include("data_db.inc.php");
                            $db = mysql_connect("$MySQL_Host","$MySQL_User","$MySQL_Passw") or die (mysql_error());
                            mysql_select_db("$MySQL_Data");
                            $res = mysql_query("select * from user where (usr='$user') and (pwd='$passwort')");
                            $num = mysql_num_rows($res);

                            if ($num == 0) { // kein User, zurück zum Login
                            $login_flag=false;
                            }
                            else {
                            echo "Sie sind angemeldet.";
                            // Anmeldung war erfolgreich, jetzt den Krempel als Session speichern, falls noch nicht passiert
                            if (!session_is_registered("myuser") && !session_is_registered("mypass")) {
                            session_register("myuser","mypass");
                            $myuser = $user;
                            $mypass = $passwort;
                            }
                            $i=0;
                            $gruppe = mysql_result($result, 0, "$gruppe_id"); // welche Gruppe ist der User
                            $result = mysql_query("select * from usergruppe where (gruppe_id = $gruppe)"); // Gruppe selektieren
                            $rechte = mysql_fetch_array($result);
                            $login_flag = true;
                            }
                            ?>

                            Die nav.php sieht jetzt so aus:
                            <?php
                            include("user.inc.php");
                            // include("func.inc.php");
                            include("sess.inc.php");
                            vari();

                            echo "login_flag ist $login_flag <br><br>";
                            if ($login_flag==true)
                            echo "Sie sind ein geloggt";
                            else
                            echo "Sie sind noch nicht angemeldet";
                            ?>

                            Was ist hier noch verkehrt??

                            cu
                            Gilbert
                            *winks*
                            Gilbert
                            ------------------------------------------------
                            Hilfe für eine Vielzahl von Problemen!!!
                            http://www.1st-rootserver.de/

                            Kommentar


                            • #29
                              Moin,

                              das Auslesen der Rechte am Ende von user.inc.php funktioniert nicht:

                              $gruppe = mysql_result($result, 0, "$gruppe_id"); // welche Gruppe ist der User

                              du mußt da entweder den richtigen Namen der Spalte reinschreiben oder in $gruppe_id muß der Name als String hinterlegt sein. Die Variable wird vorher aber nirgends gesetzt. Deshalb klappt der Query nicht und der nachfolgende Zugriff auf den Result (den es ja nicht gibt, da fehlgeschlagen) verursacht den zweiten Fehler.

                              Wenn die Spalte "gruppen_id" heissen sollte, mußt du nur noch das $ wegnehmen. Ansonsten richtigen Namen hinschreiben.

                              Kommentar


                              • #30
                                Morgen BrainBug,

                                Die Tabelle heißt usergruppe, die Spalte heißt
                                gruppe_id.

                                In der Spalte gruppe_id habe ich 7 Eintragungen, von 1-7.

                                Ich habe in der user.inc.php das $ Zeichen weg genommen und trotzdem kommt die selbe Fehlermeldung.

                                cu
                                Gilbert
                                *winks*
                                Gilbert
                                ------------------------------------------------
                                Hilfe für eine Vielzahl von Problemen!!!
                                http://www.1st-rootserver.de/

                                Kommentar

                                Lädt...
                                X