Тук ще създадем проста система за логване като използваме PHP сесий.
Първо създайте подходяща база данни, аз съм я нарекъл "login".
Използвайте тази заявка:
CREATE TABLE `log` (
`ime` VARCHAR(20) NOT NULL,
`parola` VARCHAR(20) NOT NULL,
`sesia` VARCHAR(32) NOT NULL,
UNIQUE (`ime`)
)
TYPE = myisam;
INSERT INTO `log` (`ime`, `parola`, `sesia`) VALUES ('az', 'parolatami', '');
за да създадете таблица и потребител "az" с парола "parolatami" за теста.
Сега създайте index.php файл, който ще съдържа формата за логване:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<form action="login.php" method="POST">
Име:<br/>
<input type="text" name="ime"/><br/>
Парола:<br/>
<input type="password" name="parola"/><br/>
<input type="submit" value="Влез"/>
</form>
</body>
</html>
А сега и самия скрипт login.php:
<?php
//Стартираме сесията
session_start();
//Взимаме изпратените от формата парола и име
$ime = $_POST['ime'];
$parola = $_POST['parola'];
//Сега $ses е индивидуалната сесия на потребителя
$ses = session_id();
//Свързваме се с MySQL
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("login");
//Проверяваме дали потребителя е логнат
$query = mysql_query("SELECT * FROM `log` WHERE sesia='$ses'");
$red = mysql_num_rows($query);
if ($red != NULL) {
echo "Потребителя е логнат като:<br/>";
$my_ime = mysql_result($query, "0", "ime");
echo "<b>".$my_ime."</b>";
echo "<br/><a href='logout.php'>Излез</a>";
}else{
//Потребителя не е логнат, тогава го логваме с името и паролата от формата
$query2 = mysql_query("SELECT * FROM `log` WHERE ime='$ime'");
$r = mysql_num_rows($query2);
if ($r != NULL) {
//Има такъв потребител, сега проверяваме и паролата
$query3 = mysql_query("SELECT * FROM `log` WHERE ime='$ime' AND parola='$parola'");
$r2 = mysql_num_rows($query3);
if ($r2 != NULL) {
//Всичко е наред, създаваме сесия
$query4 = mysql_query("UPDATE `log` SET sesia='$ses' WHERE ime='$ime' AND parola='$parola'");
//Потребителя е логнат изписваме поздрав
echo "Добре дошъл <b>".$ime."</b>, сесията ти е: <b>".$ses."</b>.";
echo "<br/><a href='logout.php'>Излез</a>";
}else{
echo "Грешна парола за потребител: <b>".$ime."</b> !";
}
}else{
echo "Няма такъв потребител !";
}
}
?>
Както виждате първо се създава сесия, а след това се проверява в MySQL, дали има такава и ако има на кой е.
Ако има сесия се изписва името на потребителя и от тук на татък е вашия код.
Ако няма потребител със такава сесия в базата, тогава се взимат името и паролата изпратени от формата и се търси човека с това име. Ако всичко е наред полето на сесията в MySQL се обновява с тази на потребителя и той е свободен да се разхожда из сайта :)
Сега да създадем скрипта за изход - logout.php:
<?php
session_start();
//Свързваме се с MySQL
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("login");
//Логаутваме
$ses = session_id();
$q = mysql_query("SELECT * FROM `log` WHERE sesia='$ses'");
$r = mysql_num_rows($q);
if ($r != NULL) {
$name = mysql_result($q, "0", "ime");
$q2 = mysqL_query("UPDATE `log` SET sesia='' WHERE ime='$name'");
echo "Излязохте успешно";
}else{
echo "Не сте логнат";
}
?>
Тук се проверява сесията на потребителя и съответно се изтрива полето за сесия в MySQL.
Сега и test.php където ще проверим дали работи коректно цялата система:
<?php
session_start();
$ses = session_id();
//Свързваме се с MySQL
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("login");
//Проверяваме дали потребителя е логнат
$query = mysql_query("SELECT * FROM `log` WHERE sesia='$ses'");
$red = mysql_num_rows($query);
if ($red != NULL) {
echo "Потребителя е логнат като:<br/>";
$my_ime = mysql_result($query, "0", "ime");
echo "<b>".$my_ime."</b>";
echo "<br/><a href='logout.php'>Излез</a>";
}else{
//Потребителя не е логнат
echo "Трябва да се логнете !";
}
?>
Ако всичко е наред отново се изписва името на потребителя и след него можете да поставите всичкия Ваш код, който изисква регистрация. Името на потребителя се съхранява в променливата $ime , паролата в $parola , а сесията в $ses.
Надявам се да съм бил полезен с тази тема главно на някой от начинаещите в тази област.
$q2 = mysqL_query("UPDATE `log` SET sesia='' WHERE ime='$name'");
в logout.php и следното:
session_unset();
session_destroy();