IP bei Login auslesen

  • geschlossen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • IP bei Login auslesen

    Hallo also irgendwie kann dass was ich will ja schon fast jedes PHP Board, aber dass ist mir eigentlich nen bissel zuviel Schnick Schnack hier also ein kurze Beschreibung was ich suche:

    Ich möchte eine Login Seite haben, wo man sich mit einem Namen und Passwort einloggen muss, soweit so gut. Die Seite soll die IP des "Mitgliedes" in einer .txt datei speichern, wie diese heißt spielt keine Rolle. Beim beenden der Seite soll die IP aber auch automatisch wieder aus der Liste gestrichen werden und es müsste möglich sein, dass mehrere User sich einloggen können und die IPs sollen alle in die selbe Textdatei gechrieben werden...

    Also Theoretisch müsste das ja kein Problem sein, weil man als PHP Admin eines Portals bzw Forums ja auch die IP der "anwesenden" Mitglieder sehen kann. Ich hab bloß keinen Plan was ich wo umschreiben soll ehrlich gesagt... Bin für jedeHilfe dankbar.

    Vielen Dank nochmal für die Hilfe. Denke mal den rest krieg ich zusammen sonst nerv ich Euch mit PNs.
  • Hi!
    Kann es auch mit MySQL sein?!
    Das ist an sich nämlich übersichtlicher fuer den Admin.
    Ich schreibs dir trotzdem mit Text-Dateien. Kommt nachher in den EDIT.
    mortician

    EDIT
    Sry das der so spät kommt.
    Hatte noch ein eigenes Script wo ich am hapern war.
    Also ich hab nen Anfang gemacht.
    Nun müsste nur noch jmd folgendes machen.
    Wenn der User Off geht, der die IP des Users aus der .txt gelöscht wird.
    Den Rest hab ich mal gemacht.
    Also als 1. hab ich eine MYSQL Tabelle erstellt.

    CREATE TABLE login (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(20),
    password VARCHAR(30),
    email VARCHAR(35)
    );


    Dann die index.php

    PHP-Quellcode

    1. <?php
    2. session_start();
    3. if (!isset($submit)) {
    4. echo "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">",
    5. "<form action=\"",
    6. $PHP_SELF,
    7. "\" method=\"post\">",
    8. "<tr>",
    9. "<td>Name:</td>",
    10. "<td><input name=\"username\" type=\"text\"></td>",
    11. "</tr><tr><td>Passwort:</td><td><input name=\"password\" type=\"password\"></td></tr><tr><td></td><td><input type=\"submit\" value=\"Login\" name=\"submit\"></form></table>";
    12. } elseif (isset($username) && isset($password)) {
    13. $host = localhost;
    14. $user = user;
    15. $pw = pw;
    16. $database = basename;
    17. $vb = mysql_connect($host, $user, $pw);
    18. mysql_select_db($database);
    19. $result = mysql_query("SELECT * FROM login WHERE name='$username' AND password='$password' ORDER BY name ASC",$vb);
    20. if (mysql_num_rows($result) > 0) {
    21. echo "Login erfolgreich!";
    22. //Login erfolgreich
    23. $ip = $REMOTE_ADDR;
    24. $dateiname = "ips.txt";
    25. $datei = fopen($dateiname,"a+");
    26. $inhalt = fread($datei, filesize($dateiname));
    27. echo $inhalt;
    28. $text = "$ip \n";
    29. fwrite($datei,$text);
    30. $login = mysql_fetch_object($result);
    31. $_SESSION['id'] = $login->id;
    32. $_SESSION['name'] = $login->name;
    33. $_SESSION['password'] = $login->password;
    34. $_SESSION['email'] = $login->email;
    35. } else {
    36. echo "Login-Daten sind nicht korrekt!";
    37. }
    38. } else {
    39. echo "Sie haben vergessen einen Benutzernamen bzw. Passwort einzugeben!";
    40. }
    41. ?>
    Alles anzeigen


    Hoffe den Rest könnt ihr machen.
    Falls was unklar ist, gern posten.
    Bin nicht "der PHP Voll-Pro", aber bin fleißig am probieren. Da kam soeine Frage genau richtig ^^
    mortician
    [size=1][FONT="Courier New"]###############_###_####_
    #_ __ #___ _ _| |_(_)__(_)__ _ _ _###############new uploads: [1] [2] [3] [4] [5] [6] [7] [8]
    |#'##\/ _ \ '_|##_| / _| / _` | ' \
    |_|_|_\___/_|##\__|_\__|_\__,_|_||_|###############Bis 28. Sept. weg[/FONT][/size]
  • gar kein thema beil login liest du einfach (da wo der login auch gerüft wird) mit $REMOTE_ADDR die IP aus, dann prüfst du per exist() ob es die datei auch wirklich gibt, falls nicht legst du mit fopen() eine neue datei an, dann schreibst du per fwrite() einfach ip+username in die datei. Und schon hast du die IP des Users in ner textdatei.
    Diese kannst du dann mit fread() wieder auslesen...
    wenn du dann bei nem logout die IP wieder löschen willst kannst du das ganz einfach wieder mit fwrite() machen...

    PS:
    schneller als mortician ^^
    Signatur entsprach nicht den Boardregeln.
    ->gelöscht by lukas2004
  • Da kann ich nur noch 2 Dinge ergänzen:

    Mach nen Loop um die bestehende Datei auszulesen, und schreib den neuen Eintrag ans Ende, da erhälst du eine liste in der form (als Beispiel):

    Quellcode

    1. username1|ip1
    2. username2|ip2
    3. username3|ip3
    4. username4|ip4
    5. [...]


    Noch was zum ganzen System:
    Pass auf wenn du zwei User von der gleichen IP hast, wenn du beim ausloggen einfach nochmals die IP prüfst, und dann den Eintrag mit dieser IP löscht, löscht du unter Umständen mehrere Einträge in der .txt, und ein User bleibt praktisch unsichtbar eingeloggt. Unbedingt das Paar username & ip prüfen nicht nur das eine.
    [SIZE=1]"There's no right, there's no wrong, there's only popular opinion." Jeffrey Goines (Brad Pitt) in Twelve Monkeys[/SIZE]

    [SIZE=1]$ killall chico[/SIZE]
  • Am besten wäre wenn jemand eine kleiner index.php erstellen könnte in der das so steht:

    Username:
    Passwort:

    Einfacher Button Login

    Der Username und dass Passwort sollte er mit der MySQL Datei abgleichen ist eigentlich klar. Wenn der Username und dass Passowrt stimmen soll er die IP in eine Textdatei schreiben und beim verlassen der Seite wieder rausschmeißen.

    Bin Euch wirklich sehr dankbar für Eure Hilfe...
  • Du hast bereits eine MySQL Datenbank mit der Userverwatlung?

    Und du willst trotzdem eine Textdatei.

    Naja falls du ein klein wenig coden kannst, kannst du ne Hammer-Anwendung machen aus den bisherigen Tips, wenn nichts mehr geht schreib mit ne PN, hab sicher was in meinem Code-Archiv das dir hilft (würde es sogar hier posten, bin nur gerade nicht zu Hause)...

    -purx
    [SIZE=1]"There's no right, there's no wrong, there's only popular opinion." Jeffrey Goines (Brad Pitt) in Twelve Monkeys[/SIZE]

    [SIZE=1]$ killall chico[/SIZE]
  • dir sollte aber klar sein das jeder auf die *.txt zugreifen kann, es sei dennsie liegt oberhalt den http roots.

    ich würde immer zu datenbanken raten da mysql noch sehr viele funktionen bereit stellt und weitaus leistungsfähiger ist.
    ausserdem dank phpMyAdmin um einiges leichter zu administrieren ist.
  • hmmm mysql ist also leistungsfähiger als normale textdateien?
    phpmyadmin kann auf mit csv dateien arbeiten (sind auch ganz normale textdateien) ^^
    eine datenbank ist ja auch nur eine datei....
    da herrscht kein unterschied....
    und seit man mit xml datien so wunderbar viel machen kann wird das thema immer beliebter
    Signatur entsprach nicht den Boardregeln.
    ->gelöscht by lukas2004