index.php
include 'config.inc';
db_connect();
// sprawdzamy czy user nie jest przypadkiem zalogowany
if(!$_SESSION['logged']) {
// jeślii zostanie nacisniety przycisk "Zaloguj"
if(isset($_POST['index']) && !empty($_POST['password']) && !empty($_POST['index'])) {
// filtrujemy dane...
$_POST['index'] = clear($_POST['index']);
$_POST['password'] = clear($_POST['password']);
// i kodujemy has?
// $_POST['password'] = codepass($_POST['password']);
//sprawdza czy active ustawiony na jeden 1;
$activ_1=mysql_query("SELECT `student_id` FROM `students` WHERE `student_id` ='{$_POST['index']}' AND `active`='1' LIMIT 1");
if(mysql_num_rows($activ_1) == 1 )
{
// sprawdzamy prostym zapytaniem sql czy podane dane s?prawid?we
$result = mysql_query("SELECT `student_id` FROM `students` WHERE `student_id` = '{$_POST['index']}' AND `student_password` = '{$_POST['password']}' LIMIT 1");
if(mysql_num_rows($result) > 0) {
// jesli tak to ustawiamy sesje "logged" na true oraz do sesji "student_id" wstawiamy id usera
$row = mysql_fetch_assoc($result);
$_SESSION['logged'] = true;
$_SESSION['student_id'] = $row['student_id'];
//header('Location: access_1.php');
echo '<p>Zostałeś poprawnie zalogowany! Mo?sz teraz przej? na <a href="access_1.php">strone g?wna</a>.</p>';
} else {
echo '<p>Podany indeks i/lub hasło jest nieprawidiwe.</p>';
}
}else { echo "<p> Niestety nie możesz się zalogować p>";
}
}else { echo "<p>Dane niekompletne, sproboj ponownie</p>"; }
// wy?ietlamy komunikat na zalogowanie si?action="index.php" lub action="index.php"
echo '<form method="post" action="index.php" >
<p>
Login:<br>
<input type="text" value="'.$_POST['index'].'" name="index">
</p>
<p>
Hasło:<br>
<input type="password" value="'.$_POST['password'].'" name="password">
</p>
<p>
<input type="submit" value="Zaloguj">
</p>
<p>
<a href="register.php">Rejestracja</a>
</p>
</form>';
} else {
echo '<p>Jesteś już zalogowany, więc nie możesz się zalogowa ponownie.</p>
<p>[<a href="access_1.php">Powrót>]</p>';
}
Natomiast w congfig inc mam następujące funkcje dotyczące sesji:
function check_login() {
if(!$_SESSION['logged']) {
die('<p>To jest strefa tylko dla uzytkownikow.</p>
<p>[<a href="index.php">Logowanie</a>] [<a href="register.php">Zarejestruj sie</a>]</p>');
}
}
// startujemy sesje
session_start();
// jeśli nie ma jeszcze sesji "logged" i "user_id" to wypełniamy je domyślnymi danymi
if(!isset($_SESSION['logged'])) {
$_SESSION['logged'] = false;
$_SESSION['student_id'] = -1;
}
Co do var_dumpa:
array(2) {
["logged"]=>
bool(false)
["student_id"]=>
int(-1)
}
co do SID: każda podstrona dostaje nowe sessionid
co do phpinfo():(sorry za tak średni sposób prezentacji)
Session Support enabled
Registered save handlers files user sqlite
Registered serializer handlers php php_binary wddx
Directive Local Value Master Value
session.auto_start Off Off
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file /dev/urandom /dev/urandom
session.entropy_length 32 32
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 4 4
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /tmp /tmp
session.serialize_handler php php
session.upload_progress.cleanup On On
session.upload_progress.enabled On On
session.upload_progress.freq 1% 1%
session.upload_progress.min_freq 1 1
session.upload_progress.name PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix upload_progress_ upload_progress_
session.use_cookies On On
session.use_only_cookies On On
session.use_trans_sid 0 0