Beiträge von Vince


    Gruss
    Vince

    Danke für die Info.


    Ich habs versucht. Leider funktioniert der Login nicht mehr und ich weiss nicht, wie ich herausfinden kann, warum.


    Ich habe die SQL Statements selber in der Konsole ausgeführt.


    Code
    $id = mysql_query("SELECT user_id FROM `$tbl_name` WHERE username='$myusername' and password_md5='$mypassword'");


    gibt


    Code
    +---------+
    | user_id |
    +---------+
    |       1 |
    +---------+
    1 row in set (0.00 sec)


    Code
    $sql="SELECT * FROM `$tbl_name` WHERE user_id='$id'";


    gibt


    Code
    +---------+----------+----------------------------------+---------------------+---------------------+-------+------------+-------------+-------+--------+-------+-----------+--------+---------+
    | user_id | username | password_md5                     | last_login          | created_at          | money | bank_money | bank_credit | level | points | fr_id | fr_leader | job_id | skin_id |
    +---------+----------+----------------------------------+---------------------+---------------------+-------+------------+-------------+-------+--------+-------+-----------+--------+---------+
    |       1 | Vince    | 81dc9bdb52d04dc20036dbd8313ed055 | 2012-11-12 08:24:21 | 2012-02-15 08:24:26 | 20837 |     120000 |           0 |    12 |      5 |     1 |         1 |      6 |      18 |
    +---------+----------+----------------------------------+---------------------+---------------------+-------+------------+-------------+-------+--------+-------+-----------+--------+---------+


    Dann


    Code
    $result=mysql_query($sql);


    Code
    $count=mysql_num_rows($result);


    Code
    if($count==1){
    
    
    session register blabla


    Gruss
    Vince

    Ich wurde gestern darauf angesprochen, in meinem Login System die Abfragen mit einer User_ID zu machen, da die User-ID nur 1x vorhanden ist.


    Mein Login System funktioniert folgendermassen:


    In einem Formular werden Username und Passwort eingelesen.
    Jetzt werden die eigegebenen Sachen überprüft:


    Code
    $username=$_POST['username']; 
    $password=md5($_POST['password']);


    Vor MySQL Injektion schützen:


    Code
    $username = stripslashes($username);
    $password = stripslashes($password);
    $username = mysql_real_escape_string($username);
    $password = mysql_real_escape_string($password);
    $sql="SELECT * FROM $tbl_name WHERE username='$username' and password_md5='$password'";
    $result=mysql_query($sql);


    Jetzt werden die gefundenen Datensätze gezählt:


    Code
    $count=mysql_num_rows($result);


    Wenn 1 gefunden wurde, Session registrieren, ansonsten wieder zur Login-Page:



    Verbesserungsvorschläge zur Sicherheit?
    Wie kann ich das mit einer User-ID lösen?


    Einfach bei der SQL Abfrage SELECT user_id FROM ... ?


    Gruss
    Vince

    Code
    $result = mysql_query("SELECT skin_id FROM members WHERE password_md5='".$_SESSION["mypassword"]."'");
    $row = mysql_fetch_assoc($result);
    echo "<img src='/images/skins".$row['skin_name'].".png' />";


    Ich gehe mal davon aus, dass die .php datei im Ordner "cp" liegt.


    OT: Du solltest dir angewöhnen deine Benutzersessions nicht über das Passwort zu unifizieren. Besser über eine UserId o.Ä.


    Jauu, das funktioniert.
    Dankeschön :)


    Das mit der User-ID werd ich noch machen. Danke für den Tipp.


    Gruss
    Vince

    Tut mir Leid. Das war falsch^^


    Ich hab das so ausm Kopf geschrieben.
    Also so ist es:


    In meiner User-Tabelle steht das Feld "skin_id".
    Da steht jetzt bei meinem Benutzer 10 drinn.


    Code
    $getplayerskin = mysql_query("SELECT skin_id FROM members WHERE password_md5='".$_SESSION["mypassword"]."'");


    Code
    echo "Dein Skin: <img src='http://ipadresse/cp/images/skins/" .mysql_result(.$getplayerskin, 0, "members.skin_id"). ".png'><br>";


    Gibt aber wie gesagt einen Server-Error (HTTP Fehler 500)


    Gruss
    Vince


    EDIT: Fehler korrigiert

    Genau das habe ich eben ausprobiert :D


    Im Feld skin_name steht: http://ipadresse/images/skins/10.png


    Code
    $getplayerskin = mysql_query("SELECT skin_name FROM members WHERE password_md5='".$_SESSION["mypassword"]."'");


    So wirds im CP ausgegeben:


    Code
    echo "Dein Skin: <img src=' " .mysql_result(.$getplayerskin, 0, "members.skin_name"). " '><br>";


    Gibt aber leider einen Server-Error.


    Gruss
    Vince

    Alle Skins sind im Verzeichnis /images/skins/id.png ablegegt.
    Die User-Daten werden in einer MySQL Datenbank abgespeichert.


    Wie geb ich die Bilder denn im CP aus?


    Gruss
    Vince

    Hi,


    Ich stehe vor einem kleinen Problem.
    Ich bin gerade dabei, ein Control-Panel zu coden.


    Alles ist eigentlich fertig, bis auf den Skin. Im CP muss noch der Skin des Spielers angezeigt werden.


    Wie mach ich das am besten?


    Ich hab leider kein Plan, wie ich das machen soll.
    Man kann ja keine Bilder in einer Datenbank abspeichern oder?


    Gruss
    Vince

    ipTables werden dir da sicherlich weiterhelfen.
    Warscheinlich sind es immer wieder die selben IP's die dich DDossen wollen.


    Hoster bieten manchmal auch Hardware-Firewalls an.
    Kannst dich ja mal bei deinem Hoster erkundigen.


    Ansonsten gibts viele Software Firewalls.


    Gruss
    Vince