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.