Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP mysql problem beim login.

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

  • PHP mysql problem beim login.

    Hallo, habe ein Problem wie immer. :wink:

    Code
    <?php session_start ();
    include("db.php");

    // Es werden alle Daten des Users aus der Tabelle ausgewählt, voher wird der Benutzername und das Passwort noch überprüft
    $abfrage = "SELECT nick FROM benutzerdaten WHERE (username like '".$_REQUEST["nick"]."') AND (password = '".$_REQUEST["kennwort"]."') LIMIT 1";
    $ergebnis = mysql_query ($abfrage);

    // Wenn das einloggen erfolgreich war, werden die Sessionvariablen erstellt
    if (mysql_num_rows ($ergebnis) > 0)
    {
    // Anschliessend wird zur Internen Seite weitergeleitet
    header ("Location: false.php");
    }
    else
    {
    // Sollte das einloggen nicht erfolgreich gewesen sein, wird wieder auf das Formular zum einloggen weitergeleitet.
    header ("Location: false.php");
    }
    ?>


    und ich bekomme diesen fehler?

    Warning: Supplied argument is not a valid MySQL result resource in /var/www/pages/login.php on line 9

    Warning: Cannot add header information - headers already sent by (output started at /var/www/pages/login.php:9) in /var/www/pages/login.php on line 17

    Würde mich auf eine Antwort freuen.

    Dank im Voraus.
    Ob eine Sache gelingt, erfährst du nicht, wenn du darüber nachdenkst, sondern wenn du es ausprobierst.


  • #2
    mysql_error() ?

    Kommentar


    • #3
      mysql_num_rows ($ergebnis)

      diese funktion hat hals übergabeparameter keine abfrage sondern eine mysql resource ->

      entweder garnichts
      oder die variable von mysql_connect

      Kommentar


      • #4
        was ist wenn ich das so mache...

        if ($ergebnis > 0)

        ????
        höre mir jeden vorschlag gern an. :wink:
        Ob eine Sache gelingt, erfährst du nicht, wenn du darüber nachdenkst, sondern wenn du es ausprobierst.

        Kommentar


        • #5
          das mit mysql_num_rows($ergebnis) ist schon ok. Ergänzu mal den Code folgendermassen und sage uns, was "echo $abfrage" ausgibt:
          PHP-Code:
          <?php 
          session_start 
          ();
          include(
          "db.php");

          // Es werden alle Daten des Users aus der Tabelle ausgewählt, voher wird der Benutzername und das Passwort noch überprüft
          $abfrage "SELECT nick 
               FROM benutzerdaten 
               WHERE username = '" 
          $_REQUEST["nick"] . "' 
               AND password = '" 
          $_REQUEST["kennwort"] . "'
               LIMIT 1"
          ;
          echo 
          "$abfrage
          "
          ;  // Zum Testen
          $ergebnis mysql_query ($abfrage) or die(msql_error());
          // Wenn das einloggen erfolgreich war, werden die Sessionvariablen erstellt
          if (mysql_num_rows($ergebnis) > 0))
          {
              
          // Anschliessend wird zur Internen Seite weitergeleitet
              
          header ("Location: false.php");
          }
          else
          {
              
          // Sollte das einloggen nicht erfolgreich gewesen sein, wird wieder auf das Formular zum einloggen weitergeleitet.
              
          header ("Location: false.php");
          }
          ?>
          PS. Ist die gleiche Umleitung für if- und else-Teil beabsichtigt?
          Gruss
          L

          Kommentar


          • #6
            nein das war ein Fehler von mir, das war mein alter code.

            also zu info ergebniss ist:

            SELECT nick FROM usert WHERE (nick like '') AND (passwort = '') LIMIT 1

            Warning: Cannot add header information - headers already sent by (output started at /var/www/pages/login.php:6) in /var/www/pages/login.php on line 18


            bin etwas durcheinander.
            nick like " :wink:
            Ob eine Sache gelingt, erfährst du nicht, wenn du darüber nachdenkst, sondern wenn du es ausprobierst.

            Kommentar


            • #7
              Also hast du jetzt einen Header-Fehler oder einen MySQL-Fehler? Und die Klammern in
              Code:
              SELECT nick FROM usert WHERE (nick like '') AND (passwort = '') LIMIT 1
              sind überflüssig und like ohne Wildcards macht auch keinen Sinn:
              Code:
              SELECT nick 
                  FROM usert 
                  WHERE nick = '' 
                  AND passwort = '' 
                  LIMIT 1
              Aber das hat ja nichts mit dem Header-Fehler zu tun.
              Gruss
              L

              Kommentar


              • #8
                PHP-Code:
                <?php
                  $check 
                TRUE;
                //kannst auch das if dann weglassen ^^
                  
                if ($check)
                  {

                    
                $query "SELECT * FROM usert WHERE nick='".$user_name."'";

                //user_name hast du irgendwo eingeben lassen

                    
                $result mysql_query($query$connect);
                    
                $result mysql_fetch_array($result);

                    
                $uid $result['nick'];
                    
                $_SESSION['user_name']= $uid;

                //kA, ob Du Rechte vergibst (0=gast;1-user;2-admin)

                    
                if ($password == $result['password'] && $result['rechte']<2)
                    {
                      if (
                $result['rechte']==0$_SESSION['recht'] = 0;
                      if (
                $result['rechte']==1$_SESSION['recht'] = 1;
                //für das JavaScript kannst auch Dein header nehmen, wäre nur für 2 Frames (kA, wie Du das regelst)
                ?>
                <script type="text/javascript">
                <!--
                  Frame1=eval("parent."+"framename1");
                  Frame2=eval("parent."+"framename2");
                  Frame1.location.href = "url1";
                  Frame2.location.href = "url2";
                //-->
                </script>
                <?php
                    
                }
                    if (
                $password == $result['password'] && $result['rechte']==2)
                    {
                      
                $_SESSION['recht'] = 2;
                ?>
                <script type="text/javascript">
                <!--
                  Frame1=eval("parent."+"framename1");
                  Frame2=eval("parent."+"framename2");
                  Frame1.location.href = "url1";
                  Frame2.location.href = "url2";
                //-->
                </script>
                <?php
                    
                }
                     
                $check FALSE;
                  }
                  if(!
                $check)
                  {
                    echo 
                "

                [b]Ung&uuml;ltiger Nutzername oder Passwort.[/b]"
                ;
                  }
                ?>

                Kommentar


                • #9
                  Danke an alle.
                  Habe das hinbekommen.
                  Fehler war wo anders, habe überhaupt nicht geseh.
                  Sorry und nochmals thx.
                  Ob eine Sache gelingt, erfährst du nicht, wenn du darüber nachdenkst, sondern wenn du es ausprobierst.

                  Kommentar

                  Lädt...
                  X