![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 22.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Powiedzcie mi czy używanie jednego pliku index.php z includowanymi (w razie potrzeb) modułami w php to złe podejście do sprawy? Czy powinienem używać wielu plików (/ramek?).
Mam stronkę, która ma spełniać bardzo proste funckje: - Strona oparta jest o prostą tabelę (wiersz i dwie kolumny) - Po otwarciu pokazuje newsa (includowany - lewa kolumna), formularz rejestracji (includowany - prawa kolumna) i logowania (includowany - prawa kolumna) - Zalogowanie i zarejestrowanie użytkownika działa tak samo - - Ukrywa formularz rejestracji i logowania oraz pokazuje formularz zgłoszenia (includowany) Problem mam z sesją, strona wygląda tak (to w środku to moja tabelka;] ): sesji nie ma ------- + | + jest ------- nie ma (Kodu jest sporo, więc ciężko coś wkleić, jak będziecie mieli pomysł co zamieścić to będę wklejał kawałki.) |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
sesję startuje na samej górze głównego pliku index lub header (jeżeli wyodrębniłeś część nagłówkową strony), a nie w plikach inkludowanych
co do pytania czy to dobry pomysł z tym inkludowaniem to zależy od sytuacji: jeżeli masz prostą stronkę to może być, ale przy większym projekcie takie posiekanie strony to już za bardzo zagmatwa wszystko |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 22.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Sam start sesji to (session_start()) jest w głównym pliku.
W rejestracji i logowaniu jest wypełniana zmienna $_SESSION['auth'] w zależności od której później pokazuję albo ukrywam poszczególne dołączane formularze (te includowane). Strona jest i ma być (nie będzie się rozwijała funkcjonalnie) mega prosta. Tak wygląda główny plik, includowane pliczki zostały podzielone na _form - te które zawierają formularze do logowania/rejestracji/zgłoszenia oraz te które zawierają kod (dlatego są 'podwójnie' np. login_form.php i login - formularz i zaraz po nim skrypt)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
no dobra ale w czym właściwie jest problem? tak na marginesie lepiej jest oprzeć strukturę strony na <div> a nie na tabelkach
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 22.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Chodzi o to, że zaincludowany formularz odwołuje się do strony głównej (w zasadzie sam do siebie, bo jest dołączony bezpośrednio do strony) a mimo to nie w przestrzeni strony jest dostępna zmienna sesji
zmienna sesji - nie ustawiona ------- + | + ustawiona ------- znów nie ustawiona Przez to nie działa poprawnie ukrywanie/pokazywanie pozostałych podmodułów, sesja zamiast sobie żyć - w jakimś 'bliżej nie określonym' momencie umiera... Pytanie - dlaczego... |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
czyli, że w inkludowanym pliku nie masz dostępu do zmiennych z sesji tak? a daj print_r($_SESSION); przed include() i wewnątrz pliku, który jest inkludowany
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 22.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli dobrze rozumiem manual, to powinno zwrócić empty jeśli wynik zapytania będzie pusty albo !empty jeśli mysql coś wypluje... Natomiast u mnie wywala się błędem a mysql_error() nic nie zwraca... P.S. Poprzedni problem znalazłem - dupa ze mnie wołowa, formularze się nie wykonywały po ustaleniu sesji a kod za nie odpowiedzialny tak, dlatego sam sobie sesje psułem ustawiając ją drugi raz na podstawie zmiennych z formularza, którego już nie było, więc pustych... |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
to
powinno być do funkcji mysql_query(), a nie mysql_fetch_assoc() bo tak to przerywa działanie jeżeli mysql_fetch_assoc() nic nie zwróci, a to nie musi oznaczać błędu w zapytaniu, może lepiej rozbij to na kilka linijek, bo nie wiem czemu tak na siłę upychasz wszystko:
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 22.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Upycham bo to zapytanie służy mi tylko do jednego - sprawdzenie czy user się już zgłosił czy jeszcze nie, ma zwrócić T/N i koniec, nigdzie dane z tego zapytania nie będą używane.
Wiem już skąd ten problem: Zmienne sesji są wypełniane dopiero w pliku login.php i mimo, że formularz login_form.php odwołuje się do dokumentu głównego (po zalogowaniu strona się odświeża więc sesja imho powinna być w całym ciele dokumentu) a mimo to, zmienne są dostępne dopiero od linijki, w której dołączam login.php, dlaczego?
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
napisałem CI już wcześniej, żebyś sprawdził czy na pewno tak jest daj print_r($_SESSION) przed include() i wewnątrz include() bo to raczej nie możliwe, żeby w includowanym pliku nie były dostępne dane sesji problem musi leżeć gdzie indziej, pewnie próbujesz je odczytać zanim są ustawione
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 22.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dokładnie w ten sposób to sprawdzałem.
początek strony : 0 incl.php : 0 poniżej jest już ok. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
trudno jest cokolwiek powiedzieć bez zobaczenia kodu w includowanych plikach w każdym razie, musisz sprawdzić gdzie ustawiasz zmienne a gdzie je odczytujesz, bo mam wrażenie, że najpierw chcesz się do nich dobrać a dopiero potem je ustawiasz
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 22.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
tehaha gdyby nie twoje rady w życiu bym tego nie uruchomił
![]() Wielkie dzięki i pomagacz dla Ciebie. [Do zamknięcia] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 11:03 |