Извлечение браузера / версии посетителя и сохранение его в базе данных - PullRequest
1 голос
/ 08 марта 2012

У меня настроен mysql, и он полностью работает, однако я хотел бы сделать еще одну вещь.Есть ли способ, которым, когда пользователь вводит свое имя пользователя и пароль и нажимает на кнопку входа, он сохраняет свой браузер и версию браузера в новом столбце в mysql?

1 Ответ

2 голосов
/ 08 марта 2012

Я предполагаю, что технология на стороне сервера , так как вы упоминаете . Если это неправильно, дайте мне знать, и я исправлю следующее.

<?php
  $username = $_POST['username'];
  $password = $_POST['password'];
  $agent = $_SERVER['HTTP_USER_AGENT'];

  $db = new PDO(...);
  $query = $db->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
  if (($result = $query->execute(array($username, MD5($password)))) !== false){
    // login user
    $log = $db->prepare("INSERT INTO log (username, agent) VALUES (?, ?)");
    $log->execute(array($username, $agent));
  }

Вы можете использовать $_SERVER['HTTP_USER_AGENT'], чтобы получить их браузер (и проанализировать значение для определения фактического агента (например, IE, Firefox, Opera и т. Д.)), А затем сохранить эту информацию обратно в базу данных.


Обновление

Во-первых, вам нужно добавить новый столбец в таблицу user, чтобы добавить дополнительную информацию (браузер):

ALTER TABLE   user
ADD COLUMN    useragent VARCHAR(100);

Это нужно будет выполнить непосредственно в базе данных, поэтому, как бы вы ни добавили таблицу user изначально, вам нужно будет выполнить приведенный выше код (phpMyAdmin, я догадываюсь?)

Далее вам нужно изменить ваш UPDATE вызов, чтобы также включить useragent:

$sql = "UPDATE  user
        SET     logindate = NOW(),
                useragent = '" . mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']) . "'
        WHERE   username = '" . $input_username . "'";
mysql_query($sql) or die('Error in SQL: ' . mysql_error());

И это должно быть все, что нужно.

...