Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 6.01.2011 Skąd: Sosnowiec Ostrzeżenie: (0%)
|
Witam, chciałem poćwiczyć troszkę PHP
Chce zrobić wszystko dokładnie i stwierdziłem że zasięgnę porady fachowców (IMG:style_emoticons/default/smile.gif) Oto moje dwie strony StronaStartowa.php
Oraz plik Logowanie.php
Najbardziej interesująca część kodu StronyStartowej to <!-- Tabela Logowanie --> Jestem zalogowany z poprawnymi danymi, i wszystko wydaje się być w porządku, jednak jeśli jestem zalogowany i kliknę w link w przeglądarce (Firefox) to napis "Zostałeś zalogowany jako ZMIENNA SESYNA" zmienia się na "zostałeś zalogowany jako " I oto pytanie, prosiłbym o podpowiedź w jaki sposób zrobić by pokazywało który użytkownik jest zalgowany nawet po kliknięciu w link, wiem ze problem do tyczy zmiennych przekazywanych przez formularz z tabeli logowanie, no bo wiadomo że po kliknięciu w link dane z formularza zostaną zlikwidowane Nie chce także by w przeglądarce po naciśnięciu linku przeszło do linijki "wypełnij formularz" Mam nadzieje że znajdziecie dla mnie jakąś wskazówkę. Z góry dziękuje Eldiane |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 61 Dołączył: 20.08.2010 Ostrzeżenie: (0%)
|
Zrób to w ten sposób:
Kod Jeśli jesteś zalogowany { Wyświetl "Zostales poprawnie zalogowany " . $_SESSION["nickname"]; } W przeciwnym wypadku (nie zalogowany) { Jeśli wysłano formularz { Walidacja danych, zapytanie do bazy, sprawdzenie czy user istnieje $_SESSION["logged"] = 1; //Przypisanie 1 gdy jestes zalogowany $_SESSION["nickname"] = $nickname; header( "Location: logowanie.php" ); // Przekierowanie na tą samą stronę exit; } W przeciwnym wypadku (formularz nie wysłany) { Wyświetl formularz } } Myk z header uprości kod i naprawi problem z "ponownym wysłaniem formularza przy odświeżeniu", którego jeszcze nie zauważyłeś. Dodatkowo wywal pierwsze zapytanie. Drugie wystarczy, bo sprawdza i login i hasło Po trzecie poczytaj o zabezpieczaniu zapytań. Na tym etapie nauki wystarczy wyrobienie sobie nawyku używania mysql_real_escape_string, ale polecam zapoznanie sie później z PDO. Ten post edytował Noidea 7.01.2011, 16:01:39 |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 6.01.2011 Skąd: Sosnowiec Ostrzeżenie: (0%)
|
Ok, dziękuje za podpowiedź tylko jeżeli dam Header w środku kodu pojawia mi się błąd
Czy mogłabyś mi doradzić coś i w tym temacie? (IMG:style_emoticons/default/smile.gif) W sumie heder() dziś odkryłem i jeszcze go aż tak dobrze nie poznałem, musisz wybaczyć mi moją opieszałość PS: cudzysłowy oraz {} przy konstrukcji IF zostały sprawdzone i wszystko jest w porządku |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 61 Dołączył: 20.08.2010 Ostrzeżenie: (0%)
|
Nagłówki (headers) muszą zostać wysłane do przeglądarki PRZED jakimkolwiek tekstem. Ty wysyłasz coś dwie linijki przed header().
Najprościej będzie wywoływać funkcję ob_start() na samym początku każdej strony. Przykład:
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 6.01.2011 Skąd: Sosnowiec Ostrzeżenie: (0%)
|
Dziękuje za pomoc (IMG:style_emoticons/default/smile.gif)
Lecz jednak to nie koniec kłopotów, po zmianach dałbym sobie rękę uciąć że wszystko powinno być OK, jednak jak widać straciłbym rękę ;D
I teraz ciągle pojawia się wypełnij formularz, nawet po poprawnym wprowadzeniu danych użytkownika, wszytko przez funkcję header(), można na to coś poradzić? Ten post edytował Eldiane 7.01.2011, 18:50:26 |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 226 Pomógł: 61 Dołączył: 20.08.2010 Ostrzeżenie: (0%)
|
1) Popatrz w kodzie który wkleiłeś na linijkę 32, a następnie na 6.
2) Jak już zacznie działać, to sprawdź, czy kiedykolwiek zdążysz przeczytać ten napis: echo "Zostales poprawnie zalogowany jako: ".$_SESSION["nickname"]; Jeśli chcesz wyświetlić taką informację, to może ci się przydać nagłówek Refresh (przekierowanie z opóźnieniem) zamiast Location:
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 34 Pomógł: 0 Dołączył: 6.01.2011 Skąd: Sosnowiec Ostrzeżenie: (0%)
|
Dziękuje za wytknięcie wszystkich błędów, skrypt poprawiony i działa jak należy (IMG:style_emoticons/default/smile.gif)
Jeszcze raz z góry dziękuje. Eldiane |
|
|
|
![]() ![]() |
|
Aktualny czas: 24.12.2025 - 22:15 |