Php Login-script

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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"];
        }
    ?>
    Last edited by sodah; 28-02-2004, 20: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
    Last edited by Offe1; 28-02-2004, 20:49.

    Comment


    • #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

      Comment


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

        Offe

        Comment


        • #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.
          Last edited by sodah; 29-02-2004, 11:24.
          SODAH | JOERG KRUEGER
          WEBDESIGN: Wordpress Webdesign Mainz
          ACCESS: ACCESS Datenbank Mainz
          SHOUTCAST RADIO: FREE INTERNET WEB RADIO

          Comment

          Working...
          X