Robimo registravimo sistemą valdo PHP, MySQL ir jQuery wikis. Pokrokova registracija naudojant jQuery PHP registracijos formą su Facebook stiliumi
Robimo registravimo sistemą valdo PHP, MySQL ir jQuery wikis. Pokrokova registracija naudojant jQuery PHP registracijos formą su Facebook stiliumi
02.12.2016
Jei jums reikia padaryti vieną iš savo svetainės skyrių prieinamą svetimam, bet nenurodytam osibų skaičiui, tai lengviau padaryti papildomai registruojant ir autorizuojant koristuvachus. Yra daug būdų leisti koristuvachams. Galite nulaužti žiniatinklio serverio įrankius ir programavimo įrankius. Pakalbėkime apie teigiamus balsus, jei PHP sesijos buvo patvirtintos.
Imovirno, norėtumėte rasti geresnį būdą sukurti tokią formą. Išskyrus tai, šis faktinis pasireiškimas vis dar yra mano planuose, tačiau galite manyti, kad apverstos nuorodos forma gali būti skatinama naudoti papildomus PHP objektinės orientacijos metodus.
Dėl burbuolės aptarsime visas detales, yakі zrobimo davė. Ko mums reikia? Mums reikia scenarijaus, pavyzdžiui, užregistruoti koristuvach, įgalioti koristuvach, nukreipti koristuvach kur po autorizacijos. Taigi turėsime sukurti šoninę juostą, nes ji bus apsaugota nuo neteisėtos koristuvachivinės prieigos. Norėdami užsiregistruoti ir suteikti leidimą, turėsime sukurti HTML formos. Informaciją apie koronerių registraciją renkame iš duomenų bazės. Tse reiškia, kad mums vis tiek reikia scenarijaus, kad galėtume prisijungti prie DBVS. Naudojame miconuvatimemo funkcijų darbą, kaip ir patys rašysime. Funkcijos Išsaugome ocremy failą.
Otzhe, mums reikia šių failų:
skambutis iš DBVS;
koristuvach funkcijos;
leidimas;
Registracija;
šonas pavogtas;
koristuvacho darbo užbaigimo scenarijus;
scenarijus, pakeičiantis koristuvach leidimo būseną;
stiliaus lapas, skirtas paprasčiausiam šonų dizainui.
Viskas bus kvaila, nes duomenų bazėje neturite atitinkamų lentelių. Paleiskite DBVS valdymo įrankį (PhpMyAdmin arba komandinė eilutė, yak zruchnіshe) i vykonayte naujame įžeidžiančiame klausime:
KURTI LENTELĘ "naudotojai" ("id" int(11) NOT NULL AUTO_INCREMENT, "prisijungimo" simbolis(16) NOT NULL, "slaptažodis" char(40) NOT NULL, "reg_date" laiko žyma NOT NULL NUMATYTOJI CURRENT_TIMESTAMP, ID )) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Mūsų failus pavadinsiu tokiais scenarijais (visos smarvės bus tame pačiame kataloge):
duomenų bazė.php
funkcijos.php
prisijungti.php
registracija.php;
index.php;
logout.php;
checkAuth.php;
stilius.css
Odos paskyrimas iš jų, dainuok, supranti. Pažiūrėkime scenarijų iš DBVS. Wee joga jau bachili. Tiesiog išsaugokite šio scenarijaus kodą duomenų bazėje.php faile. Funkcijas iššifruosime functions.php faile. Kaip viskas pracyuvatime? Neautorizuotas coristuvach bando prieiti prie šifruoto index.php dokumento, sistema tikrina coristuvach autorizacijas, neva koristuvach neautorizuotas, vynas nukreipiamas į autorizacijos pusę. Įgaliojimo pusėje galite pateikti įgaliojimo formą. Leiskite zrobimo її.
Koristuvachiv leidimas
Registruotis.
Dabar mūsų forma yra būtina įdėti į išvaizdą. Tuo pačiu metu reikšmingos kitų elementų taisyklės. Aš, šokinėdamas į priekį, įnešiu stilių lenteles per viršų.
Kadangi viskas nustatyta teisingai, jūsų naršyklėje gali būti:
Akivaizdu, kad vis dar neturime registruotų koristuvachų, o norint gauti leidimą, būtina užsiregistruoti. Užpildykime registracijos formą.
Korespondentų registracija
Jūs, dainuojate, nukreipėte pagarbą tiems, kurie turi PHP pakeitimų HTML kode. Smarvė – vietoj formų teksto laukelių atributų, vietoje konteinerių – atleidimo ženklai. Alemy nepakeitė pakeitimų. Susmulkinkime.
// Инициализируем переменные для введенных значений и возможных ошибок
$errors = array();
$fields = array();
?>
Korespondentų registracija
Formos žymos veiksmo atribute parametras nenurodytas. Tokiu atveju, užvaldant šias formas, smarvė bus obroblyatsya pagal tą patį scenarijų, dėl kurio smarvė buvo ištaisyta. Taigi, turime parašyti kodą, kuris apdoros šias formas. Ale, pradėkime nuo їhnoyї apdorojimo algoritmo.
Turime užtikrinti, kad prisijungimo ir slaptažodžio laukai nebūtų tušti. Tada reikia patikrinti prisijungimo galiojimą, kol galėsime. Slaptažodis taip pat atsakingas už pakartotinį slaptažodžio įvedimą, o slaptažodžio pakartotinis įvedimas yra atsakingas už tai, be to, smarvė gali būti identiška. Lyg iš šitų minčių nemušami, šių formų apdorojimas kaltas, bet pririštas, masyve prisiminimas apie atleidimą gali būti įrašytas išpažintyje, o tai galima padaryti Koristuvačiovo atveju. Koristuvacho patogumui išsaugome jo prisijungimo įvedimą (taip pat ir prisijungimo vardą), užrašydami jo reikšmę į $laukų masyvą.
Viskas gerai, naršyklėje, grįžus į registracija.php dokumentą, matosi maždaug taip:
Dabar, tarkime, koristuvachas paspaudė registracijos mygtuką neužpildęs formos laukelių. Priklausomai nuo mūsų algoritmo, prisijungimo vardas ir slaptažodis negali būti tušti. Kadangi protas nėra pergalingas, registracija neįmanoma. Prisimename, kad šios formos apdorojamos pagal srautinio perdavimo scenarijų. Tai reiškia, kad turime pakeisti šį kodą, pridedant papildomų pataisų. Nedelsdami pakeisime ir patikrinkime. Įvedę prisijungimo vardą ir slaptažodį, turite patikrinti priskirtų kredencialų galiojimą. Norėdami iš naujo patvirtinti prisijungimo vardą ir slaptažodį, faile functions.php sukuriame coristuvacha funkciją.
/** * functions.php * Failas su koristuvach funkcijomis */ // Prijungti failą su DBMS ryšio parametrais request_once("database.php"); // Pakartotinis koristuvach funkcijos pavadinimo tikrinimas checkLogin($str) ( // Iš pradžių pakeiskite, jei galime prisiminti atleidimą $error = ""; // Tarsi prisijungimo eilutės nėra, galime pasukti apie atleidimą if(!$str) ( $error = " Neįvedėte pavadinimo "coristuvacha"; return $error; ) /** * Dar kartą patikrinsime, ar nėra papildomų reguliarių reiškinių ir naudosime simbolius "_", "- ", "." */ $pattern = "/^[- _.az\d](4,16)$/i"; $result = preg_match($pattern, $str) ; // Kadangi pakartotinis patvirtinimas nebuvo atliktas praeiti, atsigręžkime apie atleidimą if(!$result) ( $error = " Neteisingi simboliai koristuvach pavadinime arba koristuvach vardas per trumpas (ilgas)"; return $error; ) // Viskas gerai , paverskite reikšmę true return true; ) // Pakartotinai tikrinamas koristuvach funkcijos checkPassword($str) slaptažodis ( // Inicijuojimo keitimas, jei yra galimas atleidimo įspėjimas $error = ""; // Vis dar ta pati diena kaip ir prisijungimo eilutę, galime paversti atleidimo įspėjimą if(!$str) ( $error = "Neįvedėte slaptažodžio"; grįžti $error; ) /** * Patvirtinti slaptažodį koristuvach papildomiems įprastiems virusams * Slaptažodis yra kaltas, bet ne trumpas 6, ne iki 16 simbolių * Kai kuriais atvejais lotyniškos abėcėlės simboliai, skaičiai, * kitais atvejais gali būti simbolių "_", "!", " (", ") " */ $pattern = "/^[_!)(.az\d](6,16)$/i"; $rezultatas = preg_match($modelis, $str); // Darant prielaidą, kad patvirtinimas nepavyko, grįžkime prie atleidimo if(!$result) ( $error = "Nepriimtini simboliai slaptažodžio slaptažodyje arba slaptažodis per trumpas (ilgas)"; return $error; ) / / Viskas gerai, paversk tiesa grįžti tiesa; )
Dabar reikia redaguoti registracija.php failą, kad įjungtumėte funkcijas, apie kurias paskelbėme. Prieš scenarijų pridėsiu savo mintis, tarsi iškreipčiau registracijos mygtuko puolimą. Viduryje proto pradedamas pakartotinis prisijungimo vardo ir slaptažodžių tikrinimas. Žvelgiant atgal, tarsi pakartotinis patikrinimas pasibaigtų nesėkme, atnaujiname formą ir rodome priminimą apie atleidimą. Atsiprašymo nebėra, bet registruojamės, registracijos formos nebematome, primename apie sėkmingą registraciją, o papildomai antraštės() funkcijai nukreipiama į įgaliojimo formą.
/**
* registration.php
* Страница регистрации пользователей. Предполагается, что в вашей
* базе данных присутствует таблица пользователей users, в которой
* есть поля id, login, password, reg_date
*/
// Подключаем файл с пользовательскими функциями
require_once("functions.php");
// Инициализируем переменные для введенных значений и возможных ошибок
$errors = array();
$fields = array();
// Заранее инициализируем переменную регистрации, присваивая ей ложное значение
$reg = false;
// Если была нажата кнопка регистрации
if(isset($_POST["submit"])) {
// Делаем массив сообщений об ошибках пустым
$errors["login"] = $errors["password"] = $errors["password_again"] = "";
// С помощью стандартной функции trim() удалим лишние пробелы
// из введенных пользователем данных
$fields["login"] = trim($_POST["login"]);
$password = trim($_POST["password"]);
$password_again = trim($_POST["password_again"]);
// Если логин не пройдет проверку, будет сообщение об ошибке
$errors["login"] = checkLogin($fields["login"]) === true ? "" : checkLogin($fields["login"]);
// Если пароль не пройдет проверку, будет сообщение об ошибке
$errors["password"] = checkPassword($password) === true ? "" : checkPassword($password);
// Если пароль введен верно, но пароли не идентичны, будет сообщение об ошибке
$errors["password_again"] = (checkPassword($password) === true && $password === $password_again) ? "" : "Введенные пароли не совпадают";
// Если ошибок нет, нам нужно добавить информацию о пользователе в БД
if($errors["login"] == "" && $errors["password"] == "" && $errors["password_again"] == "") {
// Вызываем функцию регистрации, её результат записываем в переменную
$reg = registration($fields["login"], $password);
// Если регистрация прошла успешно, сообщаем об этом пользователю
// И создаем заголовок страницы, который выполнит переадресацию к форме авторизации
if($reg === true) {
$message = "
Sėkmingai užsiregistravote sistemoje. Iš karto būsite nukreipti į leidimo pusę. Lyg nieko nebūtų nutikę, eikite pas ją tiesioginio prašymo.
Scenarijuje paminėjome vieną naują funkciją registracija() . Ir dar nesame apstulbę. Susmulkinkime.
// Registravimo žurnalo funkcijos registracija ($login, $slaptažodis) ( // Inicijuoti galimų atleidimo įspėjimų pakeitimą $error = ""; // Nėra prisijungimo eilutės, pasukite malonės įspėjimą if(!$ login) ( $ error = "Prisijungimas nenurodytas"; // Parašykite užklausos eilutę $sql = "SELECT `id` FROM `users` WHERE `login`="" . $login . """; // Robimo užklausa į duomenų bazę $query = mysql_query ($sql) arba die( ""); // Mes žiūrime į eilučių skaičių su tokiu prisijungimu, jei yra tik viena, // galime kreiptis dėl atleidimo if(mysql_num_rows( $query) > 0) ( $error = " prisijungimas jau registruotas"; grąžinti $ klaidą; ) // Kadangi tokio koristuvach nėra, galima jį užregistruoti // Parašykite eilutę $sql = "INSERT INTO `vartotojai ` (`id`,`login`,`slaptažodis`) VERTĖS (NULL, "" . $login ." ","". $slaptažodis. "")"; // Robimo klausia bazinės $query = mysql_query( $sql) arba mirti ("
Nepavyko pridėti coristuvach: " . mysql_error() . ". Atsiprašau, stovėjo eilėje ". __LINE__."
"); // Nepamirškite prisijungti prie DBVS mysql_close(); // Pasukite reikšmę true, kad praneštumėte apie sėkmingą serverio registraciją, grąžinkite true; )
Jei viskas gerai, jūsų koristuvach bus užregistruotas. Galite išbandyti formą. Pabandykite užregistruoti korystuvakus su tais pačiais prisijungimais. Po sėkmingos registracijos būsite nukreipti į įgaliojimo formą. Anksčiau kūrėme maketą, skirtą formos patobulinimui. Jei veiksmo atribute nenurodytas reikalingas parametras, formos siunčiami duomenys bus apdorojami pagal šį scenarijų. Taigi, turime parašyti kodą apdorojimui ir pridėti jį prie login.php dokumento.
/**
* Страница авторизации пользователей. Предполагается,
* что в вашей базе данных присутствует таблица users,
* в которой существуют поля id, login и password
*/
// Подлючаем файл с пользовательскими функциями
require_once("functions.php");
// Заранее инициализируем переменную авторизации, присвоив ей ложное значение
$auth = false;
// Если была нажата кнопка авторизации
if(isset($_POST["submit"])) {
// Делаем массив сообщений об ошибках пустым
$errors["login"] = $errors["password"] = $errors["password_again"] = "";
// С помощью стандартной функции trim() удалим лишние пробелы
// из введенных пользователем данных
$login = trim($_POST["login"]);
$password = trim($_POST["password"]);
// Авторизуем пользователя
// Вызываем функцию регистрации, её результат записываем в переменную
$auth = authorization($login, $password);
// Если авторизация прошла успешно, сообщаем об этом пользователю
// И создаем заголовок страницы, который выполнит переадресацию на защищенную
// от общего доступа страницу
if($auth === true) {
$message = "";
header("Refresh: 5; URL = /");
}
// Иначе сообщаем пользователю об ошибке
else {
$errors["full_error"] = $auth;
}
}
?>
Koristuvachiv leidimas
// Если запущен процесс авторизации, но она не была успешной,
// или же авторизация еще не запущена, отображаем форму авторизации
if($auth !== true) {
?>
;">
// Выводим сообщение об ошибке, если оно есть
echo $errors["full_error"] ? $errors["full_error"] : "";
?>
Jei nesate užsiregistravę sistemoje, prašome užsiregistruoti.
} // Закрывающая фигурная скобка условного оператора проверки успешной авторизации
// Иначе выводим сообщение об успешной авторизации
else {
print $message;
}
/**
* Если всё правильно, будет выведено сообщение об успешной авторизации,
* пользователь будет переадресован на защищенную страницу
*/
?>
Jūs, ko gero, minėjote, kad autorizacijos scenarijus turi dar vieną nežinomą funkciją – autorizaciją (). Ši funkcija yra atsakinga už koristuvach autorizavimą, prieš tai patikrinusi, kas yra koristuvach registracijos duomenų bazėje su tokiu prisijungimo vardu ir slaptažodžiu. Jei toks blogiukas nebus rastas, autorizacija bus nutraukta, ekrane bus rodomas pranešimas apie gedimą. Po sėkmingo pakartotinio patikrinimo funkcija autorizacijos() pradeda seansą ir įrašo joje koristuvach prisijungimo vardo ir slaptažodžio reikšmę, primena scenarijų apie autorizavimo sėkmę, o scenarijus nukreipia koristuvach į apsaugotą pusę. išteklius.
/** * Corystuvach autorizacijos funkcija. * Įgaliojimas koristuvachiv mes būsime zdіysnyuvatisya * už pagalbą PHP sesijoje. */ funkcijos autorizacija($login, $slaptažodis) ( // Inicijuoti pakeitimą su galimais įspėjimais apie malonę $error = ""; // Vis dar nėra prisijungimo eilutės, pasukite atleidimo įspėjimą if(!$login) ( $error = " Prisijungimas nenurodytas"; return $klaida; ) elseif(!$slaptažodis) ( $error = "Slaptažodis nenurodytas"; return $error; ) // Patikrinkite, ar dar nėra prisijungimo // Prisijungiama prie DBMS connect(); / / Turime persvarstyti, koks yra toks trumpas registracijų sąrašas? slaptažodis """; // Galime paklausti $query = mysql_query($sql) arba die("
Viconati neįmanoma paklausti: ". mysql_error().". Atsiprašau, stovėjo eilėje ". __LINE__."
"); // Su tokiais tributais patikrinti nėra galimybės, grįžkime atgal apie atleidimą if(mysql_num_rows($query) == 0) ( $error = "Patikra, nes nepriskirta registracija"; return $error; ) // Tiesiog patikrinkite, ar nėra atleidimo , paleiskite sesiją session_start(); // Įrašau koristuvach prisijungimo vardą ir slaptažodį // Kam galime laimėti superglobalinį masyvą $_SESSION $_SESSION["prisijungti"] = $login; $_SESSION["slaptažodis"] = $slaptažodis; / Nepamirškite uždaryti seanso su duomenų baze mysql_close(); // Pasukite true, kad praneštumėte apie sėkmingą serverio autorizaciją, grąžinkite true;
Jei koristuvach įstrigo pavogtame puslapyje, pakeiskite duomenų apie savo įgaliojimą teisingumą. Kam mums reikia dar vienos koristuvach funkcijos. Pavadinkime tai checkAuth(). Mes patikrinsime šiuos įgaliojimus tiems, kurie yra išsaugoti mūsų duomenų bazėje. Jei duomenys nepasirodo, koristuvach bus nukreiptas į autorizacijos pusę.
Funkcija checkAuth($login, $password) ( // Kadangi nėra prisijungimo vardo ar slaptažodžio, jį galima paversti false if(!$login || !$slaptažodis) return false; // Tikriname tokio sutrumpinimo registracijas // Prisijungiama prie DBVS connect(); // Pridedama eilutė $sql = "SELECT `id` FROM `users` WHERE `login`="".$login."" AND `password`="".$slaptažodis."" "; // Galime paklausti $ query = mysql_query($sql) arba die("
Viconati neįmanoma paklausti: ". mysql_error().". Atsiprašau, stovėjo eilėje ". __LINE__."
"); // Jei nėra galimybės uždaryti duomenų tokiais duomenimis, jis gali būti pakeistas false; if(mysql_num_rows($query) == 0) ( return false; ) // Nepamirškite uždaryti duomenų naudojant duomenų bazė mysql_close(); // Priešingu atveju ji gali būti paversta true return true; )
Dabar, jei koristuvach nuėjo į pavogtą pusę, mes kalti dėl šių įgaliojimų pakartotinio tikrinimo funkcijos. Wiki scenarijų ir pakartotinį patvirtinimą įdėsime į checkAuth.php failą ir įtrauksime į kitą pusę, nes jis bus uždarytas viešai prieigai.
/** * Scenarijus, skirtas pakartotiniam root paskyros autorizavimo patikrinimui */ // Pradedame sesiją, kuriai paimsime įgalioto korespondento session_start() prisijungimo vardą ir slaptažodį //; // Įtraukite failą su koristuvach funkcijomis require_once("functions.php"); /** * Norėdami nustatyti, kurie įgaliojimai yra teisingi, turime * patikrinti, kurie duomenų bazės įrašai yra jūsų prisijungimo vardas * ir slaptažodis. Siekdami pagreitinti korespondento funkciją * patikrinkite įgalioto korespondento duomenų teisingumą. * Jei ši funkcija įjungta į klaidingą, leidimo nėra. * Kad būtų patvirtintas įgaliojimas, mes tiesiog nukreipiame koristuvach į autorizacijos pusę. */ // Kol sesijoje yra duomenų apie prisijungimą ir slaptažodį, // patikrinkite juos if(isset($_SESSION["login"]) && $_SESSION["login"] && isset($ _SESSION["slaptažodis" ]) && $_SESSION["slaptažodis"]) ( // Dėl to nepavyksta patikrinti esminių duomenų if(!checkAuth($_SESSION["prisijungimas"], $_SESSION["slaptažodis"]) ) ( // Prisijungimo peradresavimas į prisijungimo puslapio antraštę("vieta: login.php"); // Išėjimo scenarijaus priskyrimas scenarijui; ) ) // Jei yra kokių nors detalių apie prisijungimą, kitu atveju informacijos nėra apie slaptažodį, // Atkreipkite dėmesį, kad autorizacijos nėra, jis nukreipiamas į autorizacijos pusę // į autorizacijos pusę else ( header("location: login.php"); // Priskirta scenarijaus išėjimui;
O dabar sukurkime mūsų pavogtos pusės kodą. Vynas bus atleistas.
/**
* Защищенная страница. К ней возможен доступ только авторизованным
* пользователям. Если пользователь не авторизован, ему предлагается
* авторизоваться, и доступ к сайту ограничивается.
*/
require_once("checkAuth.php");
?>
Korespondentų įgaliojimai ir registracija
Sėkmingas autorizavimas.
Jūs neleidote patekti į pavogtą pusę. Galite atsijungti nuo sistemos.
Kaip žinote, užšifruotas dokumentas turi tik vieną failą – checkAuth.php. Kiti failai jau įtraukti į kitus scenarijus. Todėl mūsų kodas neatrodo didelis. Organizavome korespondentų registraciją ir įgaliojimus. Dabar reikia leisti koristuvachai išeiti iš sistemos. Kam sukuriame scenarijų logout.php faile.
/** * Scenarijus, skirtas išeiti iš koristuvach iš sistemos. Pagrindinių sąskaitų turėtojai yra įgalioti per seansus, jų prisijungimo vardas ir slaptažodis saugomi $_SESSION superglobaliame masyve. Norėdami * atsijungti nuo sistemos, tiesiog pridėkite reikšmę * prie $_SESSION["login"] ir $_SESSION["slaptažodis"] masyvo, po kurio būsime nukreipti atgal į prisijungimo puslapį */ // Pradedame seansą session_start(); unset($_SESSION["prisijungti"]); unset($_SESSION["slaptažodis"]); header("vieta: login.php");
Dokumentų registravimo, autorizacijos ir pakartotinio tikrinimo scenarijus paruoštas. Jogą galite pasukti pas save, papildyti, keisti pagal savo poreikius. Jei turite patiekalų, galite juos įdėti į komentarus. Galite užfiksuoti visus čia paminėtus failus, supakuotus į vieną archyvą.
P.S. Žinau, kad geriau rašyti objektinį kodą, žinau, kad iš tikrinamo asmens slaptažodžio perkelti ir išsaugoti nebūtina, kad informacija, kuri įvedama į duomenų bazę, turi būti iš anksto apversta. Aš žinau. Aš čia ne apie tai.
Reaguoja su formų funkcijomis į įėjimą ir registraciją, su dinaminio perjungimo galimybe, nekeičiant pusės. Atsiradus naujai paskyrai galite lengvai persijungti iš vienos į kitą ir, jei reikia, pasirinkti slaptažodžio keitimo parinktį. Šiandien matome, kaip viską galima įgyvendinti norint papildomai susieti nedidelį, bet net funkcionalų jQuery įskiepį ir naujus CSS3 standartus.
Šis metodas bus teisingas, jei norite dirbti taip, kad įėjimo ir registracijos forma būtų prieinama korespondentams jūsų svetainės odos pusėje. Įėjus į svetainę, ar užsiregistravus korespondentu, nebūsite nukreipti į kitą pusę, o visus reikalingus dalykus matysite „neatvykus“, viskas vienoje pusėje.
Šiuolaikiškai atrodančių formų, kurias galima sujungti CSS3 pagalba, dizainas, pagrindinė įskiepio idėja nėra puiki, modalinio vaizdo išvaizda ir pojūtis praktiškai be žagsėjimo. Stovidsotkovo adaptyvus išdėstymas, modalinio lango aukštis ir plotis su formomis, automatiškai nustatomas pagal išplėtimo ekranų dydį.
Užpakalis nustebo, dabar pažvelkime į visų pagrindinių modalinio lango komponentų ir formų detales, kad sužinotume, kaip juos įveikti savo svetainėje. Lango sujungimas su įvedimo ir registracijos formomis, įkvėptas populiarios JavaScript bibliotekos, jQuey papildinio ir sugeneruotų CSS stilių. Visi šie įrankiai turi būti prijungti prie jūsų svetainės. Likusią dabartinę jQuey bibliotekos versiją galima prijungti tiesiai iš Google, archyve rasite patį main.js įskiepio failą ir paruoštą style.css stilių rinkinį. „Javascript“ rašomas prieš uždaromą žymą
, CSS stilius galima nukopijuoti ir pridėti prie svetainės stylesheet.css failo.
HTML struktūra:
Modalinių vikonų bazinis konteineris tamsintame fone ir įmontuota forma su valdymo elementais dedamas šono pavadinime. Siekiant didesnio supratimo, padalinus sektorius ir pridėjus komentarus. Visi dizaino elementai, kurie yra susieti su CSS per klasių pavadinimus, kad galėtumėte be ypatingų sunkumų pakeisti formų dizainą, kad jis atitiktų jūsų svetainių dizainą.
<
div class
=
"cd-user-modal"
>
<
div class
=
"cd-user-modal-container"
>
<
ul class
=
"cd-switcher"
>
<
li><
a href=
"#0"
>Įeikite
a>
li>
<
li><
a href=
"#0"
>Registracija
a>
li>
ul>
<
div id=
"cd-login"
>
<
form class
=
"cd-form"
>
<
p class
=
"fieldset"
>
<
label class
=
"image-replace cd-email"
for
=
"signin-email"
>El. paštas
label>
<
input class
=
id=
"signin-email"
type=
"email"
placeholder=
"El. paštas"
>
<
span class
=
"cd-error-message"
>Štai priminimas apie atleidimą!
span>
p>
<
p class
=
"fieldset"
>
<
label class
=
"image-replace cd-password"
for
=
"signin-password"
>Slaptažodis
label>
<
input class
=
„viso pločio turi-padding turi-ribą“ id= "prisijungimo slaptažodis" type= "text" placeholder= "(!LANG:(!LANG:Slaptažodis"
>
!}!}<
a href=
"#0"
class
=
"hide-password"
>prihovati
a>
<
span class
=
"cd-error-message"
>Štai priminimas apie atleidimą!
span>
p>
<
p class
=
"fieldset"
>
<
input type=
"checkbox"
id=
"remember-me"
checked>
<
label for
=
"remember-me"
>Prisimink mane
label>
p>
<
p class
=
"fieldset"
>
<
input class
=
"full-width"
type=
"submit"
value=
"Palikti"
>
p>
form>
<
p class
=
"cd-form-bottom-message"
><
a href=
"#0"
>Pamiršai slaptažodį?
a>
p>
div>
<
div id=
"cd-signup"
>
<
form class
=
"cd-form"
>
<
p class
=
"fieldset"
>
<
label class
=
"image-replace cd-username"
for
=
"signup-username"
>Esu Koristuvacha
label>
<
input class
=
„viso pločio turi-padding turi-ribą“ id="registravimo-naudotojo vardas" type="text" placeholder= „Im'ya Koristuvacha“>
<
span class
=
"cd-error-message"
>Štai priminimas apie atleidimą!
span>
p>
<
p class
=
"fieldset"
>
<
label class
=
"image-replace cd-email"
for
=
"signup-email"
>El. paštas
label>
<
input class
=
„viso pločio turi-padding turi-ribą“ id= "registracijos el. paštas" type= "el. paštas" placeholder= "(!LANG:(!LANG:El."
>
!}!}<
span class
=
"cd-error-message"
>Štai priminimas apie atleidimą!
span>
p>
<
p class
=
"fieldset"
>
<
label class
=
"image-replace cd-password"
for
=
"signup-password"
>Slaptažodis
label>
<
input class
=
„viso pločio turi-padding turi-ribą“ id= "registravimo slaptažodis" type= "text" placeholder= "(!LANG:(!LANG:Slaptažodis"
>
!}!}<
a href=
"#0"
class
=
"hide-password"
>prihovati
a>
<
span class
=
"cd-error-message"
>Štai priminimas apie atleidimą!
span>
p>
<
p class
=
"fieldset"
>
<
input type=
"checkbox"
id=
"accept-terms"
>
<
label for
=
"accept-terms"
>Aš tinkamas<
a href=
"#0"
>protus
a>
label>
p>
<
p class
=
"fieldset"
>
<
input class
=
"full-width has-padding"
type=
"submit"
value=
"Sukurti paskyrą">
p>
form>
div>
<
div id=
"cd-reset-password"
>
<
p class
=
"cd-form-message"
>Pamiršai slaptažodį? Būkite malonūs, įveskite el. pašto adresą. Turite atšaukti prašymą sukurti naują slaptažodį.
p>
<
form class
=
"cd-form"
>
<
p class
=
"fieldset"
>
<
label class
=
"image-replace cd-email"
for
=
"reset-email"
>El. paštas
label>
<
input class
=
„viso pločio turi-padding turi-ribą“ id= "reset-email" type= "email" placeholder= "(!LANG:(!LANG:El."
>
!}!}<
span class
=
"cd-error-message"
>Štai priminimas apie atleidimą!
span>
p>
<
p class
=
"fieldset"
>
<
input class
=
"full-width has-padding"
type=
"submit"
value=
"Atstatyti slaptažodį">
p>
form>
<
p class
=
"cd-form-bottom-message"
><
a href=
"#0"
>Pasukite į įėjimą
a>
p>
div>
<
a href=
"#0"
class
=
"cd-close-form"
>Uždaryti
a>
div>
div>
Įeikite
Registracija
Pamiršai slaptažodį?
Pamiršai slaptažodį? Būkite malonūs, įveskite el. pašto adresą. Turite atšaukti prašymą sukurti naują slaptažodį.
Pasukite į įėjimą
Uždaryti
CSS stiliai:
Pagrindinis šio formos valdymo elemento šablonas yra populiaraus plokščio stiliaus (Flat) autorius, aiškiai akcentuojant minimalizmą. Nieko zayvogo, pasaulio matymas aptemęs, šviesus spalvinimui, geras šrifto ir piktogramų pasirinkimas, įvado laistymo identifikavimui. Naudodamiesi CSS galia, galite lengvai pakeisti bet kurį formos elementą.
Perėjimo metu buvo pridėtas išblukimas, kad būtų užtikrintas sklandus modalinio lango perėjimas uždarius.
Pastaba. Visų laukų šrifto dydis nustatytas į 16 pikselių. Tse zapobіgaє automatinis mastelio keitimas, jakų vіdbuvaєtsya pіd valandą peržiūrėti mobiliuosius ūkinius pastatus.
Autorinė, buržuazinė įskiepio versija yra žinoma. Ten taip pat galite atsisiųsti originalą. Rusišką versiją, galite paimti iš mano Yandex.Disk, visi reikalingi failai, dabai supakuoti į vieną archyvą, nepamirškite tuo pasigrožėti, daugiau adaptacijų, gyvas robotiško stebuklo jQuery įskiepio užpakalis:
Su pagarba Andrius
Svetainėje sukūrėme stilingą leidimo formą, kurią galite sužinoti iš „Futurico UI Pro“, kurią sukūrė Volodymyras Kudinovas. Norėdami sukurti formą, nulaužsime CSS3 ir jQuery.
Krok 1 – HTML išdėstymas
Pradėkime nuo HTML kontūro kūrimo. Sukurkime formą su keliais įvestimis (im'ya koristuvacha, slaptažodis, žymės langelis ir mygtukas "pateikti") ensign apvyniosime span žymą, kurią naudosime formuodami ensign stilių. Apvyniokime formą ir antraštę DIV žyma ir priskirkime ją savo „prisijungimo formos“ klasei.
>
prisijungimo forma
>
>
>
Krok 2 - Žagalni stiliai
Ant nugaros matėme visus laukus, per laiptelius, tarp menkai. iš elementų, yakі mes laimėsime.
prisijungimo forma, .prisijungimo forma h1, .login-form span, .prisijungimo formos įvestis, .login-form label( paraštė: 0; paminkštinimas: 0; kraštinė: 0; kontūras: 0; }
Sudėkime formų konteinerio stilius. Pridedame aiškią padėtį, fiksuotą plotį ir aukštį, fono spalvą, suapvalintus kraštus ir atspalvius.
žiniatinklio rinkinio perėjimas: visi .15s lengva įvesti; -Moz-perėjimas: visi .15s lengva įvesti; -o-perėjimas: visų .15s lengvas įėjimas-išėjimas; perėjimas: visi .15s lengvas įėjimas-išėjimas; }
Tada nustatysime prisijungimo ir slaptažodžio laukų įvedimo stilius. Mi dodamo gradientas pilkas fonas ir šešėlis. Taip pat pridedame fiksuotą teksto plotį, lygų 170 pikselių.
Prisijungimo formos įvestis[ type= text ] , .login-form input[type=password] , .js .login-form span( spalva: #686868; plotis: 170px
Dabar taisoma svarbiausia dalis, prie kurios negalime pakeisti vėliavų išvaizdos su CSS pagalba, prie to pakeitėme kitų formos laukelių išvaizdą.
Paprasčiausias būdas, kurį žinau, yra pakeisti vėliavą span žyma.
Tai bus kitas žingsnis: pakaušyje nustatysime vėliavą ir nustatysime tokius span žymos stilius, kad jis atrodytų kaip ensign, o tada atnaujinsime vėliavą (ženklai / ne ženklai ) su jQuery pagalba.
Širdelės išjungė JavaScript, būtina pridėti atsarginę parinktį. Kam pridedame laiko "js" y klasės kūno žyma, skirta jQuery pagalbai. Taigi, jei „JavaScript“ yra praleista, „js“ klasė bus pridėta prie kūno žymos, kai pasirenkama pusė, o jei „JavaScript“ praleista, klasė nebus pridėta. Nuo šiol stilizacijų čempionais bus tik „JavaScript“ palaikantys koristuvachai.
Bet kokie stiliai, kurie įveda „js“ klasę, sustos tik įjungus „JavaScript“.
Croc 6 – jQuery
Pridėsime naujausią „jQuery“ bibliotekos versiją naudodami „Google API“. Jei norite, galėsite ją priglobti pasirinktame viešajame serveryje. Tada pridėkite kitą kodą HTML failo apačioje, prieš baigiamąją žymą .
Jei turite acichli galią, geriausiam būdui pagerinti, rekomenduojama naudoti mūsų forumą
Viso gero draugai! Pažvelkime į koristuvachiv registraciją PHP. Dėl burbuolės prasmingai pagalvokime dėl koristuvachiv registracijos:
Slaptažodis yra užšifruotas algoritmo pagalba MD5
Slaptažodis "vienatvė"
Prisijungimo darbo tikrinimas
Koristuvach lapo aktyvinimas.
Duomenų įrašymas ir išsaugojimas iš DBVS MySQL
Norėdami parašyti šį scenarijų, turime suprasti, kas yra koristuvach registracija. Koristuvach registracija – tikrojo koristuvacho duomenų gavimas, duomenų apdorojimas ir išsaugojimas.
Paaiškinkime paprastais žodžiais, tada registracija tereikia įrašyti ir rinkti asmens duomenis, kuriuos galime įgalioti savo paskyroje – prisijungimo vardą ir slaptažodį.
Įgaliojimas – tai dainos suteikimas asmeniui ar asmenų grupei teisių pamatyti dainas, taip pat šių teisių peržiūros procesas valandą, pabandyti jas pamatyti. Iš pažiūros paprasčiau, turėdami papildomą leidimą galime atskirti prieigą prie daugiau mūsų svetainės turinio.
Pažvelkime į katalogų struktūrą scenarijų, skirtų mūsų registracijai su įgaliojimu įgyvendinti. Turime padalinti scenarijus loginiuose sandėliuose. Registracijos ir autorizacijos moduliai buvo patalpinti okremy kataloge. Taip pat katalogų aplinkoje galime prisijungti ir prie duomenų bazės MySQL, failas su Koristuvach funkcijomis, stiliaus failas css ir mūsų šablonas HTML. Ši struktūra leidžia greitai naršyti scenarijus. Praneškite man, kad turite puikią svetainę su daugybe modulių ir pan. O jei nėra tvarkos, tada bus patogiau žinoti tokioje netvarkoje.
Taigi, kaip išsaugoti visus duomenis DBVS MySQL, tada sukurkime nedidelę lentelę, kad surinktume duomenis apie registraciją.
Burbuolei būtina sukurti lentelę duomenų bazėje. Stalas vadinamas bez_reg de bez- tse lentelės priešdėlis ir reg pavadinkite lenteles.
Lentelės struktūra: bez_reg
-- -- Lentelės struktūra "bez_reg" -- KURTI LENTELĘ, JEI NĖRA "bez_reg" ("id" int(11) NOT 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) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
Dabar sukurkime pagrindinius likusio darbo scenarijus.
INDEX.PHP FAILAS
CONFIG.PHP FAILAS
!defined("BEZ_KEY"))
{
header("HTTP/1.1 404 Not Found");
exit(file_get_contents("./404.html"));
}
//Адрес базы данных
define("BEZ_DBSERVER","localhost");
//Логин БД
define("BEZ_DBUSER","");
//Пароль БД
define("BEZ_DBPASSWORD","");
//БД
define("BEZ_DATABASE","");
//Префикс БД
define("BEZ_DBPREFIX","bez_");
//Errors
define("BEZ_ERROR_CONNECT","Немогу соеденится с БД");
//Errors
define("BEZ_NO_DB_SELECT","Данная БД отсутствует на сервере");
//Адрес хоста сайта
define("BEZ_HOST","http://". $_SERVER["HTTP_HOST"] ..ru>");
?>