![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 11.11.2007 Ostrzeżenie: (10%) ![]() ![]() |
Witam. Napisalem prosty system uwierzytelniania. W pierwszej fazie po zalogowaniu strona do ktorej przesylane sa zmienne z formularza ustawia odpowiedznie zmienne sesyjne. Jeśli wartość zmiennej $_SESSION['logged'] = 1 uzytkownik sie zalogowal:
Jeśli uzytkownik jest zalogowany na tej stronie zostaja wyswietlone linki edycji i usuwania wiadomosci. Aby usunac lub edytowac rekord z bazy danych uzytkownik musi byc zalogowany:
Za pomoca funkcji redirect(); skrypt przekierowuje uzytkownika na strone wynikowa. Niestety w tym przypadku ustawia zmienna $_SESSION['logged'] = 0. Czy ktoś wie jak rozwiazac ten problem? Ten post edytował polak89 25.11.2007, 12:03:11 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 21 Dołączył: 28.06.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
to co napisałes to jest jeden czy 2 skrypty bo nie wiem..?
po zatym Kod $_SESSION['logged] = 1; nie rozumiem problemu troche źle opisane ale może to to... albo dajesz $_SESSION[] albo $_SESSION['']...edi: już wiem w czym jest problem - sesje przypisuje na dany katalog a Twój skrypt do którego przekierowywuje jest w innym katalogu... zaraz coś pomyślimy:P Ten post edytował dadexix 25.11.2007, 11:58:19 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 11.11.2007 Ostrzeżenie: (10%) ![]() ![]() |
To sa 2 skrypty. Chodzi o to ze po przekierowaniu za po moca funkcji redirect() zmienna $_SESSION['logged'] zostaje ustawiona na wartosc 0 a nie na 1.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 346 Pomógł: 23 Dołączył: 28.11.2004 Ostrzeżenie: (0%) ![]() ![]() |
Mi sie zas wydaje, ze w pliku wiesci.php nie umiesciles na poczatku skryptu zapisu session_start(), sprawdz.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 11.11.2007 Ostrzeżenie: (10%) ![]() ![]() |
Cytat Mi sie zas wydaje, ze w pliku wiesci.php nie umiesciles na poczatku skryptu zapisu session_start(), sprawdz. session_start() zostala ustawiona w kazdym z plikow |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 21 Dołączył: 28.06.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
może byś dał plik wiesc.php?
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 11.11.2007 Ostrzeżenie: (10%) ![]() ![]() |
plik wiesci.php
Ten post edytował polak89 25.11.2007, 12:29:37 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 439 Pomógł: 21 Dołączył: 28.06.2007 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
powiedz mi coś
Cytat Chodzi o to ze po przekierowaniu za po moca funkcji redirect() zmienna $_SESSION['logged'] zostaje ustawiona na wartosc 0 a nie na 1. sprawdzałeś w ogóle? bo w tym skrypcie nigdzie nie używasz ten zmiennej sesyjnej..? Ten post edytował dadexix 25.11.2007, 12:38:00 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 11.11.2007 Ostrzeżenie: (10%) ![]() ![]() |
Cytat nie rozumiem problemu troche źle opisane Ludzie!!! Czy wy naprawde nie rozumiecie istoty tego problemu?? Loguje sie poprzez plik login.php... stroną wynikową jest stron wiesci.php ktora otrzymuje zmienne formularza i przypisuje im zmienne sesyjne. plik wiesci.php:
a nastepnie sprawdza zawartosc zmiennej $_SESSION['sprawdz']. Jesli zmienna ma wartosc 1 uzytkownik jest zalogowany. Nastepnie strona wiesci.php wyswietla linki edycji i usuwania wiadomosci jesli uzytkownik jest zalogowany:
Klikajac lacze "usuń" przekazujemy do skryptu transactscript.php zmienna action=delete jesli chcemy usunac wiadomosc. Plik transactscript nie wyswietla zadnej tresci jedynie przekierowuje uzytkownika na strone wynikowa wiesci.php jesli ten jest zalogowany czyli $_SESSION['sprawdz'] = 1. plik transactcript.php:
Problem pojawia sie w momencie przekierowania na strone wiesci.php ktora powinna zawierac zmienna sesyjna $_SESSION['sprawdz']=1 aby moc ponownie wyswietlic łącza "usuń" i "edytuj". ŁĄcza natomiat NIE SĄ wyświetlane a zmienna sesyjna$_SESSION['sprawdz'] zwraca wartosc 0... kazdy plik w swojej gornej czesci zawiera funkcje session_start wiec nie wmawiajcie mi ze jej nie ma (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) wiec moje pytanie jest nastepujace: dlaczego plik wiesci.php "gubi" zmienne sesyjne?a moze problem tkwi w pliku transactscript? prosciej nie potrafie... hey...ludzie! zyjecie? jest tos mi w stanie pomoc? Ten post edytował polak89 25.11.2007, 14:45:53 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 346 Pomógł: 23 Dołączył: 28.11.2004 Ostrzeżenie: (0%) ![]() ![]() |
Dlatego, ze po przeladowaniu nie masz juz zmiennych POST, przez co:
zmienne sesyjne maja false, dalej
nie przypisuje zmiennej sprawdz 1 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 11.11.2007 Ostrzeżenie: (10%) ![]() ![]() |
Cytat Dlatego, ze po przeladowaniu nie masz juz zmiennych POST wiec jak moge poprawic powyzszy kod? |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 346 Pomógł: 23 Dołączył: 28.11.2004 Ostrzeżenie: (0%) ![]() ![]() |
Nie przerabiajac struktury Twojego skryptu zamien:
na
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 19:14 |