tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
300
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ToWeR ToWeR ist offline Rookie
    Registriert seit
    Apr 2004
    Ort
    Wiesbaden
    Beiträge
    5
    Hallo Leute,

    ich bin fleissig am lernen, aber mein Wissen ist noch nicht so ganz ausgereift um mit meinem Problem weiter zu kommen.

    Und zwar habe ich eine Datenbank mit der tabelle "tower_users" die 3 Einträge hat.

    1. Eintrag -> ID: 1 / User: ToWeR / PW: l*****h
    2. Eintrag -> ID: 2 / User: Test / PW: T**t
    3. Eintrag -> ID: 3 / User: LuKaS / PW: l***s

    Von meiner Index.php (die Loginseite mit den Inputboxen), werden die Inhalte der Inputboxen $name und $passwd an die loginchk.php übermittelt.

    Das Problem ist das ich beim Login sofort an die "error.php" weitergeleitet werde und ich stellte noch fest das nicht alle 3 Datensätze mit den eingegebenen Daten verglichen werdem. Ich weiss nicht was ich da falsch mache!

    PHP-Code:
    <?php
    include "./include/config.inc";

    $host "xxxxxx.xxxxxx.xxxxxx.de";
    $user "xxxxxx";
    $password "xxxxxx";
    $dbname "xxxxxx";
    $tabelle "tower_users";

    $dbverbindung mysql_connect ($host$user$password);

    $dbanfrage "SELECT * FROM $tabelle";
    $result mysql_db_query ($dbname$dbanfrage$dbverbindung);

    $ausgabe mysql_fetch_array ($result);
        
        if (
    $name == $ausgabe["username"] AND $passwd == $ausgabe["password"])
                 {
                     
    HEADER("LOCATION: main.php");
                 }
        else if (
    $name != $ausgabe["username"] AND $passwd != $ausgabe["password"])
                 {
                     
    HEADER("LOCATION: error.php");
                 }
    ?>
    Wäre für schnelle Hilfe dankbar!
     
    Gruß
    Lukas

  2. #2
    Avatar von The Garfieldius
    The Garfieldius The Garfieldius ist offline Mitglied Gold
    Registriert seit
    Dec 2003
    Ort
    Bad Ischl
    Beiträge
    170
    Du musst bei deiner SQL-Query Name und Passwort angeben, sonst nimmt er sämtliche Einträge aus der Tabelle, und wenn der erste nicht den Eingaben entspricht, wirst du weitergeleitet.
    Außerdem darfst du bei, von Formularen übergebenen Variablen das $_POST['var'] bzw. $_GET['var'] nicht vergessen (PHP4).
    Also:
    PHP-Code:
    $sql "SELECT * FROM ".$tower_users." WHERE username = '".$_POST['username']."' AND password = '".$_POST['password']."' ";
    $result = @mysql_query($sql); 
     
    Hiroshima 45
    Tschernobyl 86
    Windows 95

  3. #3
    ToWeR ToWeR ist offline Rookie
    Registriert seit
    Apr 2004
    Ort
    Wiesbaden
    Beiträge
    5
    Hmm habe den Quellcode etwas verändert, sieht jetzt so aus:

    PHP-Code:
    <?php
    include "./include/config.inc";

    $host "xxx";
    $user "xxx";
    $password "xxx";
    $dbname "xxx";
    $tabelle "tower_users";

    $dbverbindung mysql_connect ($host$user$password);

    $dbanfrage "SELECT * FROM ".$tower_users." WHERE username = '".$_POST['username']."' AND password = '".$_POST['password']."' ";
    $result mysql_db_query ($dbname$dbanfrage$dbverbindung);

    $ausgabe mysql_fetch_array ($result)

        
        if (
    $_POST["name"] == $ausgabe["username"] AND $_POST["passwd"] == $ausgabe["password"])
                 {
                     
    HEADER("LOCATION: main.php");
                 }
        else if (
    $_POST["name"] != $ausgabe["username"] AND $_POST["passwd"] != $ausgabe["password"])
                 {
                     
    HEADER("LOCATION: error.php");
                 }

    mysql_close ($dbverbindung)
       
    ?>
    Aber es klappt immernoch irgendwie nicht, weiss nicht wieso
     
    Gruß
    Lukas

  4. #4
    Avatar von The Garfieldius
    The Garfieldius The Garfieldius ist offline Mitglied Gold
    Registriert seit
    Dec 2003
    Ort
    Bad Ischl
    Beiträge
    170
    PHP-Code:
    <?php 
    /* Hab alles ausgebessert was mir aufgefallen ist,
       ob das jetzt wirklich , weis ich auch nicht, 
       da PHP absolut nicht meine Stärke ist! Einfach ausprobieren!
    */
    include "./include/config.inc"

    $host "xxx"
    $user "xxx"
    $password "xxx"
    $dbname "xxx"
    $tabelle "tower_users"

    $dbverbindung mysql_connect ($host$user$password); 

        
    //Statt username und password natürlich die entsprechenden Feldnamen aus deiner Tabelle einsetzen.
        //Fehler meinerseits, es muss natürlich $tabelle heißen, "tower_users" ist nur der Wert
    $dbanfrage "SELECT * FROM ".$tabelle." WHERE username = '".$_POST['username']."' AND password = '".$_POST['password']."' "
    $result mysql_db_query ($dbname$dbanfrage$dbverbindung); 

    //Strichpunt vergessen!
    $ausgabe mysql_fetch_array ($result);

         
        if (
    $_POST["name"] == $ausgabe["username"] and $_POST["passwd"] == $ausgabe["password"]) 
                 { 
                     
    HEADER("LOCATION: main.php"); 
                 } 
        elseif (
    $_POST['name'] != $ausgabe['username'] or  $_POST['passwd'] != $ausgabe['password']) 
                 { 
                     
    HEADER("LOCATION: error.php"); 
                 } 

    mysql_close ($dbverbindung
        
    ?>
     
    Hiroshima 45
    Tschernobyl 86
    Windows 95

  5. #5
    Registriert seit
    Aug 2003
    Ort
    Arnsberg, Germany, Germany
    Beiträge
    1.066
    Hi

    wenn der User mit o.g. Statemant erfolgreich ermittelt wird, wird ja ein Datensatz angezeigt.

    Die Abfrage auf Vorhandenseins dieses Datensatzes kann man ganz leicht mit

    mysql_num_rows($result) feststellen.

    ist dieser ==0, liegt keine eindeutiger Datensatz vor, bzw. Login ist fehlgeschlagen
    ansonsten ist er eingeloggt und kann sich weiterbewegen.
     
    liebe Grüße, die Luzie

  6. #6
    ToWeR ToWeR ist offline Rookie
    Registriert seit
    Apr 2004
    Ort
    Wiesbaden
    Beiträge
    5
    Ich danke die für deine Hilfe, aber wenn ich den Username und das Passwort eingebe und mich versuche einzuloggen, dann werde ich immer an die "error.php" weitergeleitet...
     
    Gruß
    Lukas

  7. #7
    ToWeR ToWeR ist offline Rookie
    Registriert seit
    Apr 2004
    Ort
    Wiesbaden
    Beiträge
    5
    Original geschrieben von Luzie
    Hi

    wenn der User mit o.g. Statemant erfolgreich ermittelt wird, wird ja ein Datensatz angezeigt.

    Die Abfrage auf Vorhandenseins dieses Datensatzes kann man ganz leicht mit

    mysql_num_rows($result) feststellen.

    ist dieser ==0, liegt keine eindeutiger Datensatz vor, bzw. Login ist fehlgeschlagen
    ansonsten ist er eingeloggt und kann sich weiterbewegen.
    HI, danke für deine Antwort, könntest du mir den Code posten ? Wäre dir dankbar, bin noch etwas frisch was das PHP betrifft!

    OK, HABE MEINEN FEHLER GEFUNDEN, LÄUFT JETZT, DANKE TROTZDEM FÜR DIE HILFE
    Geändert von ToWeR (07.04.04 um 22:33 Uhr)
     
    Gruß
    Lukas

  8. #8
    Registriert seit
    Aug 2003
    Ort
    Arnsberg, Germany, Germany
    Beiträge
    1.066
    trotzdem, so wäre die übliche Vorgehensweise

    $rstotal = mysql_num_rows($result);
    if($rstotal==0){
    header("location:fehler.php");
    }else{
    header("location:ok.php");
    }
     
    liebe Grüße, die Luzie

Ähnliche Themen

  1. Login klappt nicht
    Von LarsB im Forum PHP
    Antworten: 2
    Letzter Beitrag: 09.04.10, 10:01
  2. Login klappt nicht mit ENTER
    Von Kaeschdin im Forum PHP
    Antworten: 11
    Letzter Beitrag: 08.09.08, 11:40
  3. Flash Login klappt nicht
    Von Rico2000 im Forum Flash Plattform
    Antworten: 0
    Letzter Beitrag: 01.07.08, 16:00
  4. Login klappt nicht
    Von jbo im Forum PHP
    Antworten: 13
    Letzter Beitrag: 21.12.03, 11:16
  5. Login Überprüfung klappt nicht
    Von badi im Forum PHP
    Antworten: 4
    Letzter Beitrag: 02.02.03, 23:51