ďťż

[php]sesje=problem:|

       

Podstrony


telcocafe

Mam problem <_< , bo mam np. taki kod:
<? echo '<center> <h2>Trwa logowanie...</h2></center>'; $login= addslashes(htmlspecialchars($_POST['login'])); $pass=md5($_POST['pass']); require_once('core.php'); lacz_bz(); $zapytanie= 'SELECT * FROM users WHERE nazwa="'.$login.'"'; $wynik = mysql_query($zapytanie) or die ("Błędne zapytanie"); while($rekord=mysql_fetch_array($wynik)){ if ($rekord['ban']==0){ $login2= $rekord['nazwa']; $pass2= $rekord['pass']; $mod= $rekord['mod']; }else{ echo 'Zostałe¶ zablokowany przez administratora!'; return true; } } if ($login==$login2 and $pass==$pass2){ echo 'Zostałe¶ pomy¶lnie zalogowany!!'; }else{ echo 'Zły login i/lub hasło!'; return true; } mysql_free_result($wynik); session_register("login"); session_register("mod");    echo '<script>window.location.href="index.php";</script>'; echo '</body> </html>'; ?>
No i on mi tak działa jakby wogóle niebyło obsługi sesji (jakoś inny skrypt też niedziała:/) Gdzie w tym kodzie jest błąd?
A i session_start() jest w pliku index.php a ten jest do niego includowany.



Hmm
if ($login==$login2 and $pass==$pass2){
Zmien na
if ($login==$login2 && $pass==$pass2){
(nie wiem czy to blad, lepiej dmuchac na zimne ;)

Oraz po session_register('mod'); zrob $_SESSION['mod']=$mod;
a po session_register('login'); daj $_SESSION['login']=$login;

Btw brzydki masz ten kod ;P imho do przekazywania uzytkownikowi informacji np zalogowano/nie zalogowano lepiej uzywac jakiejs fajnej funkcji, ja sobie wymyslilem:
function ShowMessage($msg) { $_SESSION['message']=$msg; header('location: ./index.php'); }

(index.php)
if ($_SESSION['message']!='') { echo $_SESSION['message']; $_SESSION['message']=''; }

Te wszystkie zapytania w kodzie - bezsens. Zrob sobie osobne pliki z klasami ktore bedziesz uzywal. Np klasa z funkcja do logowania zwracajaca false/true (nie zalogowano/zalogowano)

//Heh widze ze na forum ovh juz sie dowiedziales...
Użytkownik Einzeinbleth edytował ten post 17 styczeń 2006, 17:16
1. przed session_start() nie powinno nic się wyświetlać
2. nie używa sie session_register - przestarzałe - zamiast tego uzywa sie po prostu tablicy superglobalnej $_SESSION
3. wstaw na początku tego kodu ob_start() (przed wszystkie echa i kod html), powinno to zapobiedz wyświetleniu zawartości strony do czasu całego wygenerowania, więc pierwsze nagłówki zosytaną wysłane albo pod koniec generowania, albo w chwili wywołania header :)

No, fakktycznie to była wina session_register. Cóż człowiek uczy się na błędach ;)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.