Zrobiłem stronę która wygląda mniej więcej tak
index.php
//ob_start(); include_once 'session.php'; include_once 'navi/header.php'; include_once 'navi/login.php'; include_once 'navi/menu.php'; include_once 'navi/search.php'; include_once 'navi/logo.php'; include_once 'navi/banner.php'; include_once 'navi/contents.php'; include_once 'navi/footer.php'; //ob_end_flush();
login.php w uproszczeniu wygląda tak
<JAKIS KOD> <div class="loginform" id="loginform"> <?php } else { $email = $_POST['email']; } $pass = $_POST['pass']; } $pamietaj = $_POST['pamietaj']; } $isSprawdzLogowanieOK = sprawdzLogowanie($email, $pass); } if ($isSprawdzLogowanieOK) { $id = getUserIdByEmail($email_u); $_SESSION['id_u'] = $id; if ($pamietaj == 'tak') { $hash = 'xxx'; } } else { ?> <form class="loguj" name="login" action="" method="POST"> <p class="login">Email</p> <input name="email" class="login" id="login" type="text"/><br/> <p class="pass">Hasło</p> <input name="pass" class="pass" id="pass" type="password" /><br/> <input type="checkbox" name="pamietaj" class="pamietaj" value="tak" /></p> <p>Pamiętaj</p><br/> <input name="submit" class="submit" id="submit" value="Loguj" type="submit"/> </form> <?php } } ?> </div> <JAKIS KOD>
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?