[MySQL] Login (Kombination zwischen User und Passwort)

Sascha91

KlammID: 236083
ID: 236083
L
4 Mai 2006
148
2
Nächstes Problem: :D

Ich hab überhaupt keine Ahnung nach was ich suchen soll.

Wie kann ich aus einer Datenbank die Passwort- und Usernamenkombination. Also das User x sich mit dem Passwort x einloggen kann. Ich hab in einer Datenbank Username und Passwort gespeichert.
 
Uff, das mit der Datenbank check ich glaub nie :-?

Also muss ich das jetzt so machen?
PHP:
If (SELECT Username FROM ticker_user == SELECT Passwort FROM ticker_user)


Ich hab leider keinen blassen schimmer. Für was das WHERE?
 
PHP:
$res = mysql_query("SELECT ID/*, weiter daten des Users*/ FROM ticker_user WHERE Username='".$_POST['Username']."' AND Passwort = ".$_POST['Passwort']."'");
if(mysql_num_rows($res))
{
    $erg = mysql_fetch_object($res);
    // evtl. SESSION setzen
    if(/*Hier kannst du auf Datenzugreifen*/)
    {
        //Hier dein weiterer Code
    }
}
else
    echo "Keine Übereinstimmung";
Wie schon im anderen Thread erwähnt. Achte auf SQL Injektion und auf Sauberkeit. Und ganz wichtig immer logisch denken;)

Das ding ist nur ne demo funzt aber soweit

*edit code etwas ausgebessert
 
Zuletzt bearbeitet:
hä??? :ugly: :ugly: :ugly:

mal ne crash kurs
PHP:
SELECT
die felder aus der tabelle die du haben willst (oder tabellen)
FROM
von welcher tabelle du die haben willst
WHERE
holl mir alle zeilen wo
das feld name gleich der eingegebene name ist UND
das feld passwort gleich dem eingegebenen passwort ist

also
PHP:
SELECT Username FROM ticker_user WHERE Username = '$eingegebenen_username' AND Passwort = '$eingegebenen_passwort'
wenn du darauf hin ein datensatz zurück bekommst ist es ok, ansonsten falsches passort/name

das kannste zb so prüfen

PHP:
$result = mysql_query(der query von oben);
if(mysql_num_rows($result) == 1) {
   //alles in ordnung
   $daten = mysql_fetch_assoc($result);
   echo "Hallo $daten[Username]!";
} else {
   //das war wohl nix
}
 
Was stimmt in Zeile 11 (bzw. 10) nicht? (Zeigt ein Fehler an)
PHP:
<?php
$host="localhost";
$user="klopp1991";
$pw="123456";
$db="db_klopp2000_4";

$verbindung = mysql_pconnect($host,$user,$pw);
mysql_select_db($db, $verbindung);

$res = mysql_query("SELECT Username,Passwort FROM ticker_user WHERE Username='".$_POST['Username']."' AND Passwort = ".$_POST['Passwort']);
if(mysql_num_rows($res))
{
    $erg = mysql_fetch_object($res);
}
else
    echo "Keine Übereinstimmung";  
?>
 
Zuletzt bearbeitet:
Du hast die Anführungszeichen um das Passwort vergessen:
PHP:
$res = mysql_query('SELECT Username,Passwort FROM ticker_user WHERE Username="'.$_POST['Username'].'" AND Passwort = "'.$_POST['Passwort'].'"');
Denke aber dran, dass du das Script so NICHT öffentlich einsetzen solltest, da es anfällig für SQL-Injections ist.

Abhilfe: Die beiden $_POST-Variablen jeweils durch addslashes() oder eine ähnliche Funktion jagen.