Статистика Пользователей PHP

RomSam

Необходимо сделать статистику по залогинившимся пользователям. Вся информация записывается в лог файл(записывается даты, браузер и имя пользователя, который зашел на сайт) Все бы ничего, только вот никак не могу записать имя пользователя. Дата и данные браузера в файл заносятся вот форма входа:
[PHP]<?php
    session_start();
if(isset($_SESSION['login']))
{
isset($_SERVER['PHP_AUTH_USER']);
$agent = $_SERVER['HTTP_USER_AGENT'];
$user = $_SERVER['PHP_AUTH_USER'];
$dtime = date('r');
if($user == "")
{
$user = "None";
}
 
$entry_line = "$dtime | Agent: $agent | Username: $user n";
$fp = fopen("logs.txt", "a");
fputs($fp, $entry_line);
fclose($fp);
isset($_SESSION['login']);
}
?>[/PHP]
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    <head>
    <link href="StylebuttonNew.css" rel="stylesheet" type="text/css">
    <link href="stylesite.css" rel="stylesheet" type="text/css"/>
    <link href="stylenewsite.css" rel="stylesheet" type="text/css"/>
    <link href="stylenew2site.css" rel="stylesheet" type="text/css"/>
    <script type="text/javascript" src="http://scriptnew.js"></script>
    <link href="StyleImage.css" rel="stylesheet" type="text/css">
    <link href="textStyle.css" rel="stylesheet" type="text/css">
    <link href="backgr2.css" rel="stylesheet" type="text/css">
     <title>АИС "Очередь"</title>
    </head>
    <h2>Добро пожаловать!</h2>
    <form action="testreg.php" method="post">
 
    
 <p>
    <label>Ваш логин:<br></label>
    <input name="login" class="colortext" type="text" size="15" maxlength="15">
    </p>
 
 
    
 
    <p>
 
    <label>Ваш пароль:<br></label>
    <input name="password" class="colortext" type="password" size="15" maxlength="15">
    </p>
 
   
 
    <p>
    <input type="submit" class="colortext" name="submit" value="Войти">
 
    
<br>
 
    </p></form>
    <br>
    [PHP]<?php
 
    if (empty($_SESSION['login']) or empty($_SESSION['login']))
    {
   
    echo "Вы вошли на сайт, как гость<br><a href='Aisqueue.php'>Эта ссылка  доступна только для зарегистрированных сотрудников</a>";
    }
    else
    {
 
   
    echo "Вы вошли на сайт, как ".$_SESSION['login']."<br><a  href='meneger.php'>Эта ссылка доступна только  для зарегистрированных сотрудников</a>";
    echo "<br><a href='adminpage.php'>Ссылка для администратора</a>";
    }
    ?>[/PHP]
    </body>
    </html>
Когда захожу под логином/паролем появляется вот эта ошибка Notice: Undefined index: PHP_AUTH_USER in C:\xampp\htdocs\login.php on line 8Вот файл лога:Wed, 26 Jun 2013 18:18:53 +0200 | Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0 | Username: None nWed, 26 Jun 2013 18:19:47 +0200 | Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0 | Username: None n
5 ответов

RomSam

isset($_SERVER['PHP_AUTH_USER']);
Зачем Вы так делаете?
Когда захожу под логином/паролем появляется вот эта ошибка Notice: Undefined index: PHP_AUTH_USER in C:\xampp\htdocs\login.php on line 8
Такого элемента в массиве SERVER нет!


RomSam

более того, не ясна к чему 5-я строка: зачем проверять установленность переменной ВНЕ условия?


RomSam

Такого элемента в массиве SERVER нет!
я бы не стал утверждать так уверенно. Содержимое этого массива зависит от конкретного запроса. если вы чего-то не видели(не знаете) зачем говорить что этого нет? в конкретном случае может и нет... но может быть вполне, почему его не проверить?


RomSam

Окей, окей, убрал я 5ую строчку,согласен она лишняя тут)), но от этого то картина не меняется в мануале я читал, что у массива $_Server есть индекс PHP_AUTH_USER (Когда выполняется HTTP-аутентификация, этой переменной присваивается имя пользователя, предоставленное пользователем.)....но я не знаю, почему это не работает... В интернете, вообще мало инфы про чтение/запись лог файлов..можно ли как-нибудь по другому статистику сделать (мне нужно вывести всех юзеров кто был онлайн) пробовал с использованием куки тоже...не прокатило...


RomSam

Можно хранить все посещения в БД. У каждой записи должен быть указан ip заходившего и время когда заходили на сайт. Потом написать скрипт, который будет вытаскивать пользователей из БД с определённым временем.