Obsługa sesji nawala!
Obsługa sesji nawala!
Zrobiłem sobie ostatnio w php system logowania oparty na sesjach. Niestety okazuje się, że macie wyłączoną obsługę headersów i sesji. Kiedy to włączycie i czy w ogóle?
Dobra dam kod:
Możecie zobaczyc system w akcji a raczej półakcji www.sdrn.info/log
konto założyc można na forum www.sdrn.info/forum. Proszę bardzo, sesje moim zdaniem nie działają, dodam też, że przed przeprowadzką strony tj. na yoyo wszystko było ok.
APELUJE JE¯ELI TAK JEST A CHYBA TAK O W£¡CZENIE OBS£UGI HEADERS, BO NIE MOGÊNP. ODTWARZAÆFILMÓW Z GOOGLE, KTÓRE SOBIE UMIE¦CI£EM, NIE MO¯NA TE¯ ZROBIÆSUBDOMEN BEZ UPRZENIEJ ZMIANY KATALOGU I WIELE INNYCH. JA WIEM, ¯E OGRANICZA TO HOTLINK-OWANIE, ALE Z NIM MO¯NA WALCZYC INACZEJ!
Kod: Zaznacz cały
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">
<?php
session_start();
//łączenie ze sql, które dla potrzeb postu wywaliłem
if(!empty($_POST))
{
$q = "SELECT * FROM phpbb_users WHERE username = '".mysql_escape_string($_POST['login'])."' and user_password = md5('".mysql_escape_string($_POST['pass'])."')";
$result = mysql_query($q);
$USER = mysql_fetch_assoc($result);
if(empty($USER))
{
echo"Podałe¶ złe dane";
}
else
{
echo "Zalogowałe¶ się poprawnie!<br> <meta http-equiv=refresh content=1>";
$_SESSION['user'] = array('id' => $USER['user_id'],
'name' => $USER['username']);
$q = "UPDATE `phpbb_users` SET `user_ip_addr` = ".ip2long($_SERVER['REMOTE_ADDR']).",
`user_session` = '".session_id()."',
`user_session_time` = ".time()."
WHERE user_id = ".$_SESSION['user']['id'];
mysql_query($q);
}
}
if(empty($_SESSION))
{
echo"<form method=POST action="\">
Użytkownik: <input type=text name=\"login\">
Hasło: <input type=PASSWORD name=\"pass\">
<input type=submit>
</form>";
}
else
{
//pobieranie z bazy danych informacji o uıźytkowniku
$q = "SELECT username, user_session, user_session_time FROM `phpbb_users` WHERE user_id = ".$_SESSION['user']['id'];
$result = mysql_query($q);
$USER = mysql_fetch_assoc($result);
if(time() - $USER['user_session_time'] > 5000) echo 'Przekroczony czas poł±czenia';
if($USER['user_session'] != session_id()) echo 'Zła sesja';
$q = "UPDATE `phpbb_users` SET `user_session_time` = ".time()."
WHERE user_id = ".$_SESSION['user']['id'];
mysql_query($q);
include("menu.php");
}
if($_GET['action'] == 'logout')
{
session_destroy();
echo "Zostałe¶ wylogowany";
header("location: ../index.php");
}
?>
konto założyc można na forum www.sdrn.info/forum. Proszę bardzo, sesje moim zdaniem nie działają, dodam też, że przed przeprowadzką strony tj. na yoyo wszystko było ok.
APELUJE JE¯ELI TAK JEST A CHYBA TAK O W£¡CZENIE OBS£UGI HEADERS, BO NIE MOGÊNP. ODTWARZAÆFILMÓW Z GOOGLE, KTÓRE SOBIE UMIE¦CI£EM, NIE MO¯NA TE¯ ZROBIÆSUBDOMEN BEZ UPRZENIEJ ZMIANY KATALOGU I WIELE INNYCH. JA WIEM, ¯E OGRANICZA TO HOTLINK-OWANIE, ALE Z NIM MO¯NA WALCZYC INACZEJ!
Mi logowanie działa, zarejestrowałem się na forum i przeszedłem do logowania na www.sdrn.info/log
Jednak gdy wejdę np. na czat to pokazuje błąd. Musisz dopisac na górze strony:
Jednak gdy wejdę np. na czat to pokazuje błąd. Musisz dopisac na górze strony:
Kod: Zaznacz cały
<?
session_start();
$user = $_SESSION['user'];
//kod strony
?>
A tam gdzie ma się wyświetlać nazwa użytkownika daj zmienną $user
[quote]Zalogowałeś się poprawnie!
Witaj woytecr w panelu użytkownika
[/quote]
[quote="jagron"] W£¡CZENIE OBS£UGI HEADERS[/quote]
jest
NULL
- shadowvip
- Posty: 19
- Rejestracja: 27 wrz 2007, 19:41:28
- Lokalizacja: z kątowni
- Płeć:
- User Agent:
- Kontakt:
Nie wiem czy to pomoże ale kiedyś miałem podobny problem i z tego co pamiętam pomogło.
Wstaw to po rozpoczęciu sesji a nie przed:
Wstaw to po rozpoczęciu sesji a nie przed:
Kod: Zaznacz cały
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=utf-8">