kostenloser Webspace werbefrei: lima-city


IP + Logindatum in Datenbank

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    fuhnefreak

    Kostenloser Webspace von fuhnefreak

    fuhnefreak hat kostenlosen Webspace.

    Aus Sicherheitsgründen möchte ich, das bei jedem login eines Users die IP-Adresse gespeichert wird.

    <?php
        $username = $_POST["username"];
        $verbindung = mysql_connect("mysql.lima-city.de", "***" , "***")
        or die("Verbindung zur Datenbank konnte nicht hergestellt werden");
        mysql_select_db("***") or die ("Datenbank konnte nicht ausgewählt werden");
    
        $lalo = date("D.m.Y");
        $ip = $_SERVER['REMOTE_ADDR'];
        mysql_query("INSERT INTO login (ip, lastlogin) VALUES ('$ip', '$lalo') WHERE username = '$username'");
    ?>


    Es kommt keine Fehlermeldung, aber trotzdem wird die IP und das Logindatum nicht gespeichert.
    Kann mir bitte jemand sagen, woran es liegt?

    Danke in Voraus.

    MFG. fuhnefreak
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. e******a

    Änder es doch etwas ab, damit du eine Fehlermeldung bekommst. Also etwa so:
    if (!mysql_query(...)) {
        die(mysql_error());
    }

    Ich schätze mal, dass du eventuell falsch Datentypen in der Tabelle definiert hast.

    Ausserdem würde ich, wenn du schon auf Sicherheit bedacht bist, niemals den Benutzernamen einfach so aus $_POST in eine Query einfügen. Siehe Sql-Injection.
    Eine einfache Möglichkeit um das zu verhindern wären Prepared Statements. Siehe Mysqli oder PDO.
  4. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    fuhnefreak schrieb:
    Es kommt keine Fehlermeldung, aber trotzdem wird die IP und das Logindatum nicht gespeichert.
    Kann mir bitte jemand sagen, woran es liegt?
    Erklär mal was du hier vor hast:
    mysql_query("INSERT INTO login (ip, lastlogin) VALUES ('$ip', '$lalo') WHERE username = '$username'");
    Das mit dem WHERE verstehe ich nicht...

    Meinst du etwa UPDATE?
  5. Autor dieses Themas

    fuhnefreak

    Kostenloser Webspace von fuhnefreak

    fuhnefreak hat kostenlosen Webspace.

    Ja genau! Update wars!
    Vielen Dank!


    Ausserdem würde ich, wenn du schon auf Sicherheit bedacht bist, niemals den Benutzernamen einfach so aus $_POST in eine Query einfügen. Siehe Sql-Injection.
    Eine einfache Möglichkeit um das zu verhindern wären Prepared Statements. Siehe Mysqli oder PDO.

    Danke für den Tipp aber ich habe den Quelltext schon andersweitig gesichert:wink: Ich habe hier nur eine sehr abgespeckte Variante reingestellt.

    Beitrag zuletzt geändert: 24.5.2012 10:25:52 von fuhnefreak
  6. fuhnefreak schrieb:
    Ja genau! Update wars! ...
    und wenn du irgendwann einmal nach ip sortieren solltest, kannst mit dot-quad-notation das nicht machen. für den fall solltest die zwei beispiele mal ansehen
    SELECT INET_ATON('12.127.17.72')
    ergebnis = 209654088 :: so abgespeichert kann man die ips wie gewohn (richtig) sortieren!

    und die rückwandlung geht so:
    SELECT INET_NTOA(209654088)
    ergebnis = 12.127.17.72
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!