Updaten der IP Adresse mit PHP in einer MySQL Datenbank

  • Updaten der IP Adresse mit PHP in einer MySQL Datenbank

    Hi,

    also, wie die Überschrift es schon verrät, suche ich einen kleinen Code um die IP Adresse in MySQL Upadten zu können, natürlich in VARCHAR. Es verbraucht zwar 16MB, das ist mir klar, aber mann soll als Admin der Seite(Bin Ich) die IP auch verfolgen können, da ich immer wieder so schlaue User habe, die Leere Formulare abschicken^^

    Wie man die Aktuelle IP, bei der Registration einfügt habe ich schon, jetzt soll sich aber diese IP beim einloggen Updaten.
    Ich habe schon viel Gegoogelt, aber nichts gefunden(oder ich habs übersehen).

    Hoffe ihr könnt mir etwas weiterhelfen.

    PS: Das das nicht so "legal" ist weiß ich, also nciht antowrten mit:" Du weißt schon, das das nicht so Legal ist? " oder:" Warum sucht du nicht weiter?! "
    Solche Antworten lese ich "fast" überall.

    Danke
  • Jap, die soll mit der Session des Usernamen geupdatet werden. Session ist auch vorhanden^^
    In der Tabelle muss man ja dann die IP dort dann updaten wo die Session liegt. Indiesem Falle in der Tabelle userdie Besteht aus id, username,password,email,active,date und ip

    Die IP soll beim user der sich einloggt, geupdatet werden^^

    Hoffe ich habe alles erklärt :rolleyes:
  • Also wenn meine Fragen unpreziese sind, dann sorry. Also das sind meine aktuellen login daten...
    Wer noch mehr infos braucht der sagt es, da ich nciht wissen kann wer was braucht.

    Edit: Also habs gelöst^^
    Einfach in der login.inc.php das eingefügt:

    Quellcode

    1. if($_SESSION['authenticated'] == true)
    2. {
    3. require('inc/database.inc.php');
    4. mysql_connect($db['host'],$db['uid'],$db['pwd']);
    5. mysql_select_db($db['db']);
    6. $ip = $_SERVER['REMOTE_ADDR'];
    7. $sql = 'UPDATE user SET ip = "'.$_SERVER['REMOTE_ADDR'].'" WHERE username ="'.$_SESSION['username'].'"';
    8. mysql_query($sql);
    9. return true;
    10. }
    Alles anzeigen


    Das funzt jetzt Prima^^

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Freakli ()

  • Noch eine kleine Anmerkung zum Script.

    Quellcode

    1. $ip = $_SERVER['REMOTE_ADDR'];
    2. $sql = 'UPDATE user SET ip = "'.$_SERVER['REMOTE_ADDR'].'" WHERE username ="'.$_SESSION['username'].'"';

    Wenn du ip schon deklarierst, dann nutze es auch ;)

    Quellcode

    1. $ip = $_SERVER['REMOTE_ADDR'];
    2. $sql = 'UPDATE user SET ip = "'.$ip.'" WHERE username ="'.$_SESSION['username'].'"';



    Und zum Ausgangsthread.

    Was soll 16mb verbrauchen?
    Und prüfe doch einfach deine Formulare vor dem abschicken, ob alles befüllt ist.

    Und was soll dir die IP Adresse bringen, wenn ein User ein Formular abschickt, dass nicht ausgefüllt ist.
    (Vor allem wenn er eingeloggt ist und du alle Daten in der Session hast z.B "id" & "username")

    Ich denke, dass du bei der Problemlösung an der falschen Stelle anpackst, wenn ich das mal so aus dem nichts behaupten kann ;)
  • Das Formular ist ein EinloggFormular, bestehend aus der Login.inc.php die das Formular enthält und aus der Login.php die diese Variablen prüfft, gegebenfalls wenn der user nicht in der DB ist oder falsches Passwort/Username hat dann wieder in die Index zu leiten, die wiederum einen Registrationslink hat oder aber die login^^
    Die IP ist für Spammer, die ständig die Formulre abschicken ohne das sie was schreiben, klar müsst ich einfach prüffen lassen ob da was drinne steht, aber überhaupt keine Lust mehr. Und sry, das ich in der Eile die IP nicht deklariert habe^^
    16 MB verbraucht laut anderen Foren der String VARCHAR(15) mit der IP
    Die Session möge schon die ID und den Usernamen enthalten, aber die IP nciht, die beim Versand der Email mit geloggt wird. Das EMail formular wird dann abgeschickt wenn ein anderes Formular diese weiterleitung hat.

    Aber mein Problem ist Gelöst. Deshalb: Closed :thumbsup:
  • Ok, wenn du es so belassen möchtest.


    16 MB verbraucht laut anderen Foren der String VARCHAR(15) mit der IP

    Du hast es fast richtig verstanden ;)

    Hier ist eine kleine Übersicht vom Speicherverbrauch:
    dev.mysql.com/doc/refman/5.1/de/storage-requirements.html

    VARCHAR(M) L + 1 Byte, wobei L <= M und 0 <= M <= 255 (siehe nachfolgender Hinweis) or L + 2 Byte, wobei L <= M und 256 <= M <= 65535 (siehe nachfolgender Hinweis)



    Das heisst auf Deutsch das ein VARCHAR(15) , 15 + 1 Byte pro Zeile verbraucht.

    Also nicht 16mb sondern 16byte.
    Was umgerechnet dann 0.0000152588MB wären.


    Und falls wirklich einer MB zu dir gesagt hat, belehre in eines besseren 8)