| ||
|
Прост login със сесий.Тук ще създадем проста система за логване като използваме 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.
|
|