![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 19.12.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Zrobiłem stronę która wygląda mniej więcej tak index.php
login.php w uproszczeniu wygląda tak
Chodzi o to że jeśli przy logowaniu użytkownik zaznaczy checkbox to po zalogowaniu jest tworzone cookie a następnie strona jest przeładowywana przez header aby wyświetli ze jesteśmy już zalogowani , jednak przed setcookie oraz przez header było już coś wyświetlone na stronie wiec postanowiłem użyć ob_start(); i ob_end_flush(); wkleiłem go w indeksie tak jak jest teraz tylko nie zakomentowany i wszystko chodziło dobrze, ciastko się dodawało strona się prze kierunkowała, dodawały się i usuwały inne ciastka których już tu nie wymieniam, strona się przeładowywała po zalogowaniu, wszystko działało ok... zacząłem zajmować się tym co ma być dokładnie wyświetlone zamiast tekstu "jesteś zalogowany", chciałem się zalogować i sprawdzić czy wszystko ok... i nagle całkiem przestało działać logowanie, po wpisaniu poprawnego hasła strona nadal ładuje się z formularzem logowania, a cookie się nie ustawia.. gdy za komentowałem ob_start(); i ob_end_flush(); wszystko wróciło do normy tzn logowanie działa ale oczywiście nie działa dodawanie ciastka i przeładowanie strony. Co się mogło stać dlaczego wcześniej wszystko działało dobrze a nagle przestało działać mimo że tylko zmieniłem wyświetlany tekst po zalogowaniu. Czy może źle wstawiam ob_start(); i ob_end_flush(); może trzeba to wstawić w inne miejsca żeby dobrze działało? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
patrząc na kod i że wszystko działało (może efekt cache przeglądarki chwilowo i nie zauważyłeś błędu zaraz po zmianie) oraz na ifa gdzie powinno wejść po zalogowaniu to zacznę wróżyć z fusów i spytam się, czy korzystasz z jakiegoś systemu kontroli wersji?? bo jeśli nie to gdzie masz zdefiniowaną pewną zmienną stałą (a jeśli to dobra praktyka nakazuje pisać takie zmienne w PHP z dużych liter)
ale ja tylko hobbystycznie piszę i ostatnio częściej w C++ niż w PHP ;p ps. a propo systemu kontroli wersji jeśli nie korzystasz to np. bez lini komend w netbeans z git'a fajnie się korzysta... a jeśli pominiesz na początek grubszy temat jak gałęzie i wspólne repozytorium a pozostaniesz przy wersjonowaniu na dysku lokalnym to nawet z linii komend nie wiele jest do zapamiętania i przeczytania jeśli chodzi o przykłady... a jeśli chodzi o szybki edytor np. bez myszki to sobie zacząłem chwalić i zgłębiam ostanio vim'a (jeśli korzystasz "normalnie" z klawiatury jak to się powinno to warto przyjrzeć się temu narzędziu... a jeśli nie to warto poświęcić czas na "normalne" pisanie na klawiaturze ]:->) pozdro... Ten post edytował zegarek84 25.02.2013, 22:59:48 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 19.12.2012 Ostrzeżenie: (0%) ![]() ![]() |
[...] to gdzie masz zdefiniowaną pewną zmienną stałą (a jeśli to dobra praktyka nakazuje pisać takie zmienne w PHP z dużych liter) ale ja tylko hobbystycznie piszę i ostatnio częściej w C++ niż w PHP ;p [...] O którą zmienną stałą chodzi? Kod tu pokazany jest tylko wycinką całego kodu ponieważ cały jest dość długi... Jestem raczej początkujący i musiałem dwa razy przeczytać o czym do mnie napisałeś i wygooglować czym jest system kontroli wersji (IMG:style_emoticons/default/smile.gif) nie nie korzystam z tego... piszę w NetBeans Co do tego że może działało przez cache przeglądarki odpada, ponieważ logowanie działa nadal tylko jeśli zakomentuje ob... wtedy nie działa tylko dodawanie ciastek i przeładowanie strony ponieważ wcześniej jest już coś wyświetlane na stronie... ale logowanie działa Poza tym jak skończyłem z tym logowaniem i działało to sporo czasu sprawdzałem na dwóch przeglądarkach czy wszystko działa poprawnie - czy zapamiętuje użytkownika, zapisuje cookie, zmienia cookie co określony czas, zmienia odpowiednie dane w bazie, usuwa cookie, zmienia id sesji itp itd... wszystko działało ładnie dopóki nie zacząłem pisać dalej co jest własnie dziwne... no nic muszę przejrzeć cały kod linijka po linijce :/ ber32 nie jest to wina $pamietaj = strip_tags($pamietaj); bez tego jest to samo, poza tym zaznaczenie pola "pamiętaj" nie jest obowiązkowe i nie chce się logować ani przy zaznaczonym ani odznaczonym polu |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 17:15 |