Zmiana statusu po kliknięciu wyloguj

AidisProPlayer | 2021-02-17 10:25:39 UTC | #1

Jak zrobić tutaj żeby po kliknięciu wyloguj ustawiało dla użytkownika status Nie-Dostępny w mysql.

Tutaj zmienna nicku gracza w tabeli = $user[‘username’];

<?php
if (!empty($_SESSION['user'])) {
    if (isset($_GET['logout'])) {
        unset($_SESSION['user']);
        header('Location: index.php');
    }
    $user = $_SESSION['user'];
    echo 
        ""   
        ;
} else {
header("Location: index.php"); 
}
?>

psycho | 2019-04-07 14:01:47 UTC | #2

Ale to tutaj nie ma nic wspólnego z bazą danych..


AidisProPlayer | 2019-04-07 14:02:38 UTC | #3

No tak i chodzi żeby dodać

if (isset($_GET['logout'])) {
        TUTAJ BAZA DANYCH
        unset($_SESSION['user']);
        header('Location: index.php');
    }

psycho | 2019-04-07 14:07:44 UTC | #4

W sensie nie ma nic z bazy, jakaś struktura tabel, cokolwiek takiego


AidisProPlayer | 2019-04-07 14:09:07 UTC | #5

Chodzi mi żeby po kliknięciu wyloguj w tabeli “users” zmieniało rekord “status” na “Nie-dostępny”


psycho | 2019-04-07 14:09:33 UTC | #6

Używasz PDO czy mysqli?


AidisProPlayer | 2019-04-07 14:09:47 UTC | #7

mysqli.


psycho | 2019-04-07 14:12:26 UTC | #8

mysqli_query(polaczenie, "UPDATE `users` SET status = 'Nie-dostępny' WHERE user='" . $_SESSION['user'] . "'");

Ale nie obiecuję działania, bo nie wiem jak wygląda struktura tabeli i jakie dane są pod zmiennymi.


AidisProPlayer | 2019-04-07 15:17:23 UTC | #9

Nadal nic ale. Błędów niema.
Zmienna $user[‘username’] to nick użytkownika z tabeli.
kod:

<?php
//Rozpoczynamy sessje
session_start();
// Sprawdzamy czy użytkownik jest zalogowany
if (!empty($_SESSION['user'])) {
    // Sprawdzamy czy użytkownik nie wcisnął przyciska "Wyloguj", sprawdzamy czy istnieje parametr logout w url
    if (isset($_GET['logout'])) {
        $mysqli = new mysqli('localhost', 'user', 'haslo', 'tabela');
    if ($mysqli->connect_error) {
    // w przypadku błędu (od wersji PHP 5.3), wyświetli się odpowiedni komunikat
    die('Connect Error ('.$mysqli->connect_errno.') '. $mysqli->connect_error);
    // w przypadku błędu (do wersji PHP 5.3), wyświetli się odpowiedni komunikat
    if (mysqli_connect_error()) {
       die('Connect Error (' . mysqli_connect_errno() . ') '
       . mysqli_connect_error());
    }
}
mysqli_query($mysqli, "UPDATE `users` SET status = 'Nie-dostępny' WHERE username='" . $user['username'] . "'");
        unset($_SESSION['user']);
        // Ładujemy na nowo plik index.php
        header('Location: index.php');
    }
    // Wyświetlamy treść dostępną do zalogowanych użytkowników
    $user = $_SESSION['user'];
    echo 
        require_once 'panel.php';
        ;
} else {
    // Jeżeli użytkownik nie jest zalogowany wysyłamy go do login.php
    require_once 'login.php';
}
?>

psycho | 2019-04-07 16:34:20 UTC | #10

Czyżby to był poradnik od Zelenta?

Podaj strukturę tabeli, bo sami jej sobie nie wyczarujemy, a nie da się bez tego kreować zapytań (do czegoś muszą się one odnosić)


AidisProPlayer | 2019-04-07 18:53:13 UTC | #11

[quote=”psycho, post:10, topic:10609”]
Zelenta
[/quote]

To nie od niego ;)
A tabela to w zasadzie 3 kolumny
|ID|username|status|


Bump | 2019-04-07 19:05:32 UTC | #12

Jaki jest cel takiego statusu? Jak ktoś się nie wyloguje to i tak będzie dostępny


SP24 | 2019-04-07 19:20:18 UTC | #13

Ja bym się upewnił czy zmienna $mysqli nie jest pusta (wyświetl jej zawartość var_dump()).
Ale ja osobiście nie korzystałbym z mysqli, gdyż PDO jest lepszym i bardziej aktualnym rozwiązaniem.


AidisProPlayer | 2019-04-07 19:29:35 UTC | #14

Wtedy automatycznie zostanie wylogowany po 5 min bezczynności.


system | 2021-02-17 10:25:44 UTC | #15

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.