HeyTuts

pokud jde o vytváření webových stránek pro skutečný svět, je zásadní mít jednoduchý registrační formulář pro. Internet je prakticky postaven na členských webech. Takže jako součást mého php člen systému tutorial série, vytvoříme jednoduchý registrační formulář v php.

docela rychlé a snadné psaní od nuly, tento jednoduchý registrační formulář umožní každému uživateli zaregistrovat se pouze pomocí uživatelského jména, e-mailu a hesla, ale pokud chcete, můžete snadno přidat e-mail.

pro velmi jednoduchý přehled zdrojového kódu pro naši registrační stránku php je toto:

<?php // connect to the database // check for a user being logged in // process the registration form data ?> <html> display a header display the error message (if there is one) display the registration form </html>

jak vytvořit jednoduchý registrační formulář v php

  1. vytvořte databázi pro registrační formulář
  2. Vytvořte jednoduchý registrační formulář v HTML/CSS
  3. Připojte se k databázi MySQL pomocí php
  4. zpracujte vstup registračního formuláře
  5. přidejte do databáze nové uživatelské účty

Krok 1: Vytvořte databázi pro registrační formulář

často je prvním krokem registrace v php vytvoření webové stránky je vytvoření databáze. A jistě, budete pravděpodobně muset provést změny v databázi později. Ale nastavení databáze první, vám dá skvělý výchozí bod

vytvoříme jednoduchou databázi pro uložení všech informací o účtu uživatele, včetně jejich uživatelského jména a hesla. Pokračujte a přihlaste se k ovládacímu panelu phpMyAdmin na serveru. (pokud jste v phpMyAdmin nováčkem, podívejte se na můj úvod do článku phpMyAdmin)

databázová pole pro náš členský systém php

každá databáze potřebuje jméno, a protože rád udržuji život jednoduchý, říkejme naší databázi „uživatelé“.

poznámka: předpokládám, že již máte alespoň základní znalosti o tom, jak používat phpMyAdmin a jak fungují databáze MySQL. Pokud ne, pak si můžete přečíst základy phpMyAdmin nebo MySQL databázové operace přímo zde na HeyTuts.com. (tyto odkazy se otevřou na nových kartách)

vzhledem k tomu, že vytváříme jednoduchý registrační formulář, budeme v naší databázi potřebovat pouze 7 polí. Tímto způsobem získáme dostatek základních funkcí hned. Ale stále můžete přidat další funkce, jako je formulář pro obnovení hesla.

  1. id-to bude jedinečný identifikátor pro každého uživatele. Musíme se ujistit, že pole id je celé číslo a nastaveno na automatický přírůstek pomocí primárního klíče. To je nutné!!! Při postupu do složitějších členských systémů pomocí id účtu uživatele je velmi jednoduché propojit databázové záznamy dohromady.
  2. uživatelské jméno-to by mělo být samo vysvětlující. Nastavil jsem svůj na 50 znakový varchar. Velmi zřídka bude uživatel chtít uživatelské jméno delší než 10-15 znaků, takže 50 by se o to měl postarat. Ale to vám také dá možnost nastavit požadovanou délku uživatelského jména v kódu php.
  3. e – mail-e-mailová adresa uživatele. Nastavit to 100 znak varchar.
  4. heslo-pro hesla našich uživatelů použijeme základní šifrování. Takže varchar 50 znaků bude dělat pěkně. Později uvidíte, jak používáme funkci md5 () k vytvoření základního hash hesla pro některé jednoduché zabezpečení.
  5. date_created-uloží se hodnota času (), kdy uživatel vytvořil svůj účet.
  6. last_login-můžeme sledovat, kdy se uživatel naposledy přihlásil, aktualizací tohoto záznamu zde. Opět bude z funkce time ().
  7. stav-sledujte stav aktivace účtu. Můžeme zkontrolovat tuto hodnotu, abychom zjistili, zda uživatel aktivoval svůj účet nebo ne, a na základě toho je nechat přihlásit nebo jim dát oznámení o aktivaci svého účtu.

Krok 2: Vytvořte jednoduchý registrační formulář v HTML / CSS

s nastavením databáze můžeme vytvořit skutečný registrační formulář, který uživatel použije k vytvoření svého účtu. Stejně jako téměř všechny webové formuláře, uděláme to s HTML a CSS.

Vytvořte registr.php soubor na vašem webovém serveru

budu volat můj registrační formulář stránky registr.php, tak jděte do toho a vytvořte tento soubor na vašem webovém serveru. Doporučuji vytvořit celý tento členský systém na webovém serveru localhost pomocí XAMPP (externí odkaz).

Vytvořte základní navigační hlavičku

záhlaví pro tento tutoriál systému členů php bude také jednoduché. S několika odkazy jen pro některé super základní navigaci. Níže je základní nastavení stránky pro náš registr.php soubor.

<html> <head> <title>php member system | registration form</title> </head> <body> <h1>member system tutorial - register</h1> <a href="./index.php">Home</a> | <a href="./register.php">Register</a> | <a href="./login.php">Login</a> <hr /> <!-- error message code here --> <!-- registration form html code here --> </body></html>

Vytvořte skutečný registrační formulář

Nyní můžeme vytvořit formulář, který uživatel uvidí a bude s ním komunikovat. Pokud si vzpomenete na naše nastavení databáze, máme pouze 3 pole, která má uživatel možnost zadat: uživatelské jméno, heslo a e-mailovou adresu. Nezapomeňte přidat nějaký text k zobrazení štítků, pro které jsou požadována pole.

z dobré praxe bych rád přidal další pole pro heslo, aby uživatel potvrdil své heslo. A nezapomeňte uživatelům sdělit požadovanou sílu hesla.

nesnáším, když webové stránky vyžadují určité požadavky na heslo, ale neříkejte vám tyto požadavky! Idiotský.

Chcete-li získat bezpečné heslo pro uživatelský účet, budeme vyžadovat alespoň 5 znaků. S alespoň jedním zvláštním znakem jednoho z nich: !#$.,:;(). To zvyklý dát použití nejbezpečnější heslo, ale to vám dá představu o tom, jak vynutit silnější hesla do svého později.

<form action="./register.php" class="form" method="POST"><h1>create a new account</h1><div class=""><?php// check to see if the user successfully created an accountif (isset($success) && $success == true){echo '<p color="green">Yay!! Your account has been created. <a href="./login.php">Click here</a> to login!<p>';}// check to see if the error message is set, if so display itelse if (isset($error_msg))echo '<p color="red">'.$error_msg.'</p>';?></div><div class=""><input type="text" name="username" value="" placeholder="enter a username" autocomplete="off" required /></div><div class=""><input type="text" name="email" value="" placeholder="provide an email" autocomplete="off" required /></div><div class=""><input type="password" name="passwd" value="" placeholder="enter a password" autocomplete="off" required /></div><div class=""><p>password must be at least 5 characters and<br /> have a special character, e.g. !#$.,:;()</font></p></div><div class=""><input type="password" name="confirm_password" value="" placeholder="confirm your password" autocomplete="off" required /></div><div class=""><input class="" type="submit" name="registerBtn" value="create account" /></div><p class="center"><br />Already have an account? <a href="<?php echo SITE_ADDR ?>/login">Login here</a></p></form>

pokud si všimnete, vkládám náš registrační formulář do jednoduché tabulky, abych vše pěkně sladil pro uživatele. Důležité je zde poznamenat akci formuláře (aka POST), názvy textových polí a název tlačítka Odeslat.

php členský systém - 2 php registrační formulář registrace uživatele formulář

všechny tyto názvy polí jsou v back-end skriptu zásadní pro načtení dat poté, co uživatel odešle formulář. Všimněte si také metody formuláře, příspěvek, který skryje data formuláře před uživatelem místo toho, aby je odeslal na adresu url, jako je GET will.

zobrazí chybovou zprávu, v případě potřeby

na stránce registrace, vy a váš uživatel bude užitečné skutečně zobrazit chybovou zprávu. Když je potřeba. Dám to pod navigaci a nad registračním formulářem. Tato zpráva dá uživateli představu o tom, co udělali špatně a je třeba opravit, než si mohou vytvořit svůj účet.

v podstatě to, co udělám, je vytvořit dvě proměnné, jednu s názvem $success a $error_msg. Provedeme jednoduchou kontrolu těchto dvou nastavených proměnných. Na základě toho, zda jsou nastaveny (aka vytvořené a přiřazené hodnoty), zobrazíme příslušnou chybovou zprávu.

<?php // check to see if the user successfully created an account if (isset($success) && $success == true){ echo '<font color="green">Yay!! Your account has been created. <a href="./login.php">Click here</a> to login!<font>'; } // check to see if the error message is set, if so display it else if (isset($error_msg)) echo '<font color="red">'.$error_msg.'</font>'; else echo ''; // do nothing?>

myšlenka je, že pokud dojde k chybě při zpracování dat, můžeme nastavit chybovou zprávu v proměnné $error_msg a poté se uživateli zobrazí a budeme zpracovávat informace. Pokud uživatel úspěšně vytvoří svůj účet, nastavíme $success na true a zobrazí zprávu o úspěchu zeleně (protože zelená je vždy dobrá,mám pravdu? ?).

Krok 3: Připojte se k databázi MySQL pomocí php

nyní se můžeme dostat k některým z back-end php kódu. Než budeme moci provádět jakékoli databázové operace MySQL, musíte se připojit k databázi. Většina webových stránek se připojuje k databázi v samostatné konfiguraci nebo skriptu připojení. Takže uděláme to samé.

vytvořte nový php skript s názvem connect.php a uložte jej do stejného adresáře jako registr.php soubor.

<?php $conn = mysqli_connect("localhost", "root", "password", "code_projects");?>

Krok 4: zpracujte registrační formulář vstup

nyní dolů na maso a brambory tohoto jednoduchého registračního formuláře. Php kód pro zpracování formuláře po odeslání.

protože jsme již vytvořili náš skript pro připojení k databázi, můžeme použít funkci require_once() k načtení skriptu připojení.

<?php // include our connect script require_once("connect.php"); // check to see if there is a user already logged in, if so redirect them session_start(); if (isset($_SESSION) && isset($_SESSION)) header("Location: ./index.php"); // redirect the user to the home page?>

poté pomocí relací php budeme sledovat, zda jsou uživatelé přihlášeni nebo ne. Prozatím jen zkontrolujeme, zda jsou nastaveny proměnné relace. Dostaneme se do toho, jak nastavit proměnné relace v tutoriálu přihlašovacího formuláře. Pokud je uživatel přihlášen, přesměrujeme je na domovskou stránku.

získejte všechna data registračního formuláře

jakmile jsme připraveni získat všechna data formuláře, nejprve zkontrolujeme, zda bylo kliknuto na tlačítko Odeslat (aka formulář byl odeslán). Pokud tomu tak bylo, ukládáme všechna data formuláře do proměnných. Pokud formulář nebyl odeslán, neděláme nic kromě zobrazení formuláře uživateli.

vzhledem k tomu, že používáme typ formuláře příspěvku, musíme získat data příspěvku pomocí našeho php kódu. Všechna „zveřejněná“ data z formuláře budou v proměnné $_POST array. Potom můžete použít název prvku formuláře jako klíče pole. Což nám umožňuje získat konkrétní údaje, které hledáte, jako je tento:

if (isset($_POST)){ // get all of the form data $username = $_POST; $email = $_POST; $passwd = $_POST; $passwd_again = $_POST; // next code block }

Proveďte základní kontroly údajů formuláře

dále zkontrolujeme, zda uživatel vyplnil registrační formulář. Kontrola e-mailové adresy, uživatelského jména a hesel. Pokud se ujistíme, že každá proměnná není prázdný řetězec, pak to znamená, že tam je nějaký text, že?

pak zkontrolujeme, zda heslo a potvrzení hesla jsou přesně stejný text. Čepice a tak. Použitím tří stejných znamének v řadě (to je===) v našem příkazu if, řetězce jsou shodná písmena.

v podstatě f porovnáme „ahoj“ s „Ahoj“ pomocí dvou stejných znaků, pak získáte skutečný výsledek. Je to proto, že náš kód říká „ano, ahoj a ahoj jsou stejné slovo“. Ale pokud je porovnáme pomocí tří stejných znaků, náš kód je jako “ ne! Zastavte se. Ta slova se neshodují. Velký falešný!“Dává smysl?

// verify all the required form data was enteredif ($username != "" && $passwd != "" && $passwd_again != ""){ // make sure the two passwords match if ($passwd === $passwd_again){ // make sure the password meets the min strength requirements if ( strlen($passwd) >= 5 && strpbrk($passwd, "!#$.,:;()") != false ){ // next code block } else $error_msg = 'Your password is not strong enough. Please use another.'; } else $error_msg = 'Your passwords did not match.';}else $error_msg = 'Please fill out all required fields.';

dále se můžeme ujistit, že hesla splňují naše požadavky na sílu. Naše ohhh tak působivá kritéria pro bezpečné heslo. Nejméně 5 znaků dlouhé a používající alespoň jeden speciální znak.

pomocí strlen () se ujistíme, že je dostatečně dlouhý, aby splnil naše minimum 5 znaků. Snadný. Poté pomocí funkce strpbrk () můžeme zkontrolovat, zda je přítomen některý ze speciálních znaků v seznamu. Tato funkce se vrátí false, pokud není přítomen žádný ze speciálních znaků. Vrátí řetězec, pokud jsou přítomny.

můžete si přečíst více o funkci na php.net reference. V podstatě je to jen super rychlý a snadný způsob, jak zkontrolovat seznam speciálních znaků existujících v řetězci. Protože jinak než stávající se o ně moc nestaráme.

Krok 5: Přidání nových uživatelských účtů do databáze

Nyní, když víme, že všechny naše údaje formuláře jsou dobré a připravené k použití, můžeme začít provádět některé kontroly databáze. Nejprve zkontrolujeme, zda je uživatelské jméno již v databázi. Pokud jsou vráceny nulové záznamy, uživatelské jméno není v databázi. Pokud je vráceno něco jiného, je přijato uživatelské jméno.

dále musíme vytvořit některé další proměnné pro uložení některých dalších náhodných dat, které potřebujeme k uložení do databázového záznamu pro uživatelský účet, který se chystáme vytvořit. Pod tímto blokem kódu je vysvětlení každé z proměnných.

zřeknutí se odpovědnosti: chci zdůraznit, že pro účely tohoto tutoriálu nepoužíváme velmi složité šifrování hesel. Prostě to dělám kvůli tomu, že heslo není uloženo v prostém textu (nikdy to nedělejte, je to jen špatné). Pokud se chcete dozvědět, jak udělat něco podstatnějšího a bezpečnějšího, podívejte se na náš návod pro zabezpečení heslem. Jdu do podrobností o různých metodách vytváření a ukládání bezpečnějších hesel pomocí php.

// query the database to see if the username is taken$query = mysqli_query($conn, "SELECT * FROM users WHERE username='{$username}'");if (mysqli_num_rows($query) == 0){ // create and format some variables for the database $id = ''; $passwd = md5($passwd); $date_created = time(); $last_login = 0; $status = 1; // next code block}else $error_msg = 'The username <i>'.$username.'</i> is already taken. Please use another.';
  • $id – potřebujeme držák místa pro automatické zvyšování id, které databáze přiřadí.
  • $passwd-přidáváme některé základní šifrování do hesla uživatele pomocí md5 () hash
  • $date_created-pomocí funkce time () můžeme získat časové razítko přesně v okamžiku, kdy uživatel vytvoří svůj účet. Můžeme to použít později k zobrazení pomocí date ()
  • $last_login-později to použijeme ke sledování, kdy se uživatel přihlásí. Nastavíme ji na nulu, protože se ještě nepřihlásili.
  • $ status-pomocí tohoto pole můžeme sledovat stav účtů, jako je aktivace e-mailem nebo jeho deaktivace pro účely administrátora, nebo opravdu to, co kdy plave na vaší lodi. Ve výchozím nastavení nastavím 1 (jeden), což znamená aktivní účet a může se okamžitě přihlásit.

jakmile přidáme funkci aktivace e-mailu do našeho členského systému, stav účtu se skutečně objeví.

Nyní můžeme konečně vytvořit databázový záznam pro uživatelský účet. Pomocí dotazu vložit, můžeme velmi pečlivě vypsat všechny informace o záznamu v databázi.

pokud potřebujete pomoc s pochopením základů fungování dotazů. Nebo dokonce obecné databázové operace, podívejte se na můj další tutoriál o databázových operacích MySQLi.

po vložení záznamu se jako dobrý postup ujistím, že záznam byl skutečně přidán (protože nikdy nevíte, mohlo dojít k nějaké chybě.) Protože předtím, než jsme se ujistili, že uživatelské jméno neexistuje, nyní, pokud zkontrolujeme, zda existuje, a najdeme s ním přiřazený záznam, víme, že náš nový účet byl vytvořen v databázi. Nakonec jsme nastavili naši proměnnou $success na hodnotu true, protože uživatel dokončil registraci a byl vytvořen jejich účet.

// insert the user into the databasemysqli_query($conn, "INSERT INTO users VALUES ( '{$id}', '{$username}', '{$email}', '{$passwd}', '{$date_created}', '{$last_login}', '{$status}')");// verify the user's account was created$query = mysqli_query($conn, "SELECT * FROM users WHERE username='{$username}'");if (mysqli_num_rows($query) == 1){ /* IF WE ARE HERE THEN THE ACCOUNT WAS CREATED! YAY! */ /* WE WILL SEND EMAIL ACTIVATION CODE HERE LATER */ $success = true;}else $error_msg = 'An error occurred and your account was not created.';

poslední úpravy pro náš registrační formulář

nyní s celým naším registrem.php kód napsaný, můžeme jej zobrazit z webového prohlížeče. Můžete si to dokonce vyzkoušet a vytvořit si vlastní účet na své nové registrační stránce!

s naším jednoduchým registračním formulářem vytvořeným, další částí členského systému php je vytvoření přihlašovacího formuláře. protože jaký má smysl mít registrační formulář k vytvoření účtu, pokud se uživatelé nemohou přihlásit ke svému účtu?

Jako Načítání…

Leave a Reply

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.