У дома Детска стоматология Изпълнителна регистрация php. Проста система за регистрация на потребители

Изпълнителна регистрация php. Проста система за регистрация на потребители

Създаването на сайт, базиран на членство, в началото изглежда като трудна задача. Ако някога сте искали да направите това сами, а след това просто сте се отказали, когато сте започнали да мислите как ще го сглобите, използвайки вашите PHP умения, тогава тази статия е за вас. Ще ви преведем през всеки аспект от създаването на сайт, базиран на членство, със защитена зона за членове, защитена с парола.

Целият процес се състои от две големи части: регистрация на потребител и удостоверяване на потребителя. В първата част ще разгледаме създаването на регистрационната форма и съхраняването на данните в MySQL база данни. Във втората част ще създадем формата за влизане и ще я използваме, за да позволим на потребителите достъп в защитената зона.

Изтеглете кода

Можете да изтеглите целия изходен код за системата за регистрация/вход от връзката по-долу:

Конфигуриране и качване
Файлът ReadMe съдържа подробни инструкции.

Отвори източник\include\membersite_config.phpфайл в текстов редактор и актуализирайте конфигурацията. (Влизане в база данни, име на уебсайта ви, имейл адрес и т.н.).

Качете цялото съдържание на директорията. Тествайте register.php, като изпратите формуляра.

Формата за регистрация

За да създадем потребителски акаунт, трябва да съберем минимално количество информация от потребителя. Имаме нужда от неговото име, неговия имейл адрес и желаните от него потребителско име и парола. Разбира се, можем да поискаме повече информация на този етап, но дългата форма винаги е отблъскваща. Така че нека се ограничим само до тези полета.

Ето формата за регистрация:

Регистрирам

И така, имаме текстови полета за име, имейл и парола. Обърнете внимание, че използваме за по-добра използваемост.

Валидиране на формуляр

На този етап е добра идея да поставите някакъв код за валидиране на формуляр, така че да сме сигурни, че разполагаме с всички данни, необходими за създаване на потребителски акаунт. Трябва да проверим дали името, имейлът и паролата са попълнени и дали имейлът е в правилния формат.

Обработка на подаването на формуляра

Сега трябва да обработваме данните от формуляра, които са изпратени.

Ето последователността (вижте файла fg_membersite.php в изтегления източник):

функция RegisterUser() ( if(!isset($_POST["submitted"])) ( return false; ) $formvars = array(); if(!$this->ValidateRegistrationSubmission()) ( return false; ) $this- >CollectRegistrationSubmission($formvars); if(!$this->SaveToDatabase($formvars)) ( return false; ) if(!$this->SendUserConfirmationEmail($formvars)) ( return false; ) $this->SendAdminIntimationEmail($) formvars);

Първо, ние валидираме подаването на формуляра. След това събираме и „дезинфекцираме“ данните за подаване на формуляр (винаги правете това, преди да изпратите имейл, да запазите в база данни и т.н.). След това подаването на формуляра се записва в таблицата на базата данни. Изпращаме имейл до потребителя с искане за потвърждение. След това съобщаваме на администратора, че даден потребител се е регистрирал.

Запазване на данните в базата данни

Сега, след като събрахме всички данни, трябва да ги съхраним в базата данни.
Ето как запазваме изпратения формуляр в базата данни.

функция SaveToDatabase(&$formvars) ( if(!$this->DBLogin()) ( $this->HandleError("Неуспешно влизане в базата данни!"); return false; ) if(!$this->Ensuretable()) ( return false; ) if(!$this->IsFieldUnique($formvars,"email")) ( $this->HandleError("Този имейл вече е регистриран"); return false; ) if(!$this->IsFieldUnique( $formvars,"username")) ( $this->HandleError("Това потребителско име вече е използвано. Моля, опитайте с друго потребителско име"); return false; ) if(!$this->InsertIntoDB($formvars)) ( $this- >HandleError("Вмъкването в базата данни е неуспешно!"); return false;

Имайте предвид, че сте конфигурирали данните за влизане в базата данни във файла membersite_config.php. В повечето случаи можете да използвате „localhost“ за хост на база данни.
След като влезем, се уверяваме, че таблицата съществува. (Ако не, скриптът ще създаде необходимата таблица).
След това се уверяваме, че потребителското име и имейлът са уникални. Ако не е уникален, връщаме грешката обратно на потребителя.

Структурата на таблицата на базата данни

Това е структурата на таблицата. Функцията CreateTable() във файла fg_membersite.php създава таблицата. Ето кода:

функция CreateTable() ( $qry = "Създаване на таблица $this->tablename (". "id_user INT NOT NULL AUTO_INCREMENT," "име VARCHAR(128) NOT NULL," "имейл VARCHAR(64) NOT NULL," " "phone_number VARCHAR(16) NOT NULL," "потребителско име VARCHAR(16) NOT NULL," "парола VARCHAR(32) NOT NULL," "потвърдете код VARCHAR(32)", " ")"; if(!mysql_query($qry,$ this->connection)) ( $this->HandleDBError("Грешка при създаването на таблицата \nquery беше\n $qry"); return false; ) return true )

Полето id_user ще съдържа уникалния идентификатор на потребителя и също така е първичният ключ на таблицата. Забележете, че допускаме 32 знака за полето за парола. Правим това, защото като допълнителна мярка за сигурност ще съхраним паролата в базата данни, шифрована с помощта на MD5. Моля, имайте предвид, че тъй като MD5 е еднопосочен метод за криптиране, ние няма да можем да възстановим паролата, в случай че потребителят я забрави.

Вмъкване на регистрацията в таблицата

Ето кода, който използваме за вмъкване на данни в базата данни. Ще разполагаме с всички наши данни в масива $formvars.

функция InsertIntoDB(&$formvars) ( $confirmcode = $this->MakeConfirmationMd5($formvars["email"]); $insert_query = "вмъкване в ".$this->tablename."(име, имейл, потребителско име, парола, confirmcode) values ​​​​("". $this->SanitizeForSQL($formvars["name"]) . "", "" . $this->SanitizeForSQL($formvars["email"]) . "", "" . $ this->SanitizeForSQL . "", "" . md5($formvars["password"]) "," . $confirmcode . "")" $insert_query ,$this->connection)) ( $this->HandleDBError("Грешка при вмъкване на данни в таблицата\nquery:$insert_query"); return false; ) return true )

Забележете, че използваме PHP функцията md5() за шифроване на паролата, преди да я вмъкнем в базата данни.
Също така, ние правим уникалния код за потвърждение от имейл адреса на потребителя.

Изпращане на имейли

След като имаме регистрацията в нашата база данни, ще изпратим имейл за потвърждение на потребителя. Потребителят трябва да щракне върху връзка в имейла за потвърждение, за да завърши процеса на регистрация.

функция SendUserConfirmationEmail(&$formvars) ( $mailer = new PHPMailer(); $mailer->CharSet = "utf-8"; $mailer->AddAddress($formvars["email"],$formvars["name"]) ; $mailer->Subject = "Вашата регистрация с ".$this->sitename; $this->GetFromAddress(); $this->MakeConfirmationMd5($formvars["email" ])); $confirm_url = $this->GetAbsoluteURLFolder()."/confirmreg.php?code=".$confirmcode; $mailer->Body ="Hello" n\r\n". "Благодарим ви за регистрацията с ".$this->sitename."\r\n". "Моля, щракнете върху връзката по-долу, за да потвърдите регистрацията си.\r\n." "$confirm_url\r \n". "\r\n". "Поздрави,\r\n". "Уеб администратор\r\n". $this->sitename; if(!$mailer->Send()) ( $this-> HandleError("Неуспешно изпращане на имейл за потвърждение."); return false; return true)

Актуализации

9 януари 2012 г
Добавени са функции за нулиране на парола/промяна на парола
Кодът вече е споделен в GitHub.

Добре дошъл обратноПълно име на потребител (); ?>!

Разрешително


Кодът се споделя под лиценз LGPL. Можете свободно да го използвате на комерсиални или некомерсиални уебсайтове.

Няма свързани публикации.

Коментарите за този запис са затворени.

За да се разделят посетителите на сайта на определени групи, на сайта трябва да се инсталира малка система регистрация в php. По този начин условно разделяте посетителите на две групи просто случайни посетители и на по-привилегирована група потребители, на които предоставяте по-ценна информация.

В повечето случаи се използва по-опростена система за регистрация, която е написана на php в един файл register.php.

И така, ние се отклонихме малко и сега ще разгледаме по-отблизо регистрационния файл.

Register.php файл

За да гарантираме, че това няма да ви отнеме много време, ние ще създадем система, която ще събира потребители, като приема минимална информация за контакт от тях. IN в такъв случайЩе въведем всичко в базата данни на mysql. За най-висока скорост на базата данни ще създадем таблицата на потребителите във формат MyISAM и в utf-8 кодиране.

Забележка! Всички скриптове винаги трябва да бъдат написани в едно и също кодиране. Всички файлове на сайта и базата данни MySql трябва да са в едно и също кодиране. Най-често срещаните кодировки са UTF-8 и Windows-1251.

Защо трябва да напишете всичко в едно кодиране, ще говорим по-късно. Засега приемете тази информация като строго правило за създаване на скриптове, в противен случай ще имате проблеми със скриптовете в бъдеще. Всичко е наред, разбира се, но просто ще загубите много време в търсене на грешки в скрипта.

Как ще работи самият скрипт?

Искаме да опростим всичко и да постигнем бързи резултати. Следователно ние ще получаваме само данни за вход, имейл и парола от потребителите. И за защита срещу спам роботи, ще инсталираме малък captcha. В противен случай някое момче от Лондон ще напише малък робот парсер, който за няколко минути ще напълни цялата база данни с фалшиви потребители и ще се радва на неговата гениалност и безнаказаност.

Ето и самия сценарий. Всичко се записва в един файл register.php:

! `; // червен въпросителен знак $sha=$sh."scripts/pro/"; //път до главната папка $bg=` bgcolor="#E1FFEB"`; // цвят на фона на редове?> Примерен скрипт за регистрация register.php style.css" />

В този случай скриптът се отнася до себе си. И това е формуляр и процесор на данните, въведени във формуляра. Моля, обърнете внимание, че файлът е компресиран като zip архив и съдържа конфигурационен файл config.php, дъмп на потребителска база данни, файл, съдържащ помощни функции functions.php, стилов файл style.css и самия файл register.php. Има и няколко файла, които отговарят за работата и генерирането на символи captcha.

Здравейте! Сега ще се опитаме да приложим най-простата регистрация на сайта с използвайки PHP+ MySQL. За да направите това, Apache трябва да е инсталиран на вашия компютър. Принципът на работа на нашия скрипт е показан по-долу.

1. Нека започнем със създаването на таблицата потребители в базата данни. Той ще съдържа потребителски данни (вход и парола). Да отидем на phpmyadmin (ако създавате база данни на вашия компютър http://localhost/phpmyadmin/). Създайте таблица потребители, ще има 3 полета.

Аз го създавам в базата данни mysql, можете да го създадете в друга база данни. След това задайте стойностите, както е на фигурата:

2. Необходима е връзка с тази таблица.Нека създадем файл bd.php. Съдържанието му:

$db = mysql_connect("вашият MySQL сървър","вход за този сървър","парола за този сървър");
mysql_select_db ("име на базата данни, към която се свързваме", $db);
?>

В моя случай изглежда така:

$db = mysql_connect("localhost","user","1234");
mysql_select_db("mysql",$db);
?>

Запазване bd.php.
Страхотен! Имаме таблица в базата данни и връзка с нея. Сега можете да започнете да създавате страница, на която потребителите ще оставят своите данни.

3. Създайте reg.php файл със съдържанието (всички коментари вътре):



Регистрация


Регистрация


















4. Създайте файл, който ще въведе данни в базата данни и ще запази потребителя. save_user.php(коментари вътре):



{
}
//ако данните за вход и паролата са въведени, ние ги обработваме, така че таговете и скриптовете да не работят, никога не знаете какво могат да въведат хората


//премахване на допълнителни интервали
$login = трим($login);
$парола = трим($парола);
// свързване към базата данни
// проверка за съществуването на потребител със същото логин
$result = mysql_query("SELECT id FROM потребители WHERE login="$login"",$db);
if (!empty($myrow["id"])) (
exit("Съжаляваме, въведеното от вас потребителско име вече е регистрирано. Моля, въведете друго потребителско име.");
}
// ако това не е така, запазете данните
$result2 = mysql_query("INSERT INTO потребители (login,password) VALUES("$login","$password")");
// Проверете дали има грешки
if ($result2=="TRUE")
{
echo "Регистрирахте се успешно! Вече можете да влезете в сайта. Начална страница";
}
иначе(
echo "Грешка! Не сте регистриран.";
}
?>

5. Сега нашите потребители могат да се регистрират!След това трябва да създадете „врата“ за вече регистрирани потребители, за да влязат в сайта. index.php(коментари вътре):

// цялата процедура работи в сесии. Там се съхраняват данните на потребителя, докато той е на сайта. Много е важно да ги стартирате в самото начало на страницата!!!
session_start();
?>


Начална страница


Начална страница











Регистрирам



// Проверете дали променливите за вход и потребителски идентификатор са празни
if (празно($_SESSION["login"]) или празно($_SESSION["id"]))
{
// Ако е празно, тогава не показваме връзката
echo „Влезли сте като гост
Тази връзка е достъпна само за регистрирани потребители";
}
друго
{

Във файл index.phpЩе покажем връзка, която ще бъде отворена само за регистрирани потребители. Това е целият смисъл на скрипта - да ограничи достъпа до всякакви данни.

6. Остава файл с проверка на въведените потребителско име и парола. testreg.php (коментари вътре):

session_start();// цялата процедура работи на сесии. Там се съхраняват данните на потребителя, докато той е на сайта. Много е важно да ги стартирате в самото начало на страницата!!!
if (isset($_POST["login"])) ( $login = $_POST["login"]; if ($login == "") ( unset($login);) ) //въведете данните за вход, въведени от потребителя в променливата $login, ако е празна, унищожете променливата
if (isset($_POST["password"])) ( $password=$_POST["password"]; if ($password =="") ( unset($password);) )
//поставете въведената от потребителя парола в променливата $password, ако е празна, унищожете променливата
if (empty($login) or empty($password)) //ако потребителят не е въвел потребителско име или парола, тогава издаваме грешка и спираме скрипта
{
exit("Не сте въвели цялата информация, върнете се и попълнете всички полета!");
}
//ако данните за вход и паролата са въведени, ние ги обработваме, така че таговете и скриптовете да не работят, никога не знаете какво могат да въведат хората
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$парола = htmlspecialchars($парола);
//премахване на допълнителни интервали
$login = трим($login);
$парола = трим($парола);
// свързване към базата данни
include("bd.php");// файлът bd.php трябва да е в същата папка като всички останали, ако не е, просто променете пътя

$result = mysql_query("SELECT * FROM потребители WHERE login="$login"",$db); //извличане от базата данни на всички данни за потребителя с въведеното логин
$myrow = mysql_fetch_array($result);
ако (празно ($myrow["парола"]))
{
//ако потребителят с въведеното логин не съществува
}
иначе(
//ако съществува, проверете паролите
if ($myrow["password"]==$password) (
//ако паролите съвпадат, стартираме сесия за потребителя! Можете да го поздравите, той влезе!
$_SESSION["login"]=$myrow["login"];
$_SESSION["id"]=$myrow["id"];//тези данни се използват много често, така че влезлият потребител ще ги „носи със себе си“
echo "Влязохте успешно в сайта! Начална страница";
}
иначе(
//ако паролите не съвпадат

Изход („Съжаляваме, въведените потребителско име или парола са неправилни.“);
}
}
?>

Добре, всичко свърши! Урокът може да е скучен, но много полезен. Тук е показана само идеята за регистрация, след което можете да я подобрите: добавете защита, дизайн, полета с данни, зареждане на аватари, излизане от акаунта (за да направите това, просто унищожете променливите от сесията с функцията ненастроен) и така нататък. Късмет!

Проверих всичко, работи правилно!

Днес ще разгледаме експлоатацията на критична 1-дневна уязвимост в популярната CMS Joomla, която избухна в интернет в края на октомври. Това е заотносно уязвимостите с числата CVE-2016-8869, CVE-2016-8870И CVE-2016-9081. И трите произлизат от едно парче код, който изнемогва в дълбините на рамката в продължение на пет дълги години, чакайки своето време, само за да се освободи и да донесе със себе си хаос, хакнати сайтове и сълзите на невинни потребители на тази Joomla. Само най-храбрите и смели разработчици, чиито очи са червени от светлината на мониторите и чиито клавиатури са осеяни с трохи от хляб, успяха да предизвикат бушуващите зли духове и да положат главите си на олтара на поправките.

ВНИМАНИЕ

Цялата информация е предоставена само за информационни цели. Нито редакторите, нито авторът носят отговорност за възможни вреди, причинени от материалите на тази статия.

Откъдето започна всичко

На 6 октомври 2016 г. Демис Палма създаде тема в Stack Exchange, в която попита: защо всъщност във версия 3.6 на Joomla има два метода за регистриране на потребители с едно и също име register()? Първият е в контролера UsersControllerRegistration, а вторият е в контролера UsersControllerUser. Деймис искаше да разбере дали методът UsersControllerUser::register() е използван някъде, или това е просто еволюционен анахронизъм, останал от старата логика. Неговата загриженост беше, че дори ако този метод не се използва от нито един изглед, той може да бъде извикан от изработена заявка. На което получих отговор от разработчик под псевдонима itoctopus, който потвърди: проблемът наистина съществува. И изпрати доклад до разработчиците на Joomla.

Тогава събитията се развиха най-бързо. На 18 октомври разработчиците на Joomla приеха доклада от Damis, който по това време беше изготвил PoC, който ще позволи регистрация на потребители. Той публикува бележка на сайта си, където в общ контурговори за проблема, който откри, и мислите си по този въпрос. Излиза на същия ден нова версия Joomla 3.6.3, която все още съдържа уязвим код.

След това Davide Tampellini върти бъга, докато не бъде регистриран прост потребител, и администратора. И на 21 октомври нов случай пристига при екипа по сигурността на Joomla. Там вече се говори за увеличаване на привилегиите. В същия ден на уебсайта на Joomla се появява съобщение, че във вторник, 25 октомври, ще бъде пусната следващата версия със сериен номер 3.6.3, която коригира критична уязвимост в ядрото на системата.

25 октомври Joomla Security Strike Team открива последния проблем, създаден от парчето код, открито от Damis. След това ангажимент от 21 октомври с невзрачното име Prepare 3.6.4 Stable Release се вкарва в главния клон на официалното хранилище на Joomla, което поправя злополучния бъг.

След това излизане много заинтересовани лица се присъединяват към общността на разработчиците - те започват да популяризират уязвимостта и да подготвят експлойти.

На 27 октомври изследователят Хари Робъртс качва готов експлойт в хранилището на Xiphos Research, който може да качи PHP файл на сървър с уязвима CMS.

Подробности

Е, предисторията приключи, нека да преминем към най-интересната част - анализ на уязвимостта. Инсталирах Joomla 3.6.3 като тестова версия, така че всички номера на редове ще бъдат подходящи за тази версия. И всички пътища до файловете, които ще видите по-долу, ще бъдат посочени спрямо корена на инсталирания CMS.

Благодарение на откритието на Damis Palma знаем, че има два метода, които извършват регистрация на потребители в системата. Първият се използва от CMS и се намира във файла /components/com_users/controllers/registration.php:108. Вторият (този, който ще трябва да извикаме) живее в /components/com_users/controllers/user.php:293. Нека го разгледаме по-отблизо.

286: /** 287: * Метод за регистриране на потребител. 288: * 289: * @return boolean 290: * 291: * @since 1.6 292: */ 293: public function register() 294: ( 295: JSession::checkToken("post") или jexit(JText::_ ("JINVALID_TOKEN")); // Получаване на данни от формуляра . 315: $return = $model->validate($form, $data); 316: 317: // Проверка за грешки 318: if ($return === false) 319: ( ... 345: / /. Завършете регистрацията 346: $return = $model->register($data);

Тук оставих само интересни редове. Пълната версия на уязвимия метод може да се види в хранилището на Joomla.

Нека да разберем какво се случва по време на нормална потребителска регистрация: какви данни се изпращат и как се обработват. Ако регистрацията на потребител е активирана в настройките, формулярът може да бъде намерен на http://joomla.local/index.php/component/users/?view=registration.


Законната заявка за регистрация на потребител изглежда като следната екранна снимка.


Компонентът com_users отговаря за работата с потребителите. Обърнете внимание на параметъра на задачата в заявката. Той има формат $controller.$method. Нека да разгледаме файловата структура.

Имена на скриптове в папката контролериотговарят на имената на извиканите контролери. Тъй като нашата заявка сега съдържа $controller = "registration", файлът ще бъде извикан регистрация.phpи неговия метод register().

Внимание, въпрос: как да прехвърлите обработката на регистрацията на уязвимо място в кода? Вероятно вече се досещате. Имената на уязвимите и реалните методи са еднакви (register), така че просто трябва да променим името на извикания контролер. Къде се намира нашият уязвим контролер? Точно така, във файла user.php. Оказва се, че $controller = "user" . Събирайки всичко заедно, получаваме task = user.register. Сега заявката за регистрация се обработва по метода, от който се нуждаем.


Второто нещо, което трябва да направим, е да изпратим данните в правилния формат. Тук всичко е просто. Legitimate register() очаква от нас масив, наречен jform, в който предаваме регистрационни данни - име, вход, парола, имейл (вижте екранната снимка със заявката).

  • /components/com_users/controllers/registration.php: 124: // Вземете потребителските данни. 125: $requestData = $this->input->post->get("jform", array(), "array");

Нашият клиент получава тези данни от масив, наречен потребител.

  • /components/com_users/controllers/user.php: 301: // Вземете данните от формуляра. 302: $data = $this->input->post->get("user", array(), "array");

Затова променяме имената на всички параметри в заявката от jfrom на user.

Нашата трета стъпка е да намерим валиден CSRF токен, тъй като без него няма да има регистрация.

  • /components/com_users/controllers/user.php: 296: JSession::checkToken("post") или jexit(JText::_("JINVALID_TOKEN"));

Изглежда като MD5 хеш и можете да го вземете например от формуляра за оторизация на сайта /index.php/component/users/?view=login.


Сега можете да създавате потребители, като използвате желания метод. Ако всичко се получи, тогава поздравления - току-що сте използвали уязвимост CVE-2016-8870„Липсва проверка на разрешение за регистриране на нови потребители.“

Ето как изглежда в „работещия“ метод register() от контролера UsersControllerRegistration:

  • /components/com_users/controllers/registration.php: 113: // Ако регистрацията е деактивирана - Пренасочване към страницата за вход. 114: if (JComponentHelper::getParams("com_users")->get("allowUserRegistration") == 0) 115: ( 116: $this->setRedirect(JRoute::_("index.php?option=com_users&view=) вход", невярно)); 117: 118: връщане невярно; 119: )

И така в уязвими:

  • /components/com_users/controllers/user.php:

Да, няма начин.

За да разберем втория, много по-сериозен проблем, нека изпратим заявката, която създадохме, и да видим как се изпълнява в различни части на кода. Ето частта, която отговаря за валидирането на подадените от потребителя данни в работния метод:

Продължението е достъпно само за членове

Вариант 1. Присъединете се към общността на сайта, за да прочетете всички материали на сайта

Членството в общността в рамките на определения период ще ви даде достъп до ВСИЧКИ хакерски материали, ще увеличи личната ви кумулативна отстъпка и ще ви позволи да натрупате професионален рейтинг на Xakep Score!

В тази статия ще научите как да създадете формуляр за регистрация и оторизацияизползвайки HTML, JavaScript, PHP и MySql. Такива форми се използват на почти всеки уебсайт, независимо от вида му. Те са създадени за форум, онлайн магазин, социални мрежи (като Facebook, Twitter, Odnoklassniki) и много други видове сайтове.

Ако имате уебсайт на вашия локален компютър, тогава се надявам, че вече имате инсталиран и работещ локален сървър. Без него нищо няма да работи.

Създаване на таблица в базата данни

За да осъществим регистрация на потребители, първо се нуждаем от база данни. Ако вече го имате, тогава е чудесно, в противен случай трябва да го създадете. В статията обяснявам подробно как да направите това.

И така, имаме база данни (съкратено DB), сега трябва да създадем таблица потребителив който ще добавим нашите регистрирани потребители.

Също така обясних как да създадете таблица в база данни в статията. Преди да създадем таблица, трябва да определим какви полета ще съдържа. Тези полета ще съответстват на полетата от регистрационния формуляр.

И така, помислихме, представихме си какви полета ще има нашата форма и създадохме таблица потребителис тези полета:

  • документ за самоличност- Идентификатор. Поле документ за самоличностВсяка таблица в базата данни трябва да го има.
  • първо име- За да запазите името.
  • фамилия- Да се ​​запази фамилията.
  • електронна поща- За да запазите пощенския адрес. Ще използваме имейл като вход, така че това поле трябва да е уникално, тоест да има индекс UNIQUE.
  • email_status- Поле за показване дали пощата е потвърдена или не. Ако пощата е потвърдена, тогава тя ще има стойност 1, в противен случай стойността е 0.
  • парола- За да запазите паролата.


Ако искате вашата регистрационна форма да има други полета, можете също да ги добавите тук.

Това е нашата маса потребителиготов. Да преминем към следващия етап.

Връзка с база данни

Създадохме базата данни, сега трябва да се свържем с нея. Ще се свържем с PHP разширението MySQLi.

В папката на нашия сайт създайте файл с името dbconnect.phpи напишете следния скрипт в него:

Грешка при свързване с DB. Описание на грешката: ".mysqli_connect_error()."

"; exit(); ) // Задайте кодиране на връзката $mysqli->set_charset("utf8"); // За удобство добавете тук променлива, която ще съдържа името на нашия сайт $address_site = "http://testsite .local" ; ?>

Този файл dbconnect.phpще трябва да се свърже с манипулатори на формуляри.

Забележете променливата $address_site, тук посочих името на моя тестов сайт, върху който ще работя. Моля, посочете съответно името на вашия сайт.

Структура на сайта

Сега нека да разгледаме HTML структурата на нашия сайт.

Ще преместим горния и долния колонтитул на сайта в отделни файлове, header.phpИ долен колонтитул.php. Ще ги включим на всички страници. А именно на главната страница (файл index.php), към страницата с регистрационната форма (файл form_register.php) и към страницата с формуляра за оторизация (файл form_auth.php).

Блокирайте с нашите връзки, РегистрацияИ упълномощаване, добавете ги към заглавката на сайта, така че да се показват на всички страници. Една връзка ще бъде въведена на страница с формуляр за регистрация(файл form_register.php), а другата към страницата с формуляр за оторизация(файл form_auth.php).

Съдържание на файла header.php:

Име на нашия сайт

В резултат нашата главна страница изглежда така:


Разбира се, вашият сайт може да има съвсем различна структура, но това не е важно за нас сега. Основното е, че има връзки (бутони) за регистрация и оторизация.

Сега да преминем към формата за регистрация. Както вече разбирате, ние го имаме в архива form_register.php.

Отидете в базата данни (в phpMyAdmin), отворете структурата на таблицата потребителии вижте какви полета имаме нужда. Това означава, че имаме нужда от полета за въвеждане на собствено и фамилно име, поле за въвеждане на пощенски адрес (Email) и поле за въвеждане на парола. И от съображения за сигурност ще добавим поле за въвеждане на captcha.

На сървъра, в резултат на обработката на регистрационната форма, могат да възникнат различни грешки, поради които потребителят няма да може да се регистрира. Следователно, за да може потребителят да разбере защо регистрацията е неуспешна, е необходимо да се показват съобщения за тези грешки.

Преди да покажете формуляра, добавете блок за показване на съобщения за грешка от сесията.

И още нещо, ако потребителят вече е оторизиран и от любопитство отива директно на страницата за регистрация, като пише в адресната лента на браузъра адрес_на_сайт/формуляр_регистр.php, тогава в този случай вместо формата за регистрация ще покажем заглавка, че той вече е регистриран.

Като цяло, кодът на файла form_register.phpполучихме това:

Вече сте регистриран

В браузъра страницата с формуляра за регистрация изглежда така:


Като се използва задължителен атрибут, направихме всички полета задължителни.

Обърнете внимание на кода на регистрационния формуляр, където се показва captcha:


Ние посочихме пътя до файла в стойността на атрибута src за изображението captcha.php, който генерира този captcha.

Нека да разгледаме кода на файла captcha.php:

Кодът е добре коментиран, така че ще се спра само на една точка.

Вътре във функция imageTtfText(), пътят до шрифта е посочен verdana.ttf. Така че, за да работи правилно captcha, трябва да създадем папка шрифтовеи поставете файла с шрифта там verdana.ttf. Можете да го намерите и изтеглите от интернет или да го вземете от архива с материалите на тази статия.

Приключихме с HTML структурата, време е да продължим.

Проверка на валидността на имейл с помощта на jQuery

Всеки формуляр трябва да проверява валидността на въведените данни, както от страна на клиента (чрез JavaScript, jQuery), така и от страна на сървъра.

Трябва да обърнем специално внимание на полето Email. Много е важно въведеният пощенски адрес да е валиден.

За това поле за въвеждане задаваме типа имейл (type="email"), това леко ни предупреждава срещу неправилни формати. Но това не е достатъчно, защото чрез инспектора на кода, който браузърът ни предоставя, можем лесно да променим стойността на атрибута Типс електронна пощаНа тексти това е, нашият чек вече няма да е валиден.


И в този случай трябва да направим по-надеждна проверка. За целта ще използваме библиотеката jQuery от JavaScript.

За да свържете библиотеката jQuery, във файла header.phpмежду етикети , преди затварящия етикет , добавете този ред:

Веднага след този ред ще добавим кода за валидиране на имейла. Тук ще добавим код за проверка на дължината на въведената парола. Дължината му трябва да бъде поне 6 знака.

Използвайки този скрипт, ние проверяваме въведения имейл адрес за валидност. Ако потребителят е въвел неправилен имейл, показваме съобщение за грешка за това и деактивираме бутона за изпращане на формуляр. Ако всичко е наред, тогава премахваме грешката и активираме бутона за изпращане на формуляр.

И така, приключихме с валидирането на формуляра от страна на клиента. Сега можем да го изпратим на сървъра, където също ще направим няколко проверки и ще добавим данни към базата данни.

Регистрация на потребител

Изпращаме формуляра във файла за обработка register.php, чрез метода POST. Име този файлманипулатор, посочен в стойността на атрибута действие. И методът на изпращане е посочен в стойността на атрибута метод.

Отворете този файл register.phpи първото нещо, което трябва да направим, е да напишем функция за стартиране на сесия и да свържем файла, който създадохме по-рано dbconnect.php(В този файл направихме връзка с базата данни). И също така, нека веднага да декларираме клетките съобщения_за_грешкаИ успех_съобщенияв глобалния масив от сесии. IN съобщения_за_грешкание ще записваме всички съобщения за грешки, които възникват по време на обработката на формуляра, и в succes_messages, ще записваме радостни съобщения.

Преди да продължим, трябва да проверим подаден ли е изобщо формулярът?. Нападателят може да погледне стойността на атрибута действиеот формуляра и разберете кой файл обработва този формуляр. И може да му хрумне да отиде директно до този файл, като напише следния адрес в адресната лента на браузъра: http://адрес_на_сайт/register.php

Така че трябва да проверим за клетка в глобалния POST масив, чието име съвпада с името на нашия бутон "Регистрация" от формата. По този начин проверяваме дали е натиснат бутона "Регистрация" или не.

Ако нападател се опита да отиде директно до този файл, той ще получи съобщение за грешка. Нека ви напомня, че променливата $address_site съдържа името на сайта и то е декларирано във файла dbconnect.php.

грешка!Главна страница.

"); } ?>

Стойността на captcha в сесията беше добавена, когато беше генерирана, във файла captcha.php. Като напомняне, ще ви покажа тази част от кода от файла отново captcha.php, където стойността на captcha се добавя към сесията:

Сега да преминем към самата проверка. Във файл register.php, вътре в блока if, където проверяваме дали е щракнат върху бутона "Регистрация" или по-скоро където е посочен коментарът "" // (1) Място за следващата част от кода"ние пишем:

//Проверка на получената captcha //Изрязване на интервалите от началото и края на реда $captcha = trim($_POST["captcha"]); if(isset($_POST["captcha"]) && !empty($captcha))( //Сравнете получената стойност със стойността от сесията. if(($_SESSION["rand"] != $captcha) && ($_SESSION ["rand"] != ""))( // Ако captcha не е правилна, тогава връщаме потребителя на страницата за регистрация и там ще му покажем съобщение за грешка, че е въвел грешна captcha . $error_message = "

грешка!Въведохте грешен captcha

"; // Запазване на съобщението за грешка в сесията. $_SESSION["error_messages"] = $error_message; // Връщане на потребителя към страницата за регистрация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: " .$address_site."/form_register.php"); //Спиране на скрипта exit(); "

грешка!Няма код за потвърждение, т.е. captcha код. Можете да отидете на главната страница.

"); }

След това трябва да обработим получените данни от POST масива. На първо място, трябва да проверим съдържанието на глобалния POST масив, тоест дали там има клетки, чиито имена съответстват на имената на полетата за въвеждане от нашата форма.

Ако клетката съществува, тогава изрязваме интервалите от началото и края на реда от тази клетка, в противен случай пренасочваме потребителя обратно към страницата с формуляра за регистрация.

След това, след като сме изрязали интервалите, добавяме реда към променливата и проверяваме тази променлива за празнота, тогава продължаваме напред, в противен случай пренасочваме потребителя обратно към страницата с регистрационната форма.

Поставете този код на посоченото място" // (2) Място за следващата част от кода".

/* Проверете дали има изпратени данни от формуляра в глобалния масив $_POST и обвийте изпратените данни в обикновени променливи.*/ if(isset($_POST["first_name"]))( //Изрязване на интервалите от началото и край на низа $first_name = trim($_POST["first_name"]); //Проверете променливата за празнота if(!empty($first_name))( // За безопасност преобразувайте специални символи в HTML обекти $first_name = htmlspecialchars($first_name, ENT_QUOTES) )else( // Запазване на съобщението за грешка в сесията. $_SESSION["error_messages"] .= "

Въведете вашето име

Полето за име липсва

"; //Връщане на потребителя към страницата за регистрация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_register.php"); //Спрете скрипта exit(); ) if( isset($_POST["last_name"]))( //Изрязване на интервали от началото и края на реда $last_name = trim($_POST["last_name"]); if(!empty($last_name)) ( // За сигурност преобразувайте специални символи в HTML обекти $last_name = htmlspecialchars($last_name, ENT_QUOTES); )else( // Запазете съобщението за грешка в сесията. $_SESSION["error_messages"] .= "

Моля, въведете вашето фамилно име

"; //Връщане на потребителя към страницата за регистрация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_register.php"); //Спрете скрипта exit(); ) )else ( // Запазване на съобщението за грешка в сесията. $_SESSION["error_messages"] .= "

Полето за фамилия липсва

"; //Връщане на потребителя към страницата за регистрация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_register.php"); //Спрете скрипта exit(); ) if( isset($_POST["email"]))( //Изрязване на интервали от началото и края на реда $email = trim($_POST["email"]); if(!empty($email)) ( $email = htmlspecialchars ($email, ENT_QUOTES); // (3) Местоположение на кода за проверка на формата на имейл адреса и неговата уникалност )else( // Запазете съобщението за грешка в сесията. $_SESSION["error_messages"] .= "

Въведете своя имейл

"; //Връщане на потребителя към страницата за регистрация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_register.php"); //Спрете скрипта exit(); ) )else ( // Запазване на съобщението за грешка в сесията. $_SESSION["error_messages"] .= "

"; //Връщане на потребителя към страницата за регистрация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_register.php"); //Спрете скрипта exit(); ) if( isset($_POST["password"]))( //Изрязване на интервали от началото и края на низа $password = trim($_POST["password"]); if(!empty($password)) ( $password = htmlspecialchars ($password, ENT_QUOTES); //Шифроване на паролата $password = md5($password."top_secret");else( //Запазване на съобщението за грешка в сесията. $_SESSION["error_messages"] . = "

Въведете паролата си

"; //Връщане на потребителя към страницата за регистрация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_register.php"); //Спрете скрипта exit(); ) )else ( // Запазване на съобщението за грешка в сесията. $_SESSION["error_messages"] .= "

"; //Връщане на потребителя към страницата за регистрация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_register.php"); //Спрете скрипта exit(); ) // (4) Място за кода за добавяне на потребител към базата данни

От особено значение е полето електронна поща. Трябва да проверим формата на получения пощенски адрес и неговата уникалност в базата данни. Тоест, вече регистриран ли е потребител със същия имейл адрес?

На посоченото място" // (3) Местоположение на кода за проверка на формата на пощенския адрес и неговата уникалност" добавете следния код:

//Проверете формата на получения имейл адрес с помощта на регулярен израз $reg_email = "/^**@(+(*+)*\.)++/i"; //Ако форматът на получения имейл адрес не съответства на регулярния израз if(!preg_match($reg_email, $email))( // Запазете съобщението за грешка в сесията. $_SESSION["error_messages"] .= "

Въведохте неправилен имейл

"; //Връщане на потребителя към страницата за регистрация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_register.php"); //Спрете скрипта exit(); ) // Проверяваме дали такъв адрес вече е в базата данни. $result_query = $mysqli->query("SELECT `email` FROM `users` WHERE `email`="".$email.""); са точно един ред, което означава, че потребителят с този имейл адрес вече е регистриран if($result_query->num_rows == 1)( //Ако полученият резултат не е грешен if(($row = $result_query->fetch_assoc() ) != false) ( // Запазване на съобщението за грешка в сесията. $_SESSION["error_messages"] .= "

Потребител с този имейл адрес вече е регистриран

"; //Връщане на потребителя към страницата за регистрация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_register.php"); )else( // Запазване на съобщението за грешка към сесията $_SESSION["error_messages"] .= "

Грешка в заявката за база данни

"; //Връщане на потребителя към страницата за регистрация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_register.php"); ) /* затваряне на селекцията */ $ result_query-> close(); //Спиране на скрипта exit(); /* затваряне на селекцията */ $result_query->close();

И така, приключихме с всички проверки, време е да добавим потребителя към базата данни. На посоченото място" // (4) Място за кода за добавяне на потребител към базата данни" добавете следния код:

//Заявка за добавяне на потребител към базата данни $result_query_insert = $mysqli->query("INSERT INTO `users` (first_name, last_name, email, password) VALUES ("".$first_name."", "".$last_name ." ", "".$email.", "".$password."")"); if(!$result_query_insert)( // Запазване на съобщението за грешка в сесията. $_SESSION["error_messages"] .= "

Грешка в заявката за добавяне на потребител към базата данни

"; //Връщане на потребителя към страницата за регистрация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_register.php"); //Спрете скрипта exit(); )else( $_SESSION["success_messages"] = "

Регистрацията приключи успешно!!!
Сега можете да влезете с вашето потребителско име и парола.

"; //Изпращане на потребителя до страницата за оторизация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_auth.php"); ) /* Завършване на заявката */ $ result_query_insert-> close(); //Затваряне на връзката с базата данни $mysqli->close();

Ако възникне грешка в заявката за добавяне на потребител към базата данни, ние добавяме съобщение за тази грешка към сесията и връщаме потребителя на страницата за регистрация.

Иначе, ако всичко е минало добре, добавяме и съобщение към сесията, но този път е по-приятно, а именно казваме на потребителя, че регистрацията е успешна. И го пренасочваме към страницата с формуляра за оторизация.

Скриптът за проверка на формата на имейл адреса и дължината на паролата е във файла header.php, така че ще се прилага и за полета от този формуляр.

Сесията също се стартира във файла header.php, така че във файла form_auth.phpНяма нужда да започваме сесия, защото ще получим грешка.


Както вече казах, скриптът за проверка на формата на имейл адреса и дължината на паролата също работи тук. Следователно, ако потребителят въведе неправилен имейл адрес или кратка парола, той веднага ще получи съобщение за грешка. Бутон да влязаще стане неактивен.

След коригиране на грешките бутонът да влязастане активен и потребителят ще може да изпрати формуляра на сървъра, където ще бъде обработен.

Упълномощаване на потребителя

За приписване на стойност действиехендикапът за оторизация има указан файл auth.php, това означава, че формулярът ще бъде обработен в този файл.

И така, отворете файла auth.phpи напишете код за обработка на формуляра за оторизация. Първото нещо, което трябва да направите, е да започнете сесия и да свържете файла dbconnect.phpза свързване към базата данни.

//Декларирайте клетка, за да добавите грешки, които могат да възникнат при обработката на формуляра. $_SESSION["error_messages"] = ""; //Деклариране на клетка за добавяне на успешни съобщения $_SESSION["success_messages"] = "";

/* Проверете дали формулярът е изпратен, т.е. дали е щракнат върху бутона Вход. Ако да, тогава продължаваме, ако не, тогава ще покажем съобщение за грешка на потребителя, което показва, че той е осъществил директен достъп до тази страница. */ if(isset($_POST["btn_submit_auth"]) && !empty($_POST["btn_submit_auth"]))( //(1) Място за следващата част от кода )else( exit("

грешка!Осъществихте директен достъп до тази страница, така че няма данни за обработка. Можете да отидете на главната страница.

"); }

//Проверете получената captcha if(isset($_POST["captcha"]))( //Изрязване на интервалите от началото и края на реда $captcha = trim($_POST["captcha"]); if(! празен($captcha ))( //Сравнете получената стойност със стойността от сесията. if(($_SESSION["rand"] != $captcha) && ($_SESSION["rand"] != "")) ( // Ако captcha е неправилна, тогава връщаме потребителя на страницата за оторизация и там ще му покажем съобщение за грешка, че е въвел грешна captcha $error_message = ".

грешка!Въведохте грешен captcha

"; // Запазване на съобщението за грешка в сесията. $_SESSION["error_messages"] = $error_message; // Връщане на потребителя към страницата за оторизация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: " .$address_site ."/form_auth.php"); //Спрете скрипта exit(); )else( $error_message = "

грешка!Полето за въвеждане на captcha не трябва да е празно.

"; // Запазване на съобщението за грешка в сесията. $_SESSION["error_messages"] = $error_message; // Връщане на потребителя към страницата за оторизация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: " .$address_site ."/form_auth.php"); //Спиране на скрипта exit(); //(2) Място за обработка на имейл адреса //(3) Място за обработка на паролата //(4) Място за съставяне заявка към базата данни )else ( //Ако captcha не е предадена exit("

грешка!Няма код за потвърждение, т.е. captcha код. Можете да отидете на главната страница.

"); }

Ако потребителят е въвел кода за потвърждение правилно, тогава продължаваме, в противен случай го връщаме на страницата за оторизация.

Проверка на пощенския адрес

//Изрязване на интервали от началото и края на реда $email = trim($_POST["email"]); if(isset($_POST["email"]))( if(!empty($email))( $email = htmlspecialchars($email, ENT_QUOTES); //Проверете формата на получения имейл адрес с помощта на регулярен израз $ reg_email = " /^**@(+(*+)*\.)++/i"; //Ако форматът на получения имейл адрес не съответства на регулярния израз if(!preg_match($reg_email, $email) ))( // Запазване в съобщението за грешка на сесията. $_SESSION["error_messages"] .= "

Въведохте неправилен имейл

"; //Връща потребителя към страницата за оторизация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_auth.php"); //Спрете скрипта exit(); ) )else ( // Запазване на съобщението за грешка в сесията. $_SESSION["error_messages"] .= "

Полето за въвеждане на пощенски адрес (имейл) не трябва да е празно.

"; //Връщане на потребителя към страницата за регистрация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_register.php"); //Спрете скрипта exit(); ) )else ( // Запазване на съобщението за грешка в сесията. $_SESSION["error_messages"] .= "

Полето за въвеждане на имейл липсва

"; //Връща потребителя към страницата за оторизация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_auth.php"); //Спрете скрипта exit(); ) // (3) Област за обработка на пароли

Ако потребителят е въвел имейл адрес в грешен формат или стойността на полето за имейл адрес е празна, ние го връщаме на страницата за оторизация, където показваме съобщение за това.

Проверка на парола

Следващото поле за обработка е полето за парола. До посоченото място" //(3) Място за обработка на парола", ние пишем:

If(isset($_POST["password"]))( //Изрязване на интервалите от началото и края на низа $password = trim($_POST["password"]); if(!empty($password))( $password = htmlspecialchars($password, ENT_QUOTES); //Шифроване на паролата $password = md5($password."top_secret");else( //Запазване на съобщението за грешка в сесията. $_SESSION["error_messages"] .= "

Въведете паролата си

"; //Връщане на потребителя към страницата за регистрация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_auth.php"); //Спрете скрипта exit(); ) )else ( // Запазване на съобщението за грешка в сесията. $_SESSION["error_messages"] .= "

Полето за парола липсва

"; //Връщане на потребителя към страницата за регистрация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_auth.php"); //Спрете скрипта exit(); )

Тук използваме функцията md5() за шифроване на получената парола, тъй като нашите пароли са в шифрована форма в базата данни. Допълнителна тайна дума в криптирането, в нашия случай " строго секретно" трябва да е този, който е бил използван при регистриране на потребителя.

Сега трябва да направите заявка към базата данни, за да изберете потребител, чийто имейл адрес е равен на получения имейл адрес и чиято парола е равна на получената парола.

//Запитване в базата данни въз основа на избора на потребителя. $result_query_select = $mysqli->query("SELECT * FROM `users` WHERE имейл = "".$email."" И парола = "".$password."""); if(!$result_query_select)( // Запазване на съобщението за грешка в сесията. $_SESSION["error_messages"] .= "

Грешка при заявка при избор на потребител от базата данни

"; //Връщане на потребителя към страницата за регистрация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_auth.php"); //Спрете скрипта exit(); )else( //Проверете дали няма потребител с такива данни в базата данни, след това изведете съобщение за грешка if($result_query_select->num_rows == 1)( // Ако въведените данни съвпадат с данните от базата данни, тогава запазете вход и парола към масива от сесии. $_SESSION["email"] = $_SESSION["password"] = $password; ); "/index.php"); else( // Запазете съобщението за грешка в сесията. $_SESSION["error_messages"] .= "

Неправилно потребителско име и/или парола

"; //Връща потребителя към страницата за оторизация header("HTTP/1.1 301 Moved Permanently"); header("Местоположение: ".$address_site."/form_auth.php"); //Спрете скрипта exit(); ) )

Излезте от сайта

И последното нещо, което прилагаме е процедура за напускане на сайта. В момента в заглавката показваме връзки към страницата за оторизация и страницата за регистрация.

В заглавката на сайта (файл header.php), с помощта на сесията проверяваме дали потребителят вече е оторизиран. Ако не, тогава показваме връзките за регистрация и оторизация, в противен случай (ако е упълномощен), тогава вместо връзките за регистрация и оторизация показваме връзката Изход.

Модифицирана част от кода от файла header.php:

Регистрация

Изход

Когато щракнете върху връзката за изход от сайта, ще бъдем отведени до файл излизане.php, където просто унищожаваме клетките с имейл адреса и паролата от сесията. След това връщаме потребителя обратно на страницата, на която е кликнал връзката изход.

Файлов код излизане.php:

Това е всичко. Сега знаете как прилагане и обработка на формуляри за регистрация и оторизацияпотребител на вашия уебсайт. Тези форми се намират на почти всеки уебсайт, така че всеки програмист трябва да знае как да ги създаде.

Научихме също как да валидираме входните данни както от страна на клиента (в браузъра, използвайки JavaScript, jQuery), така и от страна на сървъра (използвайки PHP). Ние също научихме прилагане на процедура за напускане на сайта.

Всички скриптове са тествани и работят. Можете да изтеглите архива с файловете на този малък сайт от този линк.

В бъдеще ще напиша статия, в която ще опиша. Освен това планирам да напиша статия, в която ще обясня (без да презареждам страницата). Така че, за да бъдете информирани за пускането на нови статии, можете да се абонирате за моя уебсайт.

Ако имате въпроси, моля, свържете се с мен и ако забележите грешка в статията, моля, уведомете ме.

План на урока (част 5):

  1. Създаване на HTML структура за формата за оторизация
  2. Ние обработваме получените данни
  3. Показваме поздрава на потребителя в заглавката на сайта

Хареса ли ви статията?



Ново в сайта

>

Най - известен