Страхотна регистрация на потребители php. Създаване на проста система за регистрация на потребители в PHP и MySQL. Сега нека създадем основните скриптове за по-нататъшна работа

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

Стъпка 1: Свързване към MySQL база данни.
Нека създадем файл db_connect.php:

Mysql_connect("localhost", "user", "user password") or die("Грешка при свързване към MySQL!");
mysql_select_db("база данни") или умре ("Грешка при свързване с MySQL база данни!");
mysql_set_charset("utf8"); // задаване на кодирането на базата данни

Стъпка 2. Нека създадем таблица за потребители.

СЪЗДАВАНЕ НА ТАБЛИЦА `потребителски_профили` (
`user_id` int(11) НЕ НУЛА AUTO_INCREMENT,
`потребителско име` varchar(32) НЕ NULL,
`парола` varchar(32) НЕ НУЛА,
ПЪРВИЧЕН КЛЮЧ (`user_id`)
) ENGINE=CHARSET ПО ПОДРАЗБИРАНЕ MyISAM=utf8;

Стъпка 3. Нека създадем файл handler.php - този файл ще съдържа проверка за оторизация на потребителя.

include_once "db_connect.php"; // проверка на връзката с базата данни

// проверява дали потребителското име и паролата са попълнени в бисквитки
if(!empty($_COOKIE["потребителско име"]) И !empty($_COOKIE["password"]))
{
// потърсете потребителя в таблицата users_profiles, използвайте mysql_real_escape_string като защита срещу sql инжекция
$search_user = mysql_query("SELECT * FROM `users_profiles` WHERE `username` = "".mysql_real_escape_string($_COOKIE["username"])."" И `password`" = ".mysql_real_escape_string("_password]] ($sCOOKIE) ).""");
$user = (mysql_num_rows($search_user) == 1) ? mysql_fetch_array($search_user) : 0;
}
друго
{
$user = 0;
}
?>

Стъпка 4. Пишем регистрация.
За да направите това, създайте register.php файл и напишете в него следния код:


if($user) (

изход ();
}

Ако (!empty($_POST["login"]) И !empty($_POST["password"]))
{


// проверете дали има вход в нашата база данни
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `users_profiles` WHERE `username` = "".$login."" LIMIT 1;"), 0) != 0)
{
echo "Избраното потребителско име вече е регистрирано!";
изход ();
}
// въведете данните в таблицата, обърнете внимание - кодираме паролата в md5
mysql_query("INSERT INTO `users_profiles` (`потребителско име`, `парола`) СТОЙНОСТИ ("".$login."", ".md5($password)."")");
echo "Успешно се регистрирахте!";
изход ();
}
// формуляр за регистрация
ехо"


Влизане:



парола:




";
?>

include_once "handler.php"; // проверка дали потребителят е влязъл

// ако е така, пренасочете го към главната страница
if($user) (
header("Местоположение: index.php");
изход ();
}

If(!empty($_POST["login"]) И !empty($_POST["password"]))
{
// филтриране на вход и парола
$login = mysql_real_escape_string(htmlspecialchars($_POST["login"]));
$password = mysql_real_escape_string(htmlspecialchars($_POST["парола"]));

$search_user = mysql_result(mysql_query("ИЗБЕРЕТЕ БРОЙ(*) ОТ `users_profiles` КЪДЕТО `потребителско име` = "".$login."" И `парола` = ".md5($password)."""), 0 0 );
if($search_user == 0)
{
echo "Невалиден вход или потребител не е намерен.";
изход ();
}
друго
{
// запазване на потребителско име и парола в бисквитки
$време = 60*60*24; // колко дълго да се съхраняват данни в бисквитки
setcookie("потребителско име", $login, time()+$time, "/");
setcookie("парола", md5($парола), време()+$време, "/");
echo "Успешно сте влезли в сайта!";
изход ();
}
}
ехо"


Влизане:



парола:




";
?>

Стъпка 6. Изход от потребителя.
Всеки потребител трябва да излезе от сайта, ако иска. За да направите това, създайте файл exit.php

include_once "handler.php"; // проверка дали потребителят е влязъл

// проверка на оторизацията на потребителя
if($user) (
setcookie("потребителско име", "", time()-1, "/");
setcookie("парола", "", време()-1, "/");
сесия_унищожи();
echo "Успешно излязохте!";
) друго (
echo "Трябва да сте влезли за това действие.";
}
?>

Стъпка 7 Създайте начална страницасайт.
Нека създадем последния файл - index.php

include_once "handler.php"; // проверка дали потребителят е влязъл

If($user) (
// показване на информация за потребителя
ехо "Здравей, ".$user["потребителско име"]."!

- Излезте

";
) друго (
// показване на информация за госта
ехо"
- Разрешение

- Регистрация

";
}
?>

За да конфигурирате, създайте .htaccess файл и въведете следното в него:

php_value register_globals 0
php_value magic_quotes_gpc 0

php_value zlib.output_compression 1

AddDefaultCharset UTF-8

За тези, които са твърде мързеливи, за да направят всичко това, изтеглете

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

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

PHP

Сега сме готови да стигнем до PHP кода. Основната функционалност на системата за регистрация се осигурява от класа User, който можете да видите по-долу. Класът използва (), което е минималистична библиотека на база данни. Класът User е отговорен за достъпа до бази данни, генериране на токени за влизане и валидирането им. Той ни предоставя прост интерфейс, който може лесно да бъде включен в системата за регистрация на вашите PHP базирани сайтове.

user.class.php

// Частен ORM екземпляр
частна $orm;

/**
* Намерете потребител по символен низ. Вземат се само валидни жетони
* съображение. Токенът е валиден 10 минути след като е бил генериран.
* @param низ $token Маркерът за търсене
* @returnUser
*/

публична статична функция findByToken($token)(

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


->къде ("токен", $токен)
->where_raw("token_validity > СЕГА()")
->намери_едно();

Ако(!$резултат)(
върне false;
}

Връщане на нов потребител($резултат);
}

/**
* Влезте или регистрирайте потребител.
* @returnUser
*/

Публична статична функция loginOrRegister($email)(

// Ако такъв потребител вече съществува, върнете го

Ако(Потребител::съществува($email))(
връщане на нов потребител ($email);
}

// В противен случай го създайте и го върнете

Връщане на потребител::create($email);
}

/**
* Създайте нов потребител и го запишете в базата данни
* @param string $email Имейл адресът на потребителя
* @returnUser
*/

Частна статична функция create($email)(

// Напишете нов потребител в базата данни и го върнете

$result = ORM::for_table("reg_users")->create();
$резултат->имейл = $имейл;
$резултат->запазване();

Връщане на нов потребител($резултат);
}

/**
* Проверете дали такъв потребител съществува в базата данни и върнете булева стойност.
* @param string $email Имейл адресът на потребителя
* @return булево
*/

Съществува публична статична функция ($email)(

// Съществува ли потребителят в базата данни?
$result = ORM::for_table("reg_users")
->къде ("имейл", $имейл)
->брой();

върне $резултат == 1;
}

/**
* Създайте нов потребителски обект
* @param $param ORM екземпляр, идентификатор, имейл или нула
* @returnUser
*/

Публична функция __construct($param = null)(

If($param instanceof ORM)(

// Предаден е ORM екземпляр
$this->orm = $param;
}
иначе if(is_string($param))(

// Изпратен е имейл
$това->
->къде ("имейл", $param)
->намери_едно();
}
друго(

If(is_numeric($param))(
// Потребителски идентификатор беше предаден като параметър
$id = $param;
}
иначе if(isset($_SESSION["loginid"]))(

// Не е подаден потребителски идентификатор, погледнете сесията
$id = $_SESSION["loginid"];
}

$this->orm = ORM::for_table("reg_users")
->къде ("id", $id)
->намери_едно();
}

/**
* Генерира нов токен за влизане SHA1, записва го в базата данни и го връща.
* @return низ
*/

Публична функция generateToken()(
// генериране на токен завлязъл потребител. Запазете го в базата данни.

$token = sha1($this->email.time().rand(0, 1000000));

// Запазване на токена в базата данни,
// и го маркирайте като валиден само за следващите 10 минути

$this->orm->set("токен", $токен);
$this->orm->set_expr("token_validity", "ADDTIME(СЕГА(),"0:10")");
$this->orm->save();

Върнете $token;
}

/**
* Влезте в този потребител
* @return невалиден
*/

публична функция login()(

// Маркирайте потребителя като влязъл
$_SESSION["loginid"] = $this->orm->id;

// Актуализиране на полето за база данни last_login
$this->orm->set_expr("последно_вход", "СЕГА()");
$this->orm->save();
}

/**
* Унищожи сесията и излезте от потребителя.
* @return невалиден
*/

публична функция logout()(
$_SESSION = масив ();
unset($_SESSION);
}

/**
* Проверете дали потребителят е влязъл.
* @return булево
*/

Публична функция loggedIn()(
return isset($this->orm->id) && $_SESSION["loginid"] == $this->orm->id;
}

/**
* Проверете дали потребителят е администратор
* @return булево
*/

Публична функция е Admin()(
върне $this->rank() == "администратор";
}

/**
* Намерете типа потребител. Може да бъде както администратор, така и обикновен.
* @return низ
*/

публична функция rank()(
if($this->orm->rank == 1)(
върнете "администратор";
}

Връщане "обикновено";
}

/**
* Магически метод за достъп до елементите на private
* $orm екземпляр като свойства на потребителския обект
* @param string $key Името на достъпното свойство
* @return смесено
*/

Публична функция __get($key)(
if(isset($this->orm->$key))(
върнете $this->orm->$key;
}

връщане на нула;
}
}
Токените се генерират с помощта на алгоритъма и се съхраняват в базата данни. Използваме от MySQL, за да зададем стойността в колоната token_validity на 10 минути. Когато валидираме токен, ние казваме на двигателя, че имаме нужда от токен, полето token_validity все още не е изтекло. По този начин ограничаваме времето, през което токенът ще бъде валиден.

Имайте предвид, че използваме магическия метод __get() в края на документа за достъп до свойствата на потребителския обект. Това ни позволява да имаме достъп до данните, съхранявани в базата данни като свойства: $user->email, $user->token. Като пример, нека видим как можем да използваме този клас в следния кодов фрагмент:


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

Functions.php

Функция send_email($от, $до, $subject, $message)(

// Помощна функция за изпращане на имейл

$headers = "MIME-версия: 1.0" . "\r\n";
$headers .= "Тип на съдържанието: текст/обикновен; charset=utf-8" . "\r\n";
$headers .= "От: ".$от . "\r\n";

връщане на поща ($to, $subject, $message, $headers);
}

функция get_page_url()(

// Разберете URL адреса на PHP файл

$url = "http".(празен($_SERVER["HTTPS"])?"":"s")."://".$_SERVER["SERVER_NAME"];

If(isset($_SERVER["REQUEST_URI"]) && $_SERVER["REQUEST_URI"] != "")(
$url.= $_SERVER["REQUEST_URI"];
}
друго(
$url.= $_SERVER["PATH_INFO"];
}

Връщане на $url;
}

функция rate_limit($ip, $limit_hour = 20, $limit_10_min = 10)(

// Броят опити за влизане за последния час от този IP адрес

$count_hour = ORM::for_table("reg_login_attempt")
->
->where_raw("ts > SUBTIME(СЕГА(),"1:00")")
->брой();

// Броят опити за влизане за последните 10 минути от този IP адрес

$count_10_min = ORM::for_table("reg_login_attempt")
->where("ip", sprintf("%u", ip2long($ip)))
->where_raw("ts > SUBTIME(СЕГА(),"0:10")")
->брой();

Ако($count_hour > $limit_hour || $count_10_min > $limit_10_min)(
throw new Exception("Твърде много опити за влизане!");
}
}

функция rate_limit_tick($ip, $email)(

// Създайте нов запис в таблицата за опити за влизане

$login_attempt = ORM::for_table("reg_login_attempt")->create();

$login_attempt->email = $email;
$login_attempt->ip = sprintf("%u", ip2long($ip));

$login_attempt->save();
}

функция пренасочване($url)(
header("Местоположение: $url");
изход;
}
Функциите rate_limit и rate_limit_tick ни позволяват да ограничим броя на опитите за оторизация за определен период от време. Опитите за упълномощаване се записват в базата данни reg_login_attempt. Тези функции се изпълняват при изпращане на формуляра за вход, както можете да видите в следния кодов фрагмент.

Кодът по-долу е взет от index.php и отговаря за валидирането на формуляра за вход. Той връща JSON отговор, който се управлява от jQuery кода, който видяхме в assets/js/script.js.

index.php

If(!empty($_POST) && isset($_SERVER["HTTP_X_REQUESTED_WITH"]))(

// Извежда JSON заглавка

Header("Тип съдържание: приложение/json");

// Валиден ли е имейл адресът?

If(!isset($_POST["email"]) || !filter_var($_POST["email"], FILTER_VALIDATE_EMAIL))(
throw new Exception("Моля, въведете валиден имейл.");
}

// Това ще доведе до изключение, ако лицето е по-горе
// ограниченията на разрешените опити за влизане (вижте functions.php за повече):
rate_limit($_SERVER["REMOTE_ADDR"]);

// Записване на този опит за влизане
rate_limit_tick($_SERVER["REMOTE_ADDR"], $_POST["email"]);

// Изпращане на съобщението до потребителя

$message = "";
$email = $_POST["имейл"];
$subject = "Вашата връзка за вход";

Ако(!User::exists($email))(
$subject = "Благодаря, че се регистрирахте!";
$message = "Благодарим ви, че се регистрирахте в нашия сайт!\n\n";
}

// Опит за влизане или регистрация на лицето
$user = Потребител::loginOrRegister($_POST["email"]);

$message.= "Можете да влезете от този URL адрес:\n";
$message.= get_page_url()."?tkn=".$user->generateToken()."\n\n";

$message.= "Връзката ще изтече автоматично след 10 минути.";

$резултат = изпрати_имейл($отEmail, $_POST["email"], $subject, $message);

Ако(!$резултат)(
throw new Exception("Имаше грешка при изпращането на имейла ви. Моля, опитайте отново.");
}

Die(json_encode(масив(
"message" => "Благодарим ви! Изпратихме линк към вашата входяща кутия. Проверете и вашата папка за спам."
)));
}
}
catch(Изключение $e)(

Die(json_encode(масив(
"грешка"=>1,
"message" => $e->getMessage()
)));
}
При успешно оторизиране или регистрация, горният код изпраща имейл до лице с връзка за оторизация. Токенът (токенът) става достъпен като променлива $_GET "tkn" поради генерирания URL.

index.php

If(isset($_GET["tkn"]))(

// Това валиден маркер за вход ли е?
$user = Потребител::findByToken($_GET["tkn"]);

//Да! Влезте в потребителя и пренасочете към защитената страница.

$user->login();
пренасочване("protected.php");
}

// Невалиден Жетон. Пренасочване обратно към формата за вход.
пренасочване("index.php");
}
Изпълнението на $user->login() ще създаде необходимите променливи за сесията, позволявайки на потребителя да остане влязъл при следващи влизания.

Излизането от системата се изпълнява приблизително по същия начин:

Index.php

If(isset($_GET["изход"]))(

$user = нов потребител ();

If($user->loggedIn())(
$user->logout();
}

пренасочване("index.php");
}
В края на кода отново пренасочваме потребителя към index.php, така че параметърът ?logout=1 в URL адреса е изключен.

Нашият файл index.php също ще се нуждае от защита - не искаме вече влезли потребители да виждат формуляра. За да направим това, използваме метода $user->loggedIn():

Index.php

$user = нов потребител ();

if($user->loggedIn())(
пренасочване("protected.php");
}
И накрая, нека да видим как можете да защитите страница на вашия сайт и да я направите достъпна само след като влезете:

protected.php

// За да защитите всяка php страница на вашия сайт, включете main.php
// и създайте нов потребителски обект. Толкова е просто!

require_once "includes/main.php";

$user = нов потребител ();

if(!$user->loggedIn())(
пренасочване("index.php");
}
След тази проверка можете да сте сигурни, че потребителят е влязъл успешно. Вие също така ще имате достъп до данни, съхранявани в базата данни като свойства на обекта $user. За да покажете имейла на потребителя и неговия ранг, използвайте следния код:

echo "Вашият имейл: ".$user->email;
echo "Вашият ранг: ".$user->rank();
Тук rank() е методът, тъй като колоната за ранг в база данни обикновено съдържа числа (0 за нормални потребители и 1 за администратори) и трябва да преобразуваме всичко в имена на ранг, което се прави с този метод. За да конвертирате нормален потребител в администратор, просто редактирайте потребителския запис в phpmyadmin (или всяка друга програма за база данни). Като администратор, потребителят няма да бъде надарен с никакви специални способности. Вие сами имате право да избирате какви права да дадете на администраторите.

Готов!

На това нашата проста система за регистрация е готова! Можете да го използвате на съществуващ PHP сайт или можете да го надстроите до вашите собствени нужди.

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

Ще използваме прости тагове и също така ще използваме таг за таблица за проектиране на уеб страницата Sign-Up.html. Да започваме:

Списък 1:sign-up.html

Регистрирай се

Формуляр за регистрация
име
електронна поща
потребителско име
парола
потвърди парола


Фигура 1:

Описание на уеб страница sing-in.html:

Както можете да видите на Фигура 1, има формуляр за регистрация и той изисква малко данни за потребителя. Това са общите данни, които всеки уебсайт изисква от неговите потребители или посетители да създаде и ID и парола. Използвахме таг за таблица, защото за да покажем полетата на формуляра на уеб страницата в подредена форма, както можете да ги видите на фигура 1. Изглежда толкова просто, защото все още не сме използвали CSS стил върху него, сега нека да използваме CSS стилове и да свържем Файл в стил CSS с уеб страница sing-up.html.

Списък 2:style.css

/*CSS файл за уеб страница за регистрация*/ #body-color( background-color:#6699CC; ) #Sign-Up( background-image:url("sign-up.png"); background-size:500px 500px ; background-repeat:no-repeat; background-attachment:fixed; background-position:center; margin-top:150px; margin-bottom:150px; margin-right:150px; margin-left:450px; padding:9px 35px; ) #button( border-radius:10px; width:100px; height:40px; background:#FF00FF; font-weight:bold; font-size:20px; )

Списък 3: Връзка style.css с уеб страница sign-up.html



Фигура 2:

Описание на файла style.css:

Във външния CSS файл използвахме някои стилове, които може да изглеждат нови за вас. Тъй като използвахме изображение във фонов режим и го поставихме в центъра на уеб страницата. Което става лесно за използване с помощта на html div таг. Тъй като използвахме три идентификатора на маркера div. #button, #sing-up и #body-color и ние приложихме всички CSS стилове върху тях и сега можете да видите Фигура 2, колко красиво и привлекателно изглежда. Можете да използвате много други CSS стилове като 2D и 3D CSS стилове върху него. Ще изглежда по-красиво, отколкото изглежда сега.

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

Списък 3: Заявка за таблица в MySQL

CREATE TABLE WebsiteUsers (userID int(9) NOT NULL auto_increment, пълно име VARCHAR(50) NOT NULL, потребителско име VARCHAR(40) NOT NULL, имейл VARCHAR(40) NOT NULL, подайте VARCHAR(40) NOT KEYLL(u PRIMARY) );

Описание на листинг 3:

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

В заявката за листинг 3 използвахме всички онези неща, които са ни необходими за регистрационната форма. Тъй като има променливи имейл, пълно име, парола и потребителско име. Тези променливи ще съхраняват данни на потребителя, които той/тя ще въведе в регистрационната форма на Фигура 2 за записване.

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

Списък 4: Връзка с база данни

Описание на листинг 4:

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

Списък 5: проверка на връзката на свързаността към базата данни

Списък с описание 5:

В листинг 5 току-що се опитах да ви покажа, че можете да проверите и потвърдите връзката между базата данни и PHP. И още нещо, ние няма да използваме код от листинг 5 в нашата уеб страница. Защото е само за да ви накара да разберете как можете да проверите връзката с MySQL.

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

Списък 6: connectivity-sign-up.php

Описание на connectivity-sign-up.php

В това PHP приложение използвах най-простия начин да създам приложение за регистрация за уеб страниците. Както можете да видите, първо създаваме връзка като листинг 4. След това използвахме две функции, първата функция е SignUP(), която се извиква от оператора if от последното от приложението, където първо потвърждава натискането на регистрация бутон. Ако се натисне, ще извика функцията SingUp и тази функция ще използва заявка SELECT, за да извлече данните и да ги сравни с потребителско име и имейл, който в момента е въведен от потребителя. Ако потребителското име и имейл вече присъстват в базата данни, така че ще каже, че съжалявам, че вече сте регистрирани

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



Фигура 3

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



Фигура 4:

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



Фигура 5

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

заключение:

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

Laravel изисква Composer да управлява зависимостите на проекта. Така че, преди да инсталирате Laravel, уверете се, че във вашата система е инсталиран Composer. В случай, че чувате за Composer за първи път, това е инструмент за управление на зависимости за php, подобен на npm на node.

За да инсталирате Composer на вашата машина, проверете тази публикация:

Инсталиране на Laravel на Windows:

Следвайте стъпките по-долу, за да инсталирате laravel на Windows машина. Без значение, че имате xampp/wamp стек, той работи и за двете. На WAMP не забравяйте да инсталирате laravel в папката "www" и на XAMPP, очевидно "htdocs".

СТЪПКА-1) Отворете папката "htdocs" на XAMPP, задръжте клавиша SHIFT и щракнете с десния бутон върху папката и изберете "отворен команден прозорец тук". Като алтернатива можете да отворите командния прозорец и да промените директорията на "xampp/htdocs".

СТЪПКА-2) Въведете следната команда.

Композитор create-project laravel/laravel my_laravel_site --prefer-dist

Тук "my_laravel_site" е името на папката, където ще бъдат инсталирани laravel файловете. Променете това по ваш вкус.

СТЪПКА-3) Сега е време да бъдете търпеливи, тъй като инсталацията на laravel ще отнеме известно време.

СТЪПКА-4) След като се инсталира, променете директорията на "my_laravel_site" (cd "my_laravel_site") в командния ред и въведете командата по-долу.

php artisan служи

СТЪПКА-5) Това ще покаже съобщение, нещо като „Сървърът за разработка на Laravel стартира:“ заедно с URL адрес.

СТЪПКА-6) Копирайте и поставете URL адреса в браузъра. Ако нещата вървят правилно, ще видите добре дошлия екран на laravel.

СТЪПКА-7) Готово! Успешно сте инсталирали laravel на Windows машина и сте готови за работа.

Настройка на ключа на приложението:

Laravel изисква малко конфигурация след инсталиране. Това изисква да зададете ключа на приложението. Това е произволен низ от 32 знака, използван за криптиране на сесия и други чувствителни данни. Обикновено това ще бъде зададено автоматично, когато инсталирате laravel чрез composer или инсталатор на laravel.

В случай, че не е зададен, трябва да го направите ръчно. Първо се уверете, че преименувате файла ".env.example" на ".env" в корена на приложението. След това отворете командния ред и променете в папката на проекта laravel. Сега изпълнете командата по-долу, за да генерирате ключа.

php artisan ключ: генериране

Копирайте този генериран ключ в променливата APP_KEY във файла ".env". Запазете и сте готови.

Инсталиране на конкретна версия на Laravel:

Посоченият по-горе метод ще накара композитора да изтегли и инсталира най-новата версия на laravel. Ако искате да инсталирате по-ранни версии на laravel на вашата машина, не забравяйте да включите съответния номер на версията в командата create-project.

Композитор create-project laravel/laravel=5.4 your-project-name --prefer-dist Прочетете също:

По същия начин можете лесно инсталирайте laravel с помощта на composer на windows. Надявам се да намерите този урок за полезен. Моля, споделете го в социалния си кръг, ако ви харесва.

Добър ден приятели! Нека да разгледаме регистрацията на потребител в PHP. Първо, нека дефинираме условията за нашата регистрация на потребител:

  • Паролата е криптирана с помощта на алгоритъм MD5
  • Паролата ще бъде "сол"
  • Проверка за зает вход
  • Потребителско активиране с писмо.
  • Записване и съхранение на данни в СУБД MySQL

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

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

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

Нека да разгледаме структурата на директорията на скриптове, за да приложим нашето влизане с оторизация. Трябва да разделим скриптовете на логически части. Поставихме модулите за регистрация и оторизация в отделна директория. Ще поставим и връзката към базата данни в отделни директории. MySQL, файл с персонализирани функции, файл за стил cssи нашия шаблон HTML. Тази структура ви позволява бързо да навигирате през скриптове. Представете си, че имате голям сайт с куп модули и т.н. и ако няма ред, ще бъде много трудно да се намери нещо в такава каша.

Тъй като ще съхраняваме всички данни в СУБД MySQL, след това нека създадем малка таблица, в която ще съхраняваме регистрационните данни.

Първо трябва да създадете таблица в базата данни. Да извикаме масата без_регкъдето безе префиксът на таблицата и облиме на таблица.

Структура на таблицата: без_рег

-- -- структура на таблицата `bez_reg` -- СЪЗДАЙТЕ ТАБЛИЦА, АКО НЕ СЪЩЕСТВУВА `bez_reg` (`id` int(11) НЕ NULL AUTO_INCREMENT, `login` varchar(200) NOT NULL, `pass` varchar(32) NOT NULL , `salt` varchar(32) NOT NULL, `active_hex` varchar(32) NOT NULL, `status` int(1) НЕ NULL, ПЪРВИЧЕН КЛЮЧ (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Сега нека създадем основните скриптове за по-нататъшна работа.

ИНДЕКС.PHP ФАЙЛ

CONFIG.PHP ФАЙЛ

"); ?>

Файл 404.HTML

Грешка 404

Грешка 404

Имаше грешка 404 на страницата

Връщане

BD.PHP файл

ИНДЕКС.HTML ФАЙЛ

Регистрация на потребител на PHP MySQL с имейл за активиране

FUNCT.PHP ФАЙЛ

"."\n"; if(is_array($data)) ( foreach($data като $val) $err .= "

  • ".$val."
  • "."\n"; ) иначе $err .= "
  • ".$data."
  • "."\n"; $err .= ""."\n"; върне $err; ) /**Проста обвивка на MySQL заявка * @param низ $sql */ функция mysqlQuery($sql) ( $res = mysql_query($sql); /* Проверете резултата Това показва действителната заявка, изпратена до MySQL, както и грешката.*/ if(!$res) ( $message = "Лоша заявка: " . mysql_error() . "\n"; $message .= "Цялата заявка: " . $ sql; die($message); ) return $res; ) /**Прост генератор на сол * @param низ $sql */ функция salt() ( $salt = substr(md5(uniqid()), - 8); return $сол ;)

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

    REG.PHP ФАЙЛ

    Успешно се регистрирахте! Моля, активирайте акаунта си!!"; //Активирайте акаунта if(isset($_GET["key"])) ( //Проверете ключа $sql = "SELECT * FROM `". BEZ_DBPREFIX ."reg` WHERE `active_hex` = "". escape_str ( $_GET["key"]) """; $res = mysqlQuery($sql); if(mysql_num_rows($res) == 0) $err = "Ключът за активиране е невалиден!"; //Проверка за грешки и показване на потребителя if(count($err) > 0) echo showErrorMessage($err); else ( //Вземете адреса на потребителя $row = mysql_fetch_assoc($res); $email = $row["login"]; //Активирайте потребителя на акаунта $sql = "UPDATE `".BEZ_DBPREFIX ."reg` SET `status` = 1 WHERE `login` = "".$email ."""; $res = mysqlQuery($sql); / /Изпратете имейл за активиране $title = "(!LANG: Вашият акаунт в http://website е активиран успешно"; $message = "Поздравляю Вас, Ваш аккаунт на http://сайт успешно активирован"; sendMessageMail($email, BEZ_MAIL_AUTOR, $title, $message); /*Перенаправляем пользователя на нужную нам страницу*/ header("Location:". BEZ_HOST ."less/reg/?mode=reg&active=ok"); exit; } } /*Если нажата кнопка на регистрацию, начинаем проверку*/ if(isset($_POST["submit"])) { //Утюжим пришедшие данные if(empty($_POST["email"])) $err = "Поле Email не может быть пустым!"; else { if(!preg_match("/^!} [защитен с имейл](+\.)+(2,6)$/i", $_POST["email"])) $err = "Имейл е въведен неправилно"."\n"; ) if(empty($_POST[ "pass") ])) $err = "Полето за парола не може да бъде празно"; if(empty($_POST["pass2"])) $err = "Полето за потвърждение на паролата не може да бъде празно"; //Проверете за грешки и покажете на потребителя, ако (count($err) > 0) echo showErrorMessage($err); else ( /*Продължаваме да проверяваме въведените данни Проверка за съвпадащи пароли*/ if($_POST["pass"] != $_POST["pass2" ]) $err = "Паролите не съвпадат"; //Проверете за грешки и покажете на потребителя if(count($err) > 0) echo showErrorMessage($err); else ( /*Проверете дали имаме такъв потребител в базата данни* / $sql = "ИЗБЕРЕТЕ `вход` ОТ `".BEZ_DBPREFIX ."reg` WHERE `login` = "".escape_str($_POST["email"]) """; $res = mysqlQuery( $sql); if(mysql_num_rows($res) > 0) $err = "Съжалявам за влизане: ". $_POST["имейл"] ."зает!"; //Проверете за грешки и покажете на потребителя if(count($err) > 0) echo showErrorMessage($err); else ( //Вземете HASH на солта $salt = salt(); // Посолете паролата $pass = md5(md5($_POST["pass"]).$salt); /*Ако всичко върви добре, запишете данни в базата данни*/ $sql = "INSERT INTO `". BEZ_DBPREFIX ."reg ` VALUES("", "" .escape_str($_POST["email"]) "", "". $pass ."", "". $salt ."", "". md5($salt) . "", 0)"; $ res = mysqlQuery($sql); //Изпращане на имейл за активиране $url = BEZ_HOST ."less/reg/?mode=reg&key=". md5($salt); $title = "(! LANG:Регистрация на http:// /уебсайт"; $message = "Для активации Вашего акаунта пройдите по ссылке ". $url .""; sendMessageMail($_POST["email"], BEZ_MAIL_AUTOR, $title, $message); //Сбрасываем параметры header("Location:". BEZ_HOST ."less/reg/?mode=reg&status=ok"); exit; } } } } ?>!}

    REG_FORM.HTML ФАЙЛ

    Регистрация на потребител на PHP MySQL с имейл за активиране

    електронна поща *:
    парола *:
    Потвърждение на парола *:

    Полета с икона *задължително

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

    AUTH.PHP ФАЙЛ

    0) echo showErrorMessage($err); else ( /*Създайте заявка за извличане на база данни за удостоверяване на потребителя*/ $sql = "SELECT * FROM `". BEZ_DBPREFIX ."reg` WHERE `login` = "". escape_str($_POST["email"]) ." " И `status` = 1"; $res = mysqlQuery($sql); //Ако влизането съвпада, проверете паролата if(mysql_num_rows($res) > 0) ( //Вземете данни от таблица $row = mysql_fetch_assoc( $res ); if(md5(md5($_POST["pass"]).$row["salt"]) == $row["pass"]) ( $_SESSION["user"] = true; // Нулиране на параметрите header("Местоположение:". BEZ_HOST ."less/reg/?mode=auth"); изход; ) else echo showErrorMessage("Грешна парола!"); ) else echo showErrorMessage("Вход ". $_POST["имейл"] ."не е намерено!"); ) ) ?>

    За тези, които имат най-новата версия на PHP, публикувам този скрипт, използвайки ЗНПзащото разширение MySQLе остарял и е премахнат от новата версия на PHP. Изтеглете регистрация и оторизация php mysql pdo

    Архивът е актуализиран на 24 февруари 2015 г.

    внимание:Ако използвате този скрипт на локален сървър като DENWER,XAMPP, тогава не трябва да чакате писма до пощенската си кутия. Писмата са в мъничето изпрати писмо. AT Денвърможете да ги намерите по пътя Z:\tmp\!sendmail\Можете да отворите тези файлове във всеки имейл клиент.