PDA

Zobacz pełną wersję : Sesja w module



bumbox
09-05-2012, 12:10
Witam

Stworzyłem sobie moduł, który ma umożliwiać logowanie użytkownika i zapamiętać jego sesję. Wiem, że gotowy moduł jest dostępny ale po prostu uczę się w praktyce PHP :)
Gdzie problem, otóż logowanie przebiega świetnie sprawdza mi dane użytkownika z tymi w bazie i po weryfikacji wyświetla komunikat, że użytkownik został zalogowany. No i tu zaczyna się "ale", po przejściu do innej podstrony moduł gubi zapamiętane zmienne sesyjne (lub ja je źle używam). Moduł znajduje się na każdej z podstron. Poniżej wklejam kod skryptu, prosiłbym o "łopatologiczną" pomoc i wyjaśnienie, gdzie popełniam błędy :)

Z góry dziękuję.



<?php
defined ('_JEXEC' ) or die ( 'Brak dostepu' );
?>
<div>




<?php
session_start();
$session =& JFactory::getSession();
require("scripts/db_connection.php");
connection();


$login = mysql_real_escape_string(htmlspecialchars(trim($_P OST['login'])));
$haslo = mysql_real_escape_string(htmlspecialchars(trim(md5 ($_POST['haslo']))));
$islog = $session->get('zalogowany');
$log_in = $session->get('log');
echo $islog;




if(isset($islog)) {
echo "Witaj, ".$log_in;
}
else{


if(isset($_POST['wyslij'])) {
$zapytanie = mysql_query("SELECT `login`, `pass` FROM `users` WHERE `login` = '".$login."' ");


if(mysql_num_rows($zapytanie) > 0) {

if(mysql_num_rows(mysql_query("SELECT `id` FROM `users`
WHERE `login` = '".$login."'
&& `pass` = '".$haslo."' ")) > 0 ) {

$session->set('zalogowany', true);
//$_SESSION['zalogowany'] = true;
$session->set('log', $login);
//$_SESSION['login'] = $_POST['login'];
$session->set('pas', $haslo);
//$_SESSION['haslo'] = $_POST['haslo'];
echo "Jesteś zalogowany.";



} else {

echo "Zle hasło, proszę spróbować ponownie";
}
} else {
echo "Nie ma takiego użytkownika";
}
}
else {
?>
<form method='POST' action=''>
<b>nazwa uzytkownika:</b> <input type='text' name='login'><br>
<b>haslo:</b> <input type='password' name='haslo'><br>
<input type='submit' value='Zaloguj' name='wyslij'>
</form>




<?php
}
}


?>
</div>