Потребител Парола | Регистрация | Забравена парола
Меню
· Начало
· Файлове
· Форум
· Връзки
· Категории на уроците
· За контакти
· Фото галерия
· Търсене
Кажи на приятел

Вашия email:
email на приятел:
Копие за вас?
Реклама

Прост login със сесий.

PHP & MySQLТук ще създадем проста система за логване като използваме 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 се обновява с тази на потребителя и той е свободен да се разхожда из сайта Smile

Сега да създадем скрипта за изход - 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.

· ko6rata на March 10 2011 15:20:26 · 0 Коментари · 4535 Прочитания · Отпечатай
Коментари
Няма добавени коментари.
Напиши коментар
Моля влезте, за да коментирате.
Оценка
Рейтингите са достъпни само за регистрирани.

Моля влезте или се регистрирайте за да гласувате.

Няма оценки.
Вход
Потребител

Парола



Не сте регистрирани?
Натиснете тук за регистрация.

Забравена парола?
Натиснете тук за нова.
Анкета
С каква операционна система работите











Трябва да влезете за да гласувате.
ЧАТ
Трябва да влезате за да пуснете съобщение.

Няма съобщения.
Статистика