как в клас да взема променлива от сесия или обикновенна

ioio

Member
в едно скриптче което ми брои посетителите в момента искам да добавя да вкарва и кои от посетителите са и членове но немога да взема от сесията примерно юзерското ID.Никое от тези
var $userid = $idto ; или
var $userid = $_SESSION['userid'] ; или
$this->user = $_SESSION['userid'] ; не взимат аидито ?
 
ioio каза:
не съм пробвал ама то сигурно ако е правилен синтаксиса ще мога да взимам ккаквато и да е а ако е грешен нищо няма да си става
Имаш ли session_start(), непосредствено на следващия ред след <?php ?
Имаш ли препратка към текущата страница от страницата, в която се създават тези променливи - линк, форма ? Най-добре ще е да покажеш целия код или част от него за да ти кажа каде е грешката. Най-вероятно грешката не е в това, което си показал.
 
ето го целия код щото маи иначе не става ясно какъв ми е проблема редовете с коментарите са някои от моите опите които не работят:

session_start();
require("../db.php");

If ( SESSION_IS_REGISTERED("username") ) {
$username=$_SESSION['username'];
$userid = $_SESSION['userid'];
}

include_once ("usersOnline.class.php");
$visitors_online = new usersOnline();

това е фаила в които включвам тоя клас
======================
това е usersOnline.class.php
=======================

class usersOnline {
var $timeout = 600;
var $count = 0;

function usersOnline () {
$this->timestamp = time();
$this->ip = $this->ipCheck();
//$this->user = $_SESSION['userid'] ;
//$this->function user();
$this->new_user();
$this->delete_user();
$this->count_users();
}

//function user() {
//if(SESSION_IS_REGISTERED("username") ){$userid = $_SESSION['userid']}
//}

function ipCheck() {
$ip = $_SERVER['REMOTE_ADDR'];

return $ip;
}

function new_user() {$insert = mysql_query ("INSERT INTO useronline(timestamp, ip, userid) VALUES ('$this->timestamp', '$this->ip', '$this->userid' )");}

function delete_user() {$delete = mysql_query ("DELETE FROM useronline WHERE timestamp < ($this->timestamp - $this->timeout)"); }

function count_users() {
$count = mysql_num_rows ( mysql_query("SELECT DISTINCT ip FROM useronline"));
return $count;
}

}
 
@georgimateev, $username=$_SESSION['username'];
@ioio, грешката ти е в SESSION_IS_REGISTERED, тази функция е несъвместима с $_SESSION, а и не се използва вече. Махни я, а ако толкова държиш я замени с isset() функцията. Иначе трябва да работи.
И да знаеш, не използвай тези стари функции свързани с регистриране не сесия.. session_register() отпадна с php 5.
 
peshko каза:
@georgimateev, $username=$_SESSION['username'];
@ioio, грешката ти е в SESSION_IS_REGISTERED, тази функция е несъвместима с $_SESSION, а и не се използва вече. Махни я, а ако толкова държиш я замени с isset() функцията. Иначе трябва да работи.
И да знаеш, не използвай тези стари функции свързани с регистриране не сесия.. session_register() отпадна с php 5.
Има огромна разлика между $_SESSION['username'] = $username; $username = $_SESSION['username']; $username == $_SESSION['username'] и $username === $_SESSION['username']

Това са все различни неща и в случаят трябва първото, ако искаш да се запази нещо в сесията.

И СЛЕД като се запази трябва да се изчита от там.
 
То аз в сесията променливата я слагам още при логването на потребителя.Извиняваи че не съм го уточнил.Както и да е след още няколко неуспешни опита просто махнах това да не е клас а наи обикновен си пхп код които си работи прекрасно.Чак ме е яд че толкова просто решение ми отне 2 дена проби ама то човек така се учи.
Благодаря за отговорите ви
 

Горе