2016-07-08 12 views
0

Ich arbeite an einem WordPress-Plugin, das Bruteforce-Angriffe protokolliert, aber dies ist mein zweites Plugin und ich bin mir nicht sicher, wie das geht.Erstellen eines PHP-Protokolls ohne Datenbank

Ich ergreife die IP der Maschine, die Bruteforce Angriff auf das wp-admin Formular mit guard_get_ip_address().

Aber jetzt bin ich fest, wie Sie die tatsächliche IP in dem Moment speichern, wenn der Benutzer Bruteforce angreift. Gibt es eine Möglichkeit, dies in einer Tabelle zu speichern, die ich unten erstellt habe?

function logs() { 
    ?> 
    <table> 
    <tr> 
     <th>IP</th> 
    </tr> 
    <tr> 
     <td><?php echo guard_get_ip_address(); ?></td> 
    </tr> 
    </table> 
    <?php 
} 
function add_logs() { 
    wp_add_dashboard_widget('dashboard_widget', 'Logs', 'logs'); 
} 
add_action('wp_dashboard_setup', 'add_logs'); 

Edit: die Funktion guard_get_ip_address() versucht nur IPs zu greifen;

function guard_get_ip_address() { 
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) { 
     $ip = $_SERVER['HTTP_CLIENT_IP']; 
    } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
     $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; 
    } else { 
     $ip = $_SERVER['REMOTE_ADDR']; 
    } 

    return $ip; 
} 
+0

warum speichern html? HTML ist eine riesige Verschwendung von Speicherplatz. Wenn Sie Daten protokollieren möchten, schreiben Sie JUSt die Informationen aus, die Sie speichern möchten, und formatieren Sie sie bei Bedarf zur Anzeige. 'file_put_contents ('log.txt', $ ip_addr, FILE_APPEND)' –

+0

@MarcB Bist du sicher, dass WordPress keine Funktion für diese Sachen hat? Ich möchte die Funktionen voll nutzen, die WordPress für dieses bietet :) –

+0

wahrscheinlich tut, aber ich versuche zu vermeiden, so wenig über Wordpukes (kein Tippfehler) Eingeweide wie möglich zu lernen. –

Antwort

-1

Sorry, ich habe die Frage missverstanden.

In Ihrem Plugin müssen Sie die Serverdaten in ein JavaScript-Element speichern, in dem Sie JQUERY zur Ausführung verwenden können.

Der schnellste Weg, den ich im Moment in meinem Kopf weiß, ist Cookies.

  1. Erstellen eines Cookies in PHP und ziehen Sie es in JS:

    $ cookie_name = "IP"; $ cookie_value = "127.0.0.1"; // füge hier deinen Wert hinzu setcookie ($ cookie_name, $ cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 Tag

  2. var x = document.cookie;

von dort können Sie JQUERY verwenden, um die Tabelle einzufügen:

$ ('tableid tr: erster td'). Html (x);

+0

Wie kann ich die darin gespeicherten Daten wie in meinem Post in der Tabelle abrufen? –

Verwandte Themen