Jak zrobić, by ktoś był widoczny na stronie online/offline

A ten drugi link (bez .php na końcu)?

Sprawdziłem jeszcze raz i jest exec done. w pierwszym linku ktory dales.

I jest zmiana uzytkownika o numerze id 2 w tabeli zmiena ta wynosi z 17:37:17 na 22:28:40

Ufff. Czyli zadziałało (ale mniej elegancko niż chciałem). A sprawdź jeszcze ten kod:

<?php

  session_start();

  date_default_timezone_set('Europe/Warsaw');

  if (isset($_SESSION['login'], $_SESSION['id']))

  {

    $db = new PDO('sqlite:darom.sqlite');

    $db->exec('UPDATE uzytkownicy SET status_uzytkownika = DATETIME(\'NOW\') WHERE id = ' . $_SESSION['id']);

    echo 'Użytkownik o id=' . $_SESSION['id'] .' zaktualizowany.
';

  }

  else

    echo 'Nie jesteś zalogowany!
';

?>

Poprawiłem linię 8 (z echo) bo była literówka.

Dodane 09.01.2013 (Śr) 23:41

Jeśli podczas wywołania linka http://www.history.is.net.pl/status zmienia się w bazie czas, to mamy tę pierwszą część załatwioną. Jutro przygotuję Ci kod IFRAME do wstawiania na stronach.

Nic się nie zmieniło w zapisie w tabeli, zostało tak jak było

A czy coś się wypisuje na ekranie?

Dodałem dwie linie kodu pod koniec (zobacz):

else

    echo 'Nie jesteś zalogowany!
';

Nie, jest pusty biały ekran

A który link wcześniej zadziałał i czy teraz nie działa (ale czy coś wypisze teraz po dodaniu tych 2 linijek)?

Teraz mi sie pojawil napis Nie jesteś zalogowany!

Wcześniej zadziałał link ten: http://www.history.is.net.pl/status.php ale w przypadku kodu dla uzytkownika o id=2

No bo może nie jesteś zalogowany? :frowning:

Zaloguj się w innej zakładce.

Cały czas jestem zalogowany na mojej stronie

A wrzuć jeszcze taki kod:

<?php

  session_start();

  date_default_timezone_set('Europe/Warsaw');

  echo 'Zalogowany: '. zalogowany() . '
';

  echo 'Username: '. $_SESSION['username'] . '
';

  echo 'id: ' . $_SESSION['id'] .'
';

  echo 'login: ' . $_SESSION['login'] .'
';

  if (isset($_SESSION['login'], $_SESSION['id']))

  {

    $db = new PDO('sqlite:darom.sqlite');

    $db->exec('UPDATE uzytkownicy SET status_uzytkownika = DATETIME(\'NOW\') WHERE id = ' . $_SESSION['id']);

    echo 'Użytkownik o id=' . $_SESSION['id'] .' zaktualizowany.
';

  }

  else

    echo 'Nie jesteś zalogowany?
';

?>

i sprawdź co się wyświetli (pokaż tutaj).

Teraz jest błąd:

Fatal error: Call to undefined function zalogowany() in /home/users/history/public_html/status.php on line 4

"To wywal linię 4 z

echo 'Zalogowany: '. zalogowany() . '
';

I sprawdź co się wypisze.

Nie mam całości Twojego kodu, więc trudno mi ogarnąć, jak wygląda u Ciebie logowanie i weryfikacja użytkownika. Kawałki kodu, które tu znajduję, nie zawsze są poprawne (tj. u Ciebie użyte).

Wiesz gdzie masz sprawdzanie zalogowania (pokaż kawałek tego kodu)?

Teraz wyszło mi: http://www.history.is.net.pl/status.php

Username:

id:

login:

Nie jesteś zalogowany?

A link http://www.history.is.net.pl/status nie działa? Jak działa, to się go trzymajmy.

Nie działa, bo też wyskakuje „Nie jesteś zalogowany?”

Działa w tym znaczeniu, że pokazuje to samo co ten z .php

Idę spać (rano do roboty), wrócimy do tego tematu jutro po południu.

Jak możesz to wklej kawałek kodu, gdzie masz sprawdzanie zalogowania.

OK to do jutra. Dobranoc.

Dodane czwartek, 10 stycznia 2013, 00:14

if (!empty($data['user']) && !empty($data['hash'])) {

                $user = $db->select('SELECT * FROM uzytkownicy WHERE login = :user', array(':user' => $data['user']));


                if ($user) {

                    if ($user['login'] == $data['user'] && md5($user['id'] . '' . $user['haslo']) == $data['hash']) {

                        $sesja_uzytkownika = $app->config('dane_sesyjne');


                        foreach ($sesja_uzytkownika as $zmienna => $dana) {

                            $_SESSION[$zmienna] = $user[$dana];

                        }

A z jakiego pliku ten fragment pochodzi?

z pliku index.php bo w pliku logowanie.php mam sam formularz