Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Odświeżanie
Forum PHP.pl > Forum > Przedszkole
mani
Witam

Chciałbym rozwiązać problem z wyświetlaniem informacji o logowaniu. Otóż

  1. <?php
  2. if($_SESSION["zalogowany"]==0){
  3. echo '<span style="color:gray">Nie jesteś zalogowany </span>';
  4. } else if($_SESSION["zalogowany"]==1){
  5. echo '<span style="color:gray">Jesteś zalogowany </span>';
  6. }
  7.  
  8. if($_GET["wyloguj"]=="tak" && empty($przycisk)){
  9. $_SESSION["zalogowany"]=0;
  10. echo 'Zostales wylogowany z serwisu';
  11. }
  12. ?>


i mam problem taki iż po wylogowaniu komunikat wygląda w ten sposób

"Jesteś zalogowany Zostales wylogowany z serwisu "

Chciałbym dodawać funkcje ,żeby odświeżał mi stronę po każdej akcji - w jaki sposób da się to zrobić? proszę o pomoc
golaod
  1. <?php
  2. if($_SESSION["zalogowany"]==0){
  3. echo '<span style="color:gray">Nie jesteś zalogowany </span>';
  4. } elseif(isset($_GET['wyloguj']) && $_GET["wyloguj"]=="tak" && empty($przycisk)){
  5. $_SESSION["zalogowany"]=0;
  6. echo 'Zostales wylogowany z serwisu';
  7. }elseif($_SESSION["zalogowany"]==1){
  8. echo '<span style="color:gray">Jesteś zalogowany </span>';
  9. }
  10. ?>
MWL
mozesz zrobić to za pomocą przekierowania nagłówka http. header("Location: LOKALIZACJA"); gdzie LOKALIZACJA to link gdzie ma być przekierowanie. Poza tym o wiele lepiej było by to napisać inaczej...
Spawnm
daj tak i bedzie ok:

  1. <?php
  2. if($_GET["wyloguj"]=="tak" && empty($przycisk)){
  3. $_SESSION["zalogowany"]=0;
  4. echo 'Zostales wylogowany z serwisu';
  5. }
  6.  
  7. if($_SESSION["zalogowany"]==0){
  8. echo '<span style="color:gray">Nie jesteś zalogowany </span>';
  9. } else if($_SESSION["zalogowany"]==1){
  10. echo '<span style="color:gray">Jesteś zalogowany </span>';
  11. }
  12. ?>


a najlepiej zainteresuj się funkcją session_destroy();

a co do prosby to np:
  1. <?php
  2. if($_GET["wyloguj"]=="tak"){
  3. $_SESSION["zalogowany"]=0;
  4. header('location:'$_SERVER['PHP_SELF']);
  5. }
  6. ?>
mani
spawnm - gdy daje twój przykład wywala mi parse error w niki z headerem.

Zastosowując się do waszych przykładów ten problem rozwiązałem ale pojawił się następny - w odwrotną stronę. Po wylogowaniu i zalogowaniu komunikat wygląda następująco : "Nie jesteś zalogowany Zalogowano poprawnie " wkleję cały mój skrypt logowania może tak będzie lepiej

  1. <?php
  2. if(isset($_GET['wyloguj']) && $_GET["wyloguj"]=="tak" && empty($przycisk)){
  3. $_SESSION["zalogowany"]=0;
  4. echo 'Zostales wylogowany z serwisu';
  5. }else if($_SESSION["zalogowany"]==1){
  6. echo '<span style="color:gray">Jesteś zalogowany </span>';
  7. } else if ($_SESSION["zalogowany"]==0){
  8. echo '<span style="color:gray">Nie jesteś zalogowany </span>';
  9. }
  10.  
  11. if(!empty($_POST["login"]) && !empty($_POST["haslo"]) && !empty($przycisk)){
  12.    if(mysql_num_rows(mysql_query("select * from usery where login = '".htmlspecialchars($_POST["login"])."' AND haslo = '".htmlspecialchars($haslo)."'"))){
  13.    echo "Zalogowano poprawnie";
  14.    $_SESSION["zalogowany"]=1;
  15. } else {
  16.    echo "  Podane dane sa nieprawidlowe";
  17. }
  18. }
  19. if(empty($_POST["login"]) && empty($_POST["haslo"]) && !empty($przycisk) || empty($_POST["haslo"]) && !empty($przycisk) || empty($_POST["login"]) && !empty($przycisk)){
  20. echo "  Prosze wypelnic oba pola";
  21. }
  22. ?>


Jeszcze mam dwa pytanka
Jak powiedział kolega spawmn abym zainteresował się funkcją session_destroy , wiem, że służy ona do zabijania sesji, dająć ją na końcu kodu, przez co przechodząc na każdą podstronę użytkownik musiałby się każdorazowo logować czyż nie tak?
A drugie pytanie to czy istnieje możliwość przykładowo wykonuje się akcja wylogowania, ale chciałbym żeby komunikat był w zupełnie innym miejscu strony, czy może można za pomocą jakieś funkcji,zmiennej ? dziękuję za pomoc.
mani
dobra nie obijałem się i rozwiązałem problem. Jeśli ktoś by mógł odpowiedzieć na moje pytanie bym był wdzięczny bo chciałbym gdzie indziej umieścić komunikaty a zmiana ułożenia skryptu znów wprowadzi błąd.
Spawnm
co do:
spawnm - gdy daje twój przykład wywala mi parse error w niki z headerem.
odp:
zgubiłem kropke...powinno być
header('location:'.$_SERVER['PHP_SELF']);

dalej,
Jak powiedział kolega spawmn abym zainteresował się funkcją session_destroy , wiem, że służy ona do zabijania sesji, dająć ją na końcu kodu, przez co przechodząc na każdą podstronę użytkownik musiałby się każdorazowo logować czyż nie tak?

kto ci napisał że ma byc na końcu strony ?
dajesz np :
if($_GET['wyloguj']){
session_destroy();
echo 'zostałeś wylogowany.';
}

a co do pytania to jesli już chcesz miec wszystko w 1 pliku to pobaw się z css komunikatu o wylogowaniu i ustaw go tam gdzie ci się podoba (daj w <div>)
mani
rozumiem w ten sposób, dzięki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.