Статус на потребител

botevis2

Registered
Значи искам да направя статуса на потребител гледам от урока в сайта
1.Не съм правил нова таблица `status` ами в моята `users` добавих timestamp varchar 255

2.userstats.php го направих като си смених името на таблицата във всички заявки

3.След това там има profile.php,index.php и един примерен файл.

Та на мен ми трябва за profile.php сложих

Код:
include("userstatus.php");
$u = (isset($_GET['u']));
if(isset($_SESSION['user_logged'])) 
{ 
$timestamp = time(); 
$session = 1; 
} 
$timelast = time() - 60*30; 
echo showUserStatus($_SESSION['user_logged'], $u, $timestamp, $timelast, $session);

И като грешки ми изкарва

Notice: Undefined index: user_logged in D:\xampp\htdocs\login\profile.php on line 25

Notice: Undefined variable: timestamp in D:\xampp\htdocs\login\profile.php on line 25

Notice: Undefined variable: session in D:\xampp\htdocs\login\profile.php on line 25

И отдоло Офлайн :( при положение че съм влезнал в профила на потребителя който гледам
 
не го знам кой е този урок ,пусни един линк ,ама май $_SESSION ['is_logged'] не е е сетнато ,да не си забравил session_start() :roll:
 
http://web-tourist.net/login/login/view.php?st=262 link към урока

Ами сложил сам го в profile.php и там имам session_start от преди
 
error_reporting(E_ERROR | E_PARSE | E_WARNING); - това го слагаш най-отгоре(под session_start() разбира се), и то спира тези грешки.
Много хора казват да не се спират грешките, но на мен не ми е правило абсолютно никакви проблеми :)
 
http://web-tourist.net/login/login/view.php?st=2621 Извинявайте за грешния линк

Това е целият ми profile.php,промених някой работи и стана следното: когато влезна с някой потребител всички са онлине когато излезна всички за офлине
Код:
<?php
session_start(); 
include "config.php";
$id = (int)($_GET['id']);
$users_q = mysql_query("SELECT id,username,realname,realfamily,pic,date FROM `users` WHERE id='$id'");
while($r = mysql_fetch_array($users_q))
{
$user=$r['username'];
$realname=$r['realname'];
$realfamily=$r['realfamily'];
$pic=$r['pic'];
$date=$r['date'];
echo "Профил на:$realname $realfamily <hr />";
echo "<img src='Upload/$pic' width='180px' height='230px' border='5'></img>";
echo "<b>Регистриран на:</b>$date";

include("userstatus.php");
$u = (isset($_GET['id']));
if(isset($_SESSION['username'])) 
{ 
$timestamp = time(); 
$session = 1; 
} 
$timelast = time() - 60*1; 
echo showUserStatus($_SESSION['username'], $u, $timestamp, $timelast, $session);

}

?>
 
мога да ти кажа аз как го правя това,доста просто е и не е вярно на 100% ,но пък е доста просто :)
в таблицата си users правя едно поле online ,което по дефоулт е 0 ,в логин файла след като направя проверките давам ъпдейт в базата данни where `id`=$_session['id'];
всъщност ето ти код да видиш ,по-лесно ще рабереш
if(isset($_POST['submit'])){
$username= mysql_real_escape_string(htmlentities(trim($_POST['username'])));
$password= md5($_POST['password']);
$query= mysql_query("SELECT `id` FROM `users` WHERE `username`='$username' AND `password`='$password'");
if(mysql_num_rows($query)>0){
$row= mysql_fetch_assoc($query);
$_SESSION['id']=$row['id'];
$q= mysql_query("UPDATE `users` SET `online`=1 WHERE `id`='".$_SESSION['id']."'");
header('Location: index.php');
}
}

в логаут файла пък когато някой иска да излезе правя това
session_start();
$query= mysql_query("UPDATE `users` SET `online`=0 WHERE `id`='".$_SESSION['id']."'");
session_destroy();
header('Location: index.php');

и с една проста заявка мога да взема кой е онлайн и пак казвам не е много правилно ,защото не съм посочел време на сесията и така нататък :)
 

Back
Горе