Php Login-script

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

  • Php Login-script

    Irgendwie poppt 3 mal der bescheuerte Login auf, obwohl ich ihn hier nur einmal eingebunden habe. Hmmmmmmm...

    Der Login ist an eine Datenbank gebunden, welche user, pw, group bereitstellt.

    Was ist daran falsch?

    PHP-Code:
    <?PHP
    //Verbindung zum MYSQL-Server Herstellen
    $conn mysql_connect("localhost","xxx","xxx");
    //Verbindung zur Datenbank herstellen
    $db mysql_select_db("proskating");
    //Login starten
    header("WWW-Authenticate: Basic realm=\"Bitte identifizieren\"");
    header("HTTP/1.1 401 Unauthorized");
    $rs mysql_query("SELECT * FROM sodah_login WHERE user = '$PHP_AUTH_USER' AND pw = '$PHP_AUTH_PW'"$conn) or die ("&login=fehler");
    if (
    mysql_num_rows($rs)==0)
        {
        echo 
    "&login=fehler";
        } else {
        echo 
    "&login=".$rs[0]["group"];
        }
    ?>
    Zuletzt geändert von sodah; 28.02.2004, 21:37.
    SODAH | JOERG KRUEGER
    WEBDESIGN: Wordpress Webdesign Mainz
    ACCESS: ACCESS Datenbank Mainz
    SHOUTCAST RADIO: FREE INTERNET WEB RADIO

  • #2
    Da fehlt ein:
    PHP-Code:
    if ( !isset( $PHP_AUTH_USER )) { 
    vor
    header("WWW-Authenticate: Basic realm=\"Bitte identifizieren\"");
    würde ich sagen.

    EDIT:
    Beispiel:

    if (mysql_num_rows($rs)==0)
    {
    header( 'WWW-Authenticate: Basic realm="Testseite von Administrator - Authentification"' );
    header( 'HTTP/1.0 401 Unauthorized' );
    echo "<h1>401 Unauthorized</h1>";
    echo "Der Server konnte Ihre Anfrage nicht beantworten.<br> ";
    echo "Sie haben einen falschen User oder ein falsches Passwort verwendet.</p> ";
    echo "Bitte <a href=\"http://page.dyns.cx/testseite.php\"> klicken Sie hier</a> um es erneut zu versuchen.";
    exit;
    }



    Offe
    Zuletzt geändert von Offe1; 28.02.2004, 21:49.

    Kommentar


    • #3
      Alles klar, danke, genau das fehlte noch.

      hier der überarbeitete Code:

      PHP-Code:
      <?PHP
      //Verbindung zum MYSQL-Server Herstellen
      $conn mysql_connect("localhost","xxx","xxx");
      //Verbindung zur Datenbank herstellen
      $db mysql_select_db("proskating");
      //PW-Abfrage starten
      if ((!isset($PHP_AUTH_USER)) || (!isset($PHP_AUTH_PW))) 
          {
          
      header("WWW-Authenticate: Basic realm=\"Bitte identifizieren\"");
          
      header("HTTP/1.1 401 Unauthorized");
          }
      $rs mysql_query("SELECT * FROM sodah_login WHERE user = '$PHP_AUTH_USER' AND pw = '$PHP_AUTH_PW'"$conn) or die ("&login=fehler");
      if (
      mysql_num_rows($rs)==0)
          {
          echo 
      "&login=fehler";
          } else {
          echo 
      "&login=".mysql_result($rs,0,"group");
          }
      ?>
      SODAH | JOERG KRUEGER
      WEBDESIGN: Wordpress Webdesign Mainz
      ACCESS: ACCESS Datenbank Mainz
      SHOUTCAST RADIO: FREE INTERNET WEB RADIO

      Kommentar


      • #4
        nach
        header("HTTP/1.1 401 Unauthorized");
        fehlt ein
        PHP-Code:
        exit; 
        nachzulesen bei HTTP-Authentifizierung mit PHP

        Offe

        Kommentar


        • #5
          Tausend Dank, genau das wäre dann wohl mein nächstes Problem geworden, wenn der User auf Cancel gerdrückt hätte.

          Also anbei nochmal der überarbeitete Code.
          Jetzt ist auch eine Fehleingabe des Benutzers abgefangen und die Authorizierung kann erneut erfolgen.
          Im Übrigen wird das ganze aus Flash MX herausgesteuert, daher die merkwürdigen Echobefehle.

          PHP-Code:
          <?PHP
          //PW-Abfrage starten
          function authenticate()  
              {
              
          header("WWW-Authenticate: Basic realm=\"Bitte identifizieren\"");
              
          header("HTTP/1.0 401 Unauthorized");
              
          //Falls User auf cancel drückt
              
          echo "&login=abbruch";
              exit;
                }
          // Startschuss
          $auth false
          //Verbindung zum MYSQL-Server Herstellen
          $conn mysql_connect("localhost","xxx","xxx");
          //Verbindung zur Datenbank herstellen
          $db mysql_select_db("proskating");
          //PWEingabe kontrollieren
          if (isset($PHP_AUTH_USER) || isset($PHP_AUTH_PW)) 
              {
              
          $rs mysql_query("SELECT * FROM sodah_login WHERE user = '$PHP_AUTH_USER' AND pw = '$PHP_AUTH_PW'"$conn) or die ("&login=fehler");
              if (
          mysql_num_rows($rs)!=0)
                  {
                  
          $auth true
                  }
              }
          if (!
          $auth
              { 
              
          authenticate();
              } else {
              echo 
          "&login=".mysql_result($rs,0,"group");
              }
          ?>
          Bei funzt es jetzt prima. Ist schon eine nervenaufreibende Sache, wenn man die USER, PW Felder nicht so ohne weiteres leerbekommt, um eine erneute Authorisierung zu starten.
          Zuletzt geändert von sodah; 29.02.2004, 12:24.
          SODAH | JOERG KRUEGER
          WEBDESIGN: Wordpress Webdesign Mainz
          ACCESS: ACCESS Datenbank Mainz
          SHOUTCAST RADIO: FREE INTERNET WEB RADIO

          Kommentar

          Lädt...
          X