• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Was ist hier falsch???

Status
Für weitere Antworten geschlossen.

jukleidie

Mitglied
Hab wirklich keine ahnung warum das nicht geht...
PHP:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

      session_start();

      $username = $_POST['username'];
      if (empty($username)) {
       echo "<font color=\"red\">Bitte username eingeben!</font>";
       }
      $passwort = $_POST['passwort'];
       if (empty($passwort)) {
       echo "<font color=\"red\">Bitte Passwort eingeben!</font>";
       }

      $hostname = $_SERVER['HTTP_HOST'];
      $path = dirname($_SERVER['PHP_SELF']);

      // Benutzername und Passwort werden überprüft
      include("include.php");

       $result=mysql_query("SELECT * FROM forum_user WHERE name = '$username'");
       $row=mysql_fetch_row($result);


       if (empty($row[1])) {
       echo "<font color=\"red\">Falscher Benutzername!</font>";
       }
       //Eingegebenes Passwort verschlüsseln, um es vergleichenzukönnen
       $verschluesseltes_pass = md5($passwort);

       //passwortüberprüfung
       if ($row[2]=$verschluesseltes_pass)
       {

       $_SESSION['angemeldet'] = true;

     
        header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/index.php');
       exit;
        }

   }


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
 <head>
  <title>Geschützter Bereich</title>
 </head>
 <body>
  <br>*********************************************************************

    <h2>LOGIN-Bereich</h2>

          <form action="login.php" method="post">
        <table>
            <tr>
                <td>Benutzername:</td>
                <td><input type='text' size='30' maxlength='30' name="username"></td>
            </tr>
            <tr>
                <td>Passwort:</td>

                <td><input type='password' size='30' maxlength='30' name="passwort"></td>
            </tr>
            <tr>
                <td> </td>
                <td><input type="submit" value="Anmelden" />  </td>
            </tr>
        </table>
    </form>

*********************************************************************
</body>
</html>
Mit dem Nutzernamen funktioniert es: wenn man einen falschen eingibt erscheint die fehlermeldung.

aber als passwort kann man alles eingeben....


Tabelle Forum_user

id | name | passwort
*************************
1 | xyz | geheimes passwort

Kann mir jemand helfen???
 
Würde das ganze anderst machen.
Problem bei deinem Code, wenn eine falsche Eingabe ist macht er trotzdem weiter.
Würde das ganze so machen :
PHP:
<?php
if (isset($_POST['username']) AND isset($_POST['passwort'])) {

      session_start();
      
      $eingaben_ok = true;
      
      $username = $_POST['username'];
      if (empty($username)) {
               echo "<font color=\"red\">Bitte username eingeben!</font>";
            $eingaben_ok = false;
       }
       
      $passwort = $_POST['passwort'];
       if (empty($passwort)) {
               echo "<font color=\"red\">Bitte Passwort eingeben!</font>";
               $eingaben_ok = false;
       }
       
        if ( $eingaben_ok ) // Nur wenn beide eingaben richtig sind
        {
           $hostname = $_SERVER['HTTP_HOST'];
           $path = dirname($_SERVER['PHP_SELF']);
    
          // Benutzername und Passwort werden überprüft
          include("include.php");
    
           $result=mysql_query("SELECT * FROM forum_user WHERE name = '$username'");

           // Kenne das andere nicht so gut (mysql_fetch_row) und war zu faul um nachzuschauen. ;)
           // Keys sind jetzt einfach die Spaltennamen
           $row=mysql_fetch_assoc($result); 
    
    
           if ( mysql_num_rows($result) == 0 ) { // Kommt aufs gleiche raus wie bei dir
               echo "<font color=\"red\">Falscher Benutzername!</font>";
             $eingaben_ok = false;
           }
           else // Soll nicht weitermachen wenn Benutzername falsch
           {
           
               //Eingegebenes Passwort verschlüsseln, um es vergleichenzukönnen
               $verschluesseltes_pass = md5($passwort);
        
               //passwortüberprüfung
               if ($row['passwort'] == $verschluesseltes_pass)
               {
        
                   $_SESSION['angemeldet'] = true;
        
             
                    header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/index.php');
                    exit;
                }
            }
        }

   }


?>
 
bei mir kommt da nur '098f6bcd4621d373cade4e832627b4f6' das ist das md5 verschlüsselte test.
sonst seh ich auf der seite nichts, hast du das script umgeschrieben ?
wie ich oben vorgeschlagen habe oder ähnlich ?
 
ich hatte erst den falschen link drin^^

das md5() teil war "test" verschlüsselt...
das ist die seite die erscheinen müsste wenn das login erfolgreich war..
 
bei mir kommt folgende Fehlermeldung :
Code:
[B]Warning[/B]:  session_start() [[url=http://function.session-start]webhosting24 - Login[/url]]: Cannot send session cookie - headers already sent by (output started at /kunden/167344_19055/html/login.php:1) in [B]/kunden/167344_19055/html/login.php[/B] on line [B]4[/B]

[B]Warning[/B]:  session_start() [[url=http://function.session-start]webhosting24 - Login[/url]]: Cannot send session cache limiter - headers already sent (output started at /kunden/167344_19055/html/login.php:1) in [B]/kunden/167344_19055/html/login.php[/B] on line [B]4
[/B]

was soviel bedeutet wie, dass vor dem session_start() schon was ausgegeben wurde. ( echo "xxx"; oder vor dem '<?php' teil )
 
PHP:
   <?php
if (isset($_POST['username']) AND isset($_POST['passwort'])) {

      session_start();

      $eingaben_ok = true;

      $username = $_POST['username'];
      if (empty($username)) {
               echo "<font color=\"red\">Bitte username eingeben!</font>";
            $eingaben_ok = false;
       }

      $passwort = $_POST['passwort'];
       if (empty($passwort)) {
               echo "<font color=\"red\">Bitte Passwort eingeben!</font>";
               $eingaben_ok = false;
       }

        if ( $eingaben_ok ) // Nur wenn beide eingaben richtig sind
        {
           $hostname = $_SERVER['HTTP_HOST'];
           $path = dirname($_SERVER['PHP_SELF']);

          // Benutzername und Passwort werden überprüft
          include("include.php");

           $result=mysql_query("SELECT * FROM forum_user WHERE name = '$username'");
           $row=mysql_fetch_assoc($result); // Kenne das andere nicht so gut und war zu faul um nachzuschauen. Keys sind jetzt einfach die Spaltennamen


           if ( mysql_num_rows($result) == 0 ) { // Kommt aufs gleiche raus wie bei dir
               echo "<font color=\"red\">Falscher Benutzername!</font>";
             $eingaben_ok = false;
           }
           else // Soll nicht weitermachen wenn Benutzername falsch
           {

               //Eingegebenes Passwort verschlüsseln, um es vergleichenzukönnen
               $verschluesseltes_pass = md5($passwort);

               //passwortüberprüfung
               if ($row['passwort'] == $verschluesseltes_pass)
               {

                   $_SESSION['angemeldet'] = true;


                    header('Location: http://'.$hostname.($path == '/' ? '' : $path).'/index.php');
                    exit;
                }
            }
        }

   }


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
  <title>Geschützter Bereich</title>
</head>
<body>
  <br>*********************************************************************

    <h2>LOGIN-Bereich</h2>

          <form action="login.php" method="post">
        <table>
           <tr>
                <td>Benutzername:</td>
                <td><input type='text' size='30' maxlength='30' name="username"></td>
            </tr>
            <tr>
                <td>Passwort:</td>

                <td><input type='password' size='30' maxlength='30' name="passwort"></td>
            </tr>
            <tr>
                <td> </td>
                <td><input type="submit" value="Anmelden" />  </td>
            </tr>
        </table>
    </form>

*********************************************************************
</body>
</html>
das ist login.php
ich seh da nix, was vorher ausgegeben wird..
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben