Hallo an alle
Ich habe mir die 4 "Regeln" durchgelesen und hoffe, ich befolge sie auch. Nun dann, ich würde euch gerne ein paar Sachen fragen, die ich nicht weiss und die ich nicht alle in der Bordsuche finde (oder 100% verstehe), darum frage ich lieber. Ich muss euch sagen, dass ich mich etwas mit MySQL auskenne, dieses Wissen aber beschränkt ist, da ich den Umgang mit einer stark "beschnittenen" MySQL Version eines Spieles gelernt habe.
Also ich möchte per PHP aus einer MySQL Datenbank mit dem Namen Spieler die Spalte Passwort auslesen und einen Inputtext in MD5 verschlüsseln und in mit dem auch MD5 verschlüsselten Wert aus der Datenbank vergleichen.
Aufbau der Datenbank:
AutoIncrementID, Name,Passwort............(27 restliche Spalten)
1.Frage
Kann ich eine bestimmte Spalte aus einer bestimmten Zeile direkt mit dem query auslesen und wenn ja wie ?
2.Frage
Wenn die 1.Frage nicht gehen würde, lese ich die Zeile mit mysql_fetch_row aus und splitte sie. Ich habe mehr als 3 Spalten (etwa 30). Um zu testen ob der Login geht, muss ich alle 30 splitten oder kann ich auch die ersten 3 Spalten (AutoIncrement, Name, Passwort) splitten ?
3.Frage
Meines Wissens gibt es in PHP ein MD5 "Funktion", gibt die den verschlüsselten Hash gross oder kleingeschrieben aus und spielt das bei einem Vergleich eine Rolle ? In meiner Datenbank sind die MD5 Hashes grossgeschrieben, darum frage ich eben.
4.Frage
Ich poste hier mal meinen Code um euch die Sache mit den 3 Werten etwas verständlicher zu machen.
Wenn ich irgendwie etwas falsch machen würde oder was ausser Acht gelassen hätte, bitte lasst es mich wissen, will nicht bereits mit dem 1.Post was falsch machen
MfG dUDALUS
Ich habe mir die 4 "Regeln" durchgelesen und hoffe, ich befolge sie auch. Nun dann, ich würde euch gerne ein paar Sachen fragen, die ich nicht weiss und die ich nicht alle in der Bordsuche finde (oder 100% verstehe), darum frage ich lieber. Ich muss euch sagen, dass ich mich etwas mit MySQL auskenne, dieses Wissen aber beschränkt ist, da ich den Umgang mit einer stark "beschnittenen" MySQL Version eines Spieles gelernt habe.
Also ich möchte per PHP aus einer MySQL Datenbank mit dem Namen Spieler die Spalte Passwort auslesen und einen Inputtext in MD5 verschlüsseln und in mit dem auch MD5 verschlüsselten Wert aus der Datenbank vergleichen.
Aufbau der Datenbank:
AutoIncrementID, Name,Passwort............(27 restliche Spalten)
1.Frage
Kann ich eine bestimmte Spalte aus einer bestimmten Zeile direkt mit dem query auslesen und wenn ja wie ?
2.Frage
Wenn die 1.Frage nicht gehen würde, lese ich die Zeile mit mysql_fetch_row aus und splitte sie. Ich habe mehr als 3 Spalten (etwa 30). Um zu testen ob der Login geht, muss ich alle 30 splitten oder kann ich auch die ersten 3 Spalten (AutoIncrement, Name, Passwort) splitten ?
3.Frage
Meines Wissens gibt es in PHP ein MD5 "Funktion", gibt die den verschlüsselten Hash gross oder kleingeschrieben aus und spielt das bei einem Vergleich eine Rolle ? In meiner Datenbank sind die MD5 Hashes grossgeschrieben, darum frage ich eben.
4.Frage
Ich poste hier mal meinen Code um euch die Sache mit den 3 Werten etwas verständlicher zu machen.
PHP:
else if(isset($_POST['username'])) // Wenn Variable Username (im Speicher) existiert, führe Loginabfrage aus
{
$verbindung = mysql_connect("localhost","samp1111","XXXXX") or die ("Keine Verbindung zum Server möglich");
mysql_select_db("XYZA") or die ("Keine Verbindung zur Datenbank möglich");
$result = mysql_query("SELECT * FROM Spieler WHERE Name = '$username'");
if (!$result)
{
echo 'Abfrage konnte nicht ausgeführt werden: ' . mysql_error();
exit;
}
$row = mysql_fetch_row($result);
echo $row[0]; // AutoInkrement ID
echo $row[1]; // Name
echo $row[2]; // Passwort
if($row[2] == md5($_POST['password'])) // Checkt ob das MD5 Passwort stimmt
{
$_SESSION['username'] = $_POST['username'];
}
else // Sendet Misserfolgs-Meldung aus
{
echo startcontent();
echo title("Loginversuch");
echo '<p align=center><b>Benutzername oder Passwort falsch</b></p><meta http-equiv="refresh" content="3; URL=">';
echo endcontent();
include 'templates/navlogin.tpl';
include 'templates/footer.tpl';
die;
}
}
Wenn ich irgendwie etwas falsch machen würde oder was ausser Acht gelassen hätte, bitte lasst es mich wissen, will nicht bereits mit dem 1.Post was falsch machen
MfG dUDALUS