Už nějakou dobu jsem se snažil vytvořit php program pro přihlášení, přihlášení a odhlášení úplně sám. Nakonec si myslím, že se mi to povedlo. Protože jsem v kódování php nováček, byl bych rád, kdybyste se na to mohli podívat a dát mi kritiku. Například, kde se mohu zlepšit, jaké jsou bezpečnostní hrozby, které může můj kód způsobit nebo co: P/>.

Toto je vše, co musíte udělat:
1) Stáhněte si všech 7 souborů php a html. (Když jsem použil svou logiku, vyšlo mi 7 souborů!! :(/> Všechny jsou malé malé kódy, můžete to udělat do jednoho programu lol)
2) Nejprve spusťte createdatabase.php a vytvořte databázi.
3) Použijte wamp nebo xampp nebo cokoli jiného ke kompilaci php a otevření homepage.html.
4) Ano, to je ono, musíte se před přihlášením zaregistrovat.
5) Možná budete muset změnit podrobnosti mysql_connect v login.php a signup.php. K připojení používám výchozí localhost, root (bez hesla).

Nebo pokud nechcete stahovat, podívejte se na tento kód níže:

Vytvořte databázi.php

Toto je formulář, který obsahuje přihlašovací a registrační formuláře.
WEBOVÉ STRÁNKY UBER COOL

WEBOVÉ STRÁNKY UBER COOL

Přihlásit se

uživatelské jméno:
Heslo:
Potvrďte heslo:
 

Přihlásit se

uživatelské jméno:
Heslo:
 


"; else echo "Neplatné uživatelské jméno
"; echo " Přejít zpět na přihlašovací stránku "; ) /* 1) Neměli bychom povolit podobná uživatelská jména. (Y) 2) zajistit, aby návrat na přihlašovací stránku fungoval. (Y) 3) Neměli bychom povolit nulová uživatelská jména a hesla.( Y) */ ?>

Přejít zpět na přihlašovací stránku "; ) else ( $_SESSION["access"]=1; $_SESSION["user"]=$_POST; header("Location: website.php"); ) mysql_close($con); / * 1) V současné době se vytiskne pouze zpráva, když zadáte správné heslo a další, když zadáte nesprávné heslo. V KAŽDOM PŘÍPADĚ, pokud je to správné heslo. Pokud je odkaz na tuto stránku napsán přímo bez přihlášení, budete přesměrován na přihlašovací stránku. ) Zadejte heslo serveru. 3) Nová stránka, na kterou se uživatel dostane po zadání správného hesla, je uživatelský profil. 4) Na stránce profilu by měla být možnost smazání profilu Také můžete nahrát obrázek, psát o mně a podobně.*/ ?>

Access.php

Website.php (Webová stránka, na kterou se přihlásí uživatel, který se přihlásí. Obsahuje také tlačítko pro odhlášení.

WEBOVÉ STRÁNKY UBER COOL

Vítejte na webu uber-cool-web



Díky moc všem, kdo pozdraví v tomto vlákně:D/>

Webhosting prošel v posledních letech dramatickými změnami. Webhostingové služby změnily způsob, jakým webové stránky fungují. Existuje několik druhů služeb, ale dnes budeme hovořit o možnostech, které jsou k dispozici pro prodejce hostingu. Jsou to Linux Reseller Hosting a Windows Reseller Hosting. Než pochopíme základní rozdíly mezi těmito dvěma, pojďme zjistit, co je hosting pro prodejce.

Reseller hosting

Jednoduše řečeno, reseller hosting je forma webhostingu, kde vlastník účtu může využít svůj vyhrazený prostor na pevném disku a přidělenou šířku pásma za účelem dalšího prodeje na webové stránky třetích stran. Někdy si prodejce může pronajmout vyhrazený server od hostitelské společnosti (Linux nebo Windows) a dále jej pronajmout třetím stranám.

Většina uživatelů webových stránek používá Linux nebo Windows. To souvisí s dobou provozuschopnosti. Obě platformy zajišťují, že váš web bude v 99 % případů.

1. Přizpůsobení

Jeden z hlavních rozdílů mezi Linux Reseller Hostingplan a plánem poskytovaným Windows je o přizpůsobení. Zatímco s oběma přehrávači můžete experimentovat několika způsoby, Linux je mnohem přizpůsobivější než Windows. Ten má více funkcí než jeho protějšek, a proto mnoho vývojářů a správců považuje Linux za velmi vstřícný k zákazníkům.

2. Aplikace

Různé hostingové služby prodejců mají různé aplikace. Linux i Windows mají svou vlastní řadu aplikací, ale ta druhá má výhodu, pokud jde o počet a všestrannost. To souvisí s open source povahou Linuxu. Každý vývojář může nahrát svou aplikaci na platformu Linux, což z ní dělá atraktivního poskytovatele hostingu pro miliony vlastníků webových stránek.

Upozorňujeme však, že pokud používáte Linux pro webhosting, ale zároveň používáte OS Windows, nemusí některé aplikace jednoduše fungovat.

3. Stabilita

Zatímco obě platformy jsou stabilní, Linux Reseller Hosting je z těchto dvou stabilnější. Jedná se o platformu s otevřeným zdrojovým kódem, která může pracovat v několika prostředích. Tuto platformu lze každou chvíli upravovat a rozvíjet.

4.NET kompatibilita

Není to tak, že by Linux byl ve všech možných ohledech lepší než Windows. Pokud jde o kompatibilitu s .NET, Windows krade pozornost. Webové aplikace lze snadno vyvíjet na hostitelské platformě Windows.

5.Cenové výhody

Obě hostingové platformy jsou cenově dostupné. Ale pokud cítíte finanční tíseň, měli byste se rozhodnout pro Linux. Je zdarma, a proto jej volí tolik vývojářů a systémových administrátorů po celém světě.

6. Snadné nastavení

Windows se nastavuje snadněji než jeho protějšek. Vše, co bylo řečeno a uděláno, systém Windows si po celá ta léta stále zachovává svou uživatelskou přívětivost.

7 Zabezpečení

Rozhodněte se pro hosting prodejce Linuxu, protože je bezpečnější než Windows. To platí zejména pro lidi provozující své e-shopy.

Závěr

Výběr mezi těmito dvěmabude záviset na vašem požadavku a nákladové flexibilitě. Obě hostingové služby mají jedinečné výhody. Zatímco Windows lze snadno nastavit, Linux je nákladově efektivní, bezpečný a všestrannější.



V březnu tohoto roku jsem měl velmi špatnou zkušenost s mediální společností, která mi odmítla zaplatit a odpovědět na mé e-maily. Stále mi dluží tisíce dolarů a pocit vzteku, který mám, prostupuje každý den. Ukázalo se však, že nejsem sám a stovky dalších majitelů webových stránek jsou na stejné lodi. Je to něco jako kurz pro digitální reklamu.

Upřímně řečeno, mám tento blog už dlouho a v minulosti jsem poskakoval po různých reklamních sítích. Po odebrání reklamních jednotek z této společnosti, která mě ztuhla, jsem byl zpět na začátku. Měl bych také poznamenat, že Produkt Google AdSense se mi nikdy moc nelíbil, jen proto, že mi připadá jako „spodní část sudu“ grafických reklam. Ne z hlediska kvality, ale z hlediska příjmů.

Z toho, co jsem pochopil, chcete na svých stránkách inzerovat Google, ale chcete, aby to dělaly i jiné velké společnosti a agentury. Tímto způsobem maximalizujete poptávku a příjmy.

Po mé negativní zkušenosti mi byla doporučena společnost Newor Media. A pokud "jsem upřímný, nebyl jsem" zpočátku prodán hlavně proto, že jsem na nich nenašel mnoho informací. Našel jsem pár slušných recenzí na jiných stránkách a poté, co jsem tam s někým mluvil, rozhodl jsem se to zkusit Řeknu, že jsou SUPER nápomocní. Každá síť, se kterou jsem kdy pracoval, byla se mnou dost krátká, pokud jde o odpovědi a rozjezd. Odpověděli na každou otázku a byl to opravdu povzbudivý proces.

"Reklamy jsem provozoval několik měsíců a výdělky jsou přibližně v souladu s tím, co jsem vydělával s druhou společností. Takže nemohu" říct, jestli jsou o tolik lepší než ostatní, ale kde vynikají je bod, který chci opravdu zdůraznit. Komunikace s nimi se nepodobá žádné jiné síti, se kterou jsem kdy pracoval. Zde je případ, kdy se skutečně liší:

První platbu mi podali včas s Paypalem. Ale protože nejsem v USA (a to se stává každému, myslím), dostal jsem z Paypalu poplatek. Poslal jsem o tom e-mail svému zástupci a zeptal se, zda existuje způsob, jak se tomu v budoucnu vyhnout.

Řekli, že se nemohli vyhnout poplatku, ale že by VRÁTIL VŠECHNY POPLATKY.... VČETNĚ POSLEDNÍ PLATBY! Nejen to, ale úhrada byla přijata do 10 MINUT! Kdy jste někdy mohli podat takovou žádost, aniž byste ji museli přeposílat „finančnímu oddělení“, aby na ni nikdy nebylo odpovězeno.

Pointa je, že miluji tuto společnost. Možná bych mohl vydělat víc někde jinde, "nejsem si jistý, ale mají se mnou na celý život vydavatele." Nejsem velký web a nevytvářím tuny příjmů, ale cítím se jako Velmi důležitý klient, když s nimi mluvím. Je to skutečně svěží vzduch v odvětví, které je zralé na podvody a nereagování.

Mikropočítače, které byly vytvořeny nadací Raspberry Pi Foundation v roce 2012, byly velmi úspěšné v podnícení kreativity u malých dětí a tato britská společnost začala nabízet startovací programy pro učení se kódování, jako je pi-top an Kano. Nyní existuje nový startup, který využívá elektroniku Pi a zařízení je známé jako Pip, ruční konzole, která nabízí dotykovou obrazovku, více portů, ovládací tlačítka a reproduktory. Myšlenkou tohoto zařízení je zapojit mladší jedince pomocí herního zařízení, které je retro, ale zároveň nabídne zkušenost s učením kódu prostřednictvím webové platformy.

Úžasná softwarová platforma nabízená s Pip nabídne šanci začít kódovat v Pythonu, HTML/CSS, JavaScriptu, Lua a PHP. Zařízení nabízí podrobné návody, jak děti začít s kódováním, a umožňuje jim dokonce nechat blikat LED diody. I když je Pip stále prototypem, bude jistě obrovským hitem v oboru a zapojí děti, které se zajímají o kódování, a poskytne jim vzdělání a zdroje potřebné k tomu, aby začaly s kódováním v mladém věku.

Budoucnost kódování

Kódování má velkou budoucnost, a i když děti nebudou používat kódování jako kariéru, mohou těžit z toho, že se naučí kódovat pomocí tohoto nového zařízení, které je snazší než kdy předtím. S Pipem se i ti nejmladší nadšenci do kódování naučí různé jazyky a budou na dobré cestě k vytváření vlastních kódů, vlastních her, vlastních aplikací a dalšího. Je to budoucnost elektronické éry a Pip umožňuje zvládnout základní stavební kameny kódování.
Informatika se stala důležitou součástí vzdělávání a se zařízeními, jako je nový Pip, mohou děti začít zdokonalovat své vzdělání doma a přitom se bavit. Kódování daleko přesahuje pouhé vytváření webových stránek nebo softwaru. Může být použit ke zvýšení bezpečnosti ve městě, k pomoci s výzkumem v lékařské oblasti a mnohem více. Protože nyní žijeme ve světě, kterému dominuje software, je kódování budoucností a pro všechny děti je důležité, aby alespoň základní rozuměly tomu, jak to funguje, i když tyto dovednosti nikdy nevyužijí jako svou kariéru. Z hlediska budoucnosti bude kódování kritickou součástí každodenního života. Bude to jazyk světa a neznalost počítačů nebo jejich fungování může představovat výzvy, které je stejně těžké překonat jako negramotnost.
Kódování také přinese velké změny v herním světě, zejména pokud jde o online hraní, včetně přístupu do online kasin. Chcete-li vidět, jak kódování již zlepšilo herní svět, podívejte se na několik nejlépe hodnocených kasinových stránek, které spoléhají na kódování. Krátce si to prohlédněte a uvidíte, jak může kódování prezentovat realistická prostředí online.

Jak Pip zapojuje děti

Pokud jde o možnost naučit se kódování, děti mají mnoho možností. Existuje řada zařízení a hardwarových věcí, které lze zakoupit, ale Pip má k jejich zařízení jiný přístup. Přenosnost zařízení a dotyková obrazovka nabízejí výhodu jiným kódovacím zařízením, která jsou na trhu. Pip bude plně kompatibilní s elektronickými součástkami kromě systému Raspberry Pi HAT. Zařízení používá standardní jazyky a má základní nástroje a je perfektním zařízením pro každého začínajícího kodéra. Cílem je odstranit veškeré bariéry mezi nápadem a tvorbou a zpřístupnit nástroje okamžitě k použití. Jednou z dalších velkých výhod Pipu je, že používá SD kartu, takže jej lze použít i jako stolní počítač, když je připojen k monitoru a myši.
Zařízení Pip by pomohlo dětem a zainteresovaným začínajícím kodérům s nadšením do učení a procvičování kódování. Tím, že nabízí kombinaci dokončování úkolů a kutilství při řešení problémů, zařízení jistě zaujme mladší generaci. Zařízení pak těmto mladým kodérům umožňuje přejít na pokročilejší úrovně kódování v různých jazycích, jako je JavaScript a HTML/CSS. Vzhledem k tomu, že zařízení replikuje herní konzoli, okamžitě upoutá pozornost dětí a přiměje je k tomu, aby se v mladém věku učily o programování. Dodává se také s některými předinstalovanými hrami pro udržení pozornosti, jako je Pac-Man a Minecraft.

Inovace, které přijdou

Budoucí inovace do značné míry závisí na aktuální schopnosti dítěte kódovat a na jeho celkovém chápání procesu. Když se děti naučí kódovat v raném věku pomocí takových zařízení, jako je nový Pip, získají dovednosti a znalosti k vytváření úžasných věcí v budoucnu. Mohlo by to být zavedení nových her nebo aplikací nebo dokonce nápadů, které mohou ožít a pomoci s lékařským výzkumem a léčbou. Možnosti jsou nekonečné. Vzhledem k tomu, že naše budoucnost bude řízena softwarem a počítači, začít mladý je nejlepší způsob, jak jít, a proto je nový Pip zaměřen na mladé publikum. Nabídkou konzolového zařízení, které může hrát hry a zároveň učit kódovací dovednosti, jsou mladí členové společnosti na dobré cestě stát se v budoucnu tvůrci softwaru, který změní celý náš život. Toto je jen začátek, ale je to něco, co se miliony dětí na celém světě začínají učit a ovládat. S použitím zařízení, jako je Pip, jsou základy kódování pokryty a děti se rychle naučí různé kódovací jazyky, které mohou vést úžasnými cestami, když vstoupí do dospělosti.

V tomto tutoriálu vytvoříme přihlašovací formulář uživatele, který přidá uživatele do databáze a poté odešle potvrzovací e-mail, na který musí uživatel kliknout, než bude jeho účet aktivován.

Potřebuji pomoc?

Tento tutoriál vás provede celým procesem od nuly, ale pokud chcete, můžete použít jeden z mnoha předpřipravených e-mailových registračních formulářů na Envato Market. Zde je několik nejoblíbenějších možností.

1.

Jednoduchý registrační formulář jQuery Plugin shromáždí e-mailovou adresu návštěvníka na vašem webu efektivním způsobem, který upoutá pozornost. Má spoustu volitelných možností přizpůsobení, které můžete nastavit během několika minut.

2. Hype: Registrační formulář SmartR

Hype je registrační formulář SmartR, předkonfigurovaný a přidaný na jakoukoli stránku jediným kliknutím. Využívá sílu vašich uživatelů a jejich sítí k aktivnímu zvyšování počtu registrací a exponenciálnímu růstu vaší uživatelské základny.

3. E-mailový registrační formulář na úvodní stránce beta

Jedná se o velmi jednoduchý, ale stylový formulář pro váš web, do kterého mohou návštěvníci zadat svou e-mailovou adresu (a jméno, pokud si to přejí), a přidat je do seznamu kontaktů. Používá AJAX k odesílání a ověřování e-mailů a bude fungovat i v případě, že má uživatel vypnutý JavaScript.

Instalace je rychlá a bezbolestná. Tento formulář ke svému fungování nevyžaduje databázi, protože vytvoří a uloží vstup do souboru CSV.

Takže jsme „vyčistili naše proměnné, nyní se podívejme, zda uživatel nezapomněl nějaká pole.

If(empty($username))( //do mě vložte kód, prosím ) if(empty($password))( //vložte do mě kód, prosím ) if(empty($email))( //vložte do mě kód, prosím )

Nyní máme tři příkazy if, které kontrolují, zda je každé pole prázdné. Pokud je pole prázdné, přiřadíme nějaké proměnné.

Aby bylo vše čisté, vytvoříme pole, které bude obsahovat stav procesu registrace a také jakýkoli text, který musíme uživateli zobrazit.

Přímo nad tímto kouskem kódu vytvoříme pole a několik proměnných.

$akce = pole(); $action["result"] = null; $text = pole();

Nejprve vytvoříme prázdné pole s názvem akce a poté nastavíme hodnotu pole result. Výsledek bude mít hodnotu úspěchu nebo chyby. Dále vytvoříme další prázdné pole nazvané text. To bude obsahovat jakýkoli text, který chceme uživateli zobrazit během registrace.

Právě teď naše příkazy if, které kontrolují naše proměnné, neprovádějí žádný kód, takže pojďme do toho a vložme nějaký kód do prvního příkazu if.

Vložte tento kód do příkazu username if.

$action["result"] = "chyba"; array_push($text,"Zapomněli jste své uživatelské jméno");

Řekněme, že uživatel odešle formulář bez uživatelského jména. Náš příkaz spustí výše uvedený kód. Nejprve nastaví pole výsledků našeho pole akcí na chybu.

Potom použijeme array_push() k vložení nějakého textu do našeho textového pole. Budeme používat stejný kus kódu pro poslední dva příkazy "if", takže zkopírujte a vložte tento kód do posledních dvou příkazů if. Pravděpodobně budete chtít změnit text tak, aby odpovídal aktuálnímu příkazu if.

Poznámka: Array_push() používáme v případě, že máme při odesílání formuláře více chyb. Pokud jsou provedeny všechny příkazy if, textové pole bude vypadat takto:

Array( => "Zapomněli jste své uživatelské jméno", => "Zapomněli jste heslo", => "Zapomněli jste svůj e-mail")

Nyní musíme zkontrolovat, zda nemáme nějaké chyby, abychom mohli pokračovat v procesu registrace.

Krok 6: Žádné chyby, pojďme zaregistrovat uživatele

Zkontrolujeme, zda je naše výsledná hodnota pole akcí nastavena na chybu.

If($action["result"] != "error")( //žádné chyby, pokračovat v registraci $password = md5($password); ) $action["text"] = $text;

Naše heslo také spouštíme pomocí funkce md5(). Toto převezme heslo a vrátí 32znakový řetězec, který vypadá asi takto: . Je dobrým zvykem nechat heslo před vložením do databáze spustit nějakou hashovací funkcí. To zabrání lidem v zobrazení uživatelských hesel, pokud je vaše databáze napadena hackery.

Rychlá kontrola naší hodnoty akčního výsledku a můžeme pokračovat v registraci. Pokud je naším výsledkem chyba, přeskočíme celý tento kód a odešleme chyby našemu uživateli, aby mohl provést potřebné změny.

Poslední část tohoto kódu vkládáme hodnoty vašeho textového pole do našeho pole akcí.

Krok 7: Přidání uživatele do databáze

Umístěte tento kód do našeho posledního příkazu if.

If Statement checking for errors ... //přidat do databáze $add = mysql_query("INSERT INTO `users` VALUES(NULL,"$username","$password","$email",0)"); if($add)( //uživatel byl přidán do databáze )else( $action["result"] = "chyba"; array_push($text,"Uživatele nelze přidat do databáze. Důvod: " . mysql_error ()); =)

K vložení informací o uživatelích do databáze používáme mysql_query() a INSERT. Dále vytvoříme další příkaz if, který kontroluje, zda byl uživatel přidán do databáze. To provedeme kontrolou, zda je proměnná $add true nebo false.

Pokud je uživatel přidán, můžeme pokračovat v registraci; pokud ne, přiřadíme některé známé proměnné a zastavíme registraci.

Při práci s dotazy MySQL používáme funkci mysql_error(), pokud se jedná o chyby, protože pomáhá s laděním toho, co je s vašimi dotazy špatně. Když je něco špatně, vypíše textové chyby. To je dobré!

Krok 8: Je potřeba potvrzení

Uživatel odeslal formulář, vše se zkontroluje a "nyní žije v databázi. Chceme, aby uživatel mohl používat svůj účet, tak pojďme nastavit potvrzení."

Pokud je přidán check ... //získání nového uživatelského id $userid = mysql_insert_id(); //vytvoří náhodný klíč $key = $username . $email. datum("mY"); $klíč = md5($klíč); //přidat potvrzení řádku $confirm = mysql_query("INSERT INTO `confirm` VALUES(NULL,"$userid","$key","$email")"); if($confirm)( //pošleme e-mail )else( $action["result"] = "error"; array_push($text,"Potvrdit řádek nebyl přidán do databáze. Důvod: " . mysql_error( ));)

Abychom to usnadnili, přiřaďme nové ID uživatele proměnné, abychom ji mohli použít později. Provedeme to pomocí m ysql_insert_id() . Tím nastavíme $userid na jakékoli ID nového uživatele.

Dále vytvoříme náhodný klíč pro tohoto konkrétního uživatele. Vytvoříme proměnnou s názvem key a naplníme ji hodnotou uživatelského jména, emailu a data. Řetězec bude vypadat [e-mail chráněný]. Poté jej pomocí funkce md5() převedeme na náhodný řetězec, který je pro daného uživatele jedinečný.

Opětovným použitím mysql_query() a INSERT vložíme nové ID uživatele, klíč a e-mail uživatele do databáze.

Krok 9: Nastavení e-mailových šablon

Dáme si pauzu od PHP kódování a vytvoříme dva nové soubory. Aby to bylo rychlé a snadné, ve skutečnosti použijeme dvě šablony, které jsem zahrnul do tohoto návodu. Dva soubory, na které se budeme dívat, jsou signup_template.html a signup_template.txt . Swift nám umožňuje přiřadit HTML i TXT verzi e-mailu v případě, že uživatelský e-mailový klient nepodporuje e-maily HTML.

Otevřít signup_template.html Poznámka: HTML si můžete přečíst v e-mailech na carsonified. Tento soubor nebudeme upravovat, jen vysvětlím, co se děje, a pak si s tím můžete pohrát, až bude návod hotový. Nejdůležitější částí tohoto souboru jsou značky, které vypadají jako (USERNAME) a ​​potvrdit.php?email=(EMAIL)&key=(KEY) . Chystáme se napsat funkci, která použije tuto šablonu a nahradí tyto značky proměnnými z našeho formuláře.

Krok 10: Funkce šablony

Otevřete inc/php/functions.php a vložte tento kód dovnitř.

Funkce format_email($info, $format)( //nastavení kořenového adresáře $root = $_SERVER["DOCUMENT_ROOT"]."/dev/tutorials/email_signup"; //uchopte obsah šablony $template = file_get_contents($root." /signup_template.".$format); //nahraďte všechny značky $template = ereg_replace("(USERNAME)", $info["username"], $template); $template = ereg_replace("(EMAIL)", $ info["email"], $template); $template = ereg_replace("(KEY)", $info["key"], $template); $template = ereg_replace("(SITEPATH)","http:// site-path.com", $template); //vrácení html šablony return $template; )

format_email() přebírá dvě proměnné, které budou použity v index.php. Prvním je naše pole informací o formuláři a druhým je formát. Máme proměnnou formátu, takže můžeme toto pole znovu použít pro HTML i TXT verzi šablony.

Nejprve nastavíme kořen. To ukazuje na složku, která je hostitelem šablon.

Dále otevřeme obsah naší šablony a přiřadíme jej k proměnné.

Nyní použijeme ereg_replace() k nahrazení našich značek (USERNAME) v naší šabloně obsahem z našeho formuláře. Je to v podstatě jen super jednoduchý šablonový systém.

Nakonec vrátíme proměnnou šablony, která obsahuje všechny html.

Vysvětlení: Stručně řečeno, format_email() otevře naše soubory šablon, vezme HTML a přiřadí ho naší proměnné. Toto je jen čistší způsob, než přiřadit veškeré HTML v samotné funkci.

Krok 11: Odeslání e-mailu

Chystáme se napsat další funkci, která se bude zabývat Swiftem a odesíláním e-mailů.

Funkce send_email($info)( //formátovat každý e-mail $body = format_email($info,"html"); $body_plain_txt = format_email($info,"txt"); //nastavení maileru $transport = Swift_MailTransport::newInstance (); $mailer = Swift_Mailer::newInstance($transport); $message = Swift_Message::newInstance(); $message ->setSubject("Vítejte na názvu webu"); $message ->setFrom(array(" [e-mail chráněný]" => "Název webu")); $message ->setTo(array($info["email"] => $info["username"])); $message ->setBody($body_plain_txt); $message - >addPart($body, "text/html"); $result = $mailer->send($message); return $result; )

Stejně jako format_email() , send_email() bere naše pole informací jako proměnnou. První části funkce přiřadíme dvě proměnné, $body a $body_plain_text . K přiřazení HTML hodnot naší šablony ke každé proměnné používáme format_email(). Nyní přichází ta dobrá část. Nastavili jsme instanci Swift pomocí Swift_MailTransport:newInstance() a poté jsme nastavili poštovní server pomocí Swift_Mailer::newInstance($transport) ;

Vytvoříme novou instanci zprávy Swift a začneme k této instanci přiřazovat nějaké proměnné. Nastavíme předmět z e-mailu na e-mailovou adresu a poté pomocí setBody() přiřadíme textovou verzi e-mailu k instanci poštovního serveru. Pro přidání HTML verze používáme addPart() . Funkce send() se postará o odeslání emailu a následně vrátíme výsledek. Dobře, máme napsané funkce pro vytváření a odesílání e-mailů, vraťme se na index.php a začněme uzavírat hlavní registraci.

Krok 12: Poslali jsme? Potvrdíme?

Naším posledním bitem měl být příkaz if, který kontroluje, zda byl vytvořen řádek potvrzení.

Odešleme e-mail a zkontrolujeme, zda vše proběhlo v pořádku.

Pokud potvrďte ... //zahrňte třídu swift include_once "inc/php/swift/swift_required.php"; //umístění informací do pole pro odeslání do funkce $info = array("username" => $username, "email" => $email, "key" => $key); //odeslat e-mail if(send_email($info))( //email odeslán $action["result"] = "úspěch"; array_push($text,"Děkujeme za přihlášení. Zkontrolujte prosím svůj e-mail pro potvrzení!") ; )else( $action["result"] = "chyba"; array_push($text,"Nelze odeslat potvrzovací e-mail"); )

Bez třídy Swift nemůžeme odesílat žádné e-maily, takže v našem prvním řádku zařazujeme třídu swift. Potřebujeme odeslat naše informace do obou našich nových funkcí, takže vytvoříme nové pole a přiřadíme naše proměnné it. Vím, že vím, více if, ale musíme zkontrolovat chyby, abychom to uživatelům usnadnili. Vždy musíte předpokládat, že uživatelé udělají každou možnou chybu, kterou si lze představit.

Naši funkci send_email() zabalíme do jiného příkazu if a také předáme pole $info. Pokud je e-mail odeslán, přiřadíme hodnotu úspěchu a poděkujeme uživateli za přihlášení. Pokud se vyskytnou chyby, použijeme známé proměnné. Nyní jsme tedy s registrací téměř hotovi, zbývá vytvořit pouze jednu poslední funkci. I když přiřazujeme všechny tyto chybové/úspěšné proměnné a text, tyto informace jsme uživateli nezobrazili.

Přejděte zpět na functions.php a vložte tento kód.

//vyčištění chybové funkce show_errors($action)( $error = false; if(!empty($action["result"]))( $error = "

    "."\n"; if(is_array($action["text"]))( //vyhledat každou chybu foreach($action["text"] jako $text)( $error .= ""."\ n"; ) )else( //jedna chyba $chyba .= "

    $akce

    ";) $error .="
"."\n"; ) vrátit $chyba; )

To se může zdát matoucí, ale ve skutečnosti to jen dělá náš úspěch/chyby hezky.

Nejprve zkontroluje, zda je pole prázdné, takže kód nespouštíme, když není potřeba.

Dále vytvoří značku ul a použije výsledek jako třídu. To bude buď úspěch, nebo chyba a je to pouze estetické.

Poté zkontrolujeme, zda je textová proměnná pole nebo jednoduše řetězec. Pokud je to řetězec, zabalíme ho do li. Pokud je to pole, procházíme každou položku pole a zabalíme do li.

Nakonec ul uzavřeme a vrátíme celý řetězec.

Pokud se přesuneme zpět na index.php a umístíme tento kód hned po zahrnutí header.php, můžeme tuto sekci uzavřít.

Hlavička obsahuje...

Malé rychlé vysvětlení. Bereme všechny hodnoty našeho pole akcí a předáváme je funkci show_errors(). Pokud existuje nějaký obsah, vrátí pěkný neuspořádaný seznam.

Krok 13: Potvrzení uživatele

Měli bychom mít dobrý přehled o tom, jak skript funguje; takže pro tento další skript vám dám celý kus kódu a pak to s vámi projdu.

Otevřete soubor potvrzení.php a vložte jej mezi hlavičku include a svou funkci show_errors().

//nastavení některých proměnných $akce = pole(); $action["result"] = null; //rychlé/jednoduché ověření if(empty($_GET["e-mail"]) || empty($_GET["key"]))( $action["result"] = "error"; $action["text" ] = "Chybí nám proměnné. Zkontrolujte prosím svůj e-mail."; ) if($action["result"] != "error")( //vyčištění proměnných $email = mysql_real_escape_string($_GET["email"] ); $key = mysql_real_escape_string($_GET["klíč"]); //zkontrolujte, zda je klíč v databázi $check_key = mysql_query("SELECT * FROM `potvrdit` WHERE `email` = "$email" AND `klíč ` = "$key" LIMIT 1") nebo zemře(mysql_error()); if(mysql_num_rows($check_key) != 0)( //získání potvrzovacích informací $confirm_info = mysql_fetch_assoc($check_key); //potvrzení e-mailu a aktualizujte databázi uživatelů $update_users = mysql_query("UPDATE `users` SET `active` = 1 WHERE `id` = "$confirm_info" LIMIT 1") nebo die(mysql_error()); //smažte řádek potvrzení $delete = mysql_query("DELETE FROM `confirm` WHERE `id` = "$confirm_info" LIMIT 1") nebo die(mysql_error()); if($update_users)( $action["result"] = "úspěch"; $akce ["text"] = "Uživatel byl potvrzen. Děkujeme!"; )else( $action["result"] = "chyba"; $action["text"] = "Uživatele nelze aktualizovat Důvod: ".mysql_error();; ) )else( $ action["result"] = "chyba"; $action["text"] = "Klíč a e-mail nejsou v naší databázi."; ) )

Většina z toho by měla vypadat velmi povědomě; takže přeskočím a zkontroluji, zda je klíč v sekci databáze.

Opět používáme mysql_query() k získání všech řádků v databázi, kde se e-mail a klíč shodují s klíči poskytnutými e-mailem uživatelů.

Ke kontrole, zda je počet vrácených řádků větší než 0, používáme mysql_num_rows().

Pokud jsou e-mail a klíč v databázi, získáme všechny informace z databáze pomocí mysql_fetch_assoc() .

Nyní, když uživatel potvrdil svůj účet, musíme aktualizovat databázi a nastavit aktivní řádek na 1.

Znovu použijeme mysql_query(), ale místo INSERT použijeme UPDATE k aktualizaci aktivního řádku na 1, kde je ID uživatele stejné jako naše aktuální ID uživatele.

K vyčištění všeho používáme mysql_query() a DELETE k odstranění potvrzovacího řádku z databáze. To zajišťuje, že se uživatel nemůže vrátit na tuto stránku a znovu potvrdit. Také to udržuje databázi hezkou a čistou.

Závěr

V tomto tutoriálu jsme se zabývali mnoha různými oblastmi. Stáhli jsme a zahrnuli jsme skript třetí strany, který se zabývá odesíláním e-mailů, implementovali jsme jednoduché ověřování formulářů a také jsme vytvořili super jednoduchý systém šablon pro stylování našich e-mailů. Pokud jste novým MySQL jsme se dotkli tří nejběžnějších funkcí v MySQL, takže byste neměli mít problém s dokončením některých pokročilejších výukových programů.

závěrečné poznámky

  • Jako náš skript pro nasazení e-mailu jsem použil Swift Mailer, který si můžete stáhnout zde: http://swiftmailer.org/
  • Použil jsem také styly tlačítek poskytnuté společností Zurb. Určitě se na ně podívejte a dejte jim trochu lásky. http://www.zurb.com/blog_uploads/0000/0485/buttons-02.html

Děkuji za přečtení a určitě mě navštivte

Vytvořme si vlastní registrační stránku pro více stránek namísto standardní wp-signup.php .

V typické instalaci WordPressu se registrační stránka (přihlášení, reset hesla) zobrazí v souboru wp-login.php.

  • /wp-login.php - autorizace
  • /wp-login.php?action=register - registrace
  • /wp-login.php?action=lostpassword - reset hesla

V wp-login.php jsou samostatné podmínky pro multisite. Takže když kliknete na /wp-login.php?action=register na multisite, WordPress se přesměruje na stránku /wp-signup.php. V mnoha tématech stránka nevypadá moc atraktivně, tak si uděláme vlastní.

Hlavní stránka sítě

Ve výchozím nastavení WordPress otevře přihlašovací stránku (wp-signup.php) na hlavní doméně (webu) webu. Je však možné vytvořit samostatnou registrační stránku pro každý web v síti, i když mají různá témata. Budeme uvažovat případ, kdy všechny stránky v síti mají svou vlastní registrační stránku, ale používá se stejné téma a stránky se liší pouze jazykem. Pokud jsou použita různá témata, bude vyžadováno více kódu.

funkce.php?

Ne. Zdá se, že název tohoto souboru je uveden v každém článku WordPress. V našem případě, vezmeme-li v úvahu skutečnost, že funkce registrace je navržena pro několik stránek, má smysl ji přesunout do zásuvných modulů MU, které se načítají při otevření libovolné stránky.

Lyrická odbočka

Stojí za zmínku, že pluginy MU se načítají dříve, než se načtou normální pluginy a než se plně načte jádro WordPressu, takže volání některých funkcí může vést k fatálním chybám v PHP. Toto „brzké“ načítání má své výhody. Řekněme, že uvnitř žádného motivu nemůžete lpět na některých akcích, které fungují ještě před načtením souboru functions.php z motivu. Příkladem toho jsou akce z pluginu Jetpack ve tvaru jetpack_module_loaded_related-posts (related-posts je název modulu), pomocí kterých je možné sledovat aktivitu modulů v Jetpacku. Tuto akci nelze „připojit“ ze souboru motivu, protože akce již byla spuštěna před načtením motivu – pluginy se načítají před motivy. Na obecný obrázek pořadí načítání WordPressu se můžete podívat na stránce Action Reference v kodexu.

Pořadí souborů

Pluginy MU mohou obsahovat libovolný počet souborů a libovolnou strukturu, která vám připadá logická. Řídím se takovou hierarchií:

|-mu-plugins |-|-load.php |-|-|-selena-network |-|-|-|-registrace |-|-|-|-|-plugin.php |-|-|-| -|-... |-|-|-|-jetpack |-|-|-|-|-plugin.php

V souboru load.php jsou připojeny všechny potřebné "pluginy" pro naši síť:

// Načtení Traslates pro všechny doplňky load_muplugin_textdomain("selena_network", "/selena-network/languages/"); // Registrace sítě vyžaduje WPMU_PLUGIN_DIR . "/selena-network/signup/plugin.php"; // Jiné pluginy // vyžadují WPMU_PLUGIN_DIR ...

Složky pluginů jsou uloženy ve složce selena-network, každá má svůj plugin.php , který zahrneme do load.php . To poskytuje flexibilitu a schopnost rychle deaktivovat a povolit určité věci.

Adresa URL registrační stránky

Filtr wp_signup_location se používá k určení adresy stránky registrace. Nachází se v souboru wp-login.php a je zodpovědný za přesměrování na wp-signup.php .

Case "register" : if (is_multisite()) ( wp_redirect(apply_filters("wp_signup_location", network_site_url("wp-signup.php"))); exit;

Přidejme naši funkci do mu-plugins/selena-network/signup/plugin.php , která poskytne adresu registrační stránky na aktuálním webu:

Funkce selena_network_signup_page ($url) ( return home_url () . "/signup/"; ) add_filter ("wp_signup_location", "selena_network_signup_page", 99);

selena_network je předpona, kterou používám v názvech všech funkcí v zásuvných modulech MU na mém webu, aby se předešlo kolizím, měla by být nahrazena vaší vlastní jedinečnou předponou. Přidejte prioritu filtru 99, protože některé pluginy jako bbPress a BuddyPress mohou tuto adresu přepsat vlastní (MU pluginy se načítají před normálními pluginy, viz výše). Všimněte si, že home_url() se používá místo network_site_url() k udržení návštěvníka ve stejné doméně. Jako adresu lze použít jakoukoli adresu URL.

Vytvoření stránky

Nyní vytvoříme stránku s adresou site.com/signup/ přes obvyklé rozhraní a ve složce podřízeného motivu je šablona pro naši novou stránku page-signup.php . Místo slova „registrace“ můžete použít jedinečné ID.

Uvnitř nové šablony musíte zavolat funkci selena_network_signup_main(), která zobrazí přihlašovací formulář.

Za zmínku stojí, že celý proces se šablonami je volitelný a místo toho si můžete vytvořit svůj vlastní krátký kód, který bude také volat funkci selena_network_signup_main().

wp-signup.php a wp-activate.php

Nyní vytvoříme funkci, která zobrazí registrační formulář. Chcete-li to provést, zkopírujte soubory wp-signup.php a wp-activate.php z kořenového adresáře WordPress do mu-plugings/selena-network/signup/ (a nezapomeňte je zahrnout do mu-plugins/selena-network /signup/plugin.php). Další manipulace se soubory jsou extrémně obtížné a dlouhé na popis, takže je budete muset udělat sami. Jen popíšu, co přesně je třeba udělat, a zveřejním zdrojové soubory mého projektu:

  1. Na začátku souboru odstraňte všechny požadované , volání funkcí a další kód mimo funkce.
  2. Přejmenujte všechny funkce přidáním jedinečných předpon k názvům.
  3. Zabalte spodní část kódu wp-signup.php do funkce selena_network_signup_main a hned na začátek napište globální $active_signup; .
  4. Vyměňte rozvržení za vlastní na správných místech.

Uvnitř wp-activate.php musíte udělat to samé:

  1. Odstraňte veškerý kód mimo funkce, zabalte rozložení do samostatné funkce.
  2. V případě potřeby změňte rozložení.

Soubor wp-activate.php je zodpovědný za stránku aktivace účtu. Stejně jako u registrační stránky je pro ni potřeba vytvořit samostatnou šablonu, uvnitř které je potřeba funkci zavolat ze souboru wp-activate.php.

Odesílání aktivačních emailů

Registrační stránka odešle návštěvníkovi e-mail s odkazem na aktivaci účtu. Ve výchozím nastavení to řeší funkce wpmu_signup_user_notification() ze souboru ms-functions.php. Jeho funkčnost si lze za jeho funkci vypůjčit. Důvod, proč musíte přestat používat tuto funkci, je ten, že odesílá odkaz na aktivaci účtu z wp-activate.php . Tuto funkci můžete „vypnout“ pomocí filtru wpmu_signup_user_notification zadáním hodnoty false (pokud to neuděláte, aktivační dopis bude odeslán dvakrát, dobře, ve skutečnosti dvě různá písmena).

Funkce armyofselenagomez_wpmu_signup_user_notification($user, $user_email, $key, $meta = array()) ( // ... // Kód z funkce wpmu_signup_user_notification() wp_mail($user_email, wp_specialchars_decode($subject), $mesageers) $message ; return false; ) add_filter("wpmu_signup_user_notification", "armyofselenagomez_wpmu_signup_user_notification", 10, 4);

V důsledku toho se registrační stránka v tématu Selena stala mnohem čistší a přehlednější.

Závěr

Na internetu je mnoho dalších nepříliš správných způsobů, jak totéž udělat - přesměrování Apache, AJAX formuláře, které bez Java Scriptu nebudou fungovat atd. Tohle všechno se mi moc nelíbilo, tak jsem to zkusil udělat tak správně jako možné na mých vlastních stránkách.

Podotýkám, že byste měli soubory pečlivě upravovat a snažit se příliš neodchylovat od původních, aby v budoucnu, pokud WordPress změní soubory wp-signup.php a wp-activate.php, bylo snazší porovnat aby našli změny.

Nezapomeňte se podívat na zdrojový kód všech výše popsaných funkcí, abyste plně porozuměli tomu, co a jak se děje uvnitř kódu.

Bonus. Ochrana proti spammerům

I ty nejmenší WordPress stránky jsou často bombardovány registracemi spamu. Pro filtrování botů se dají psát nekonečné podmínky, často spíš pokus o vytvoření umělé inteligence 🙂 V případě multisite mi hodně pomohlo obvyklé přesměrování v Apache, se kterým jsem při otevření /wp-signup požádal o vydání 404. php a /wp-acitvate.php (nejsem expert na nastavení Apache, takže moje pravidla nemusí být příliš správná).

RewriteEngine On RewriteBase / RewriteRule ^wp-signup\.php - RewriteRule ^wp-activate\.php - # ZAČÁTEK WordPress # Výchozí pravidla WordPressu :) # ... # KONEC WordPress

P.S. Některé věci třetích stran se snažím popsat co nejpodrobněji, protože když jsem začínal, někdy nebyl nikdo, kdo by mi spoustu věcí poradil a vysvětlil. Také věřím, že takové malé tipy na další materiály někoho popostrčí k tomu, aby se naučil něco nového a rozšířil si oblast svých znalostí. Záznamy RewriteRule používají regulární výrazy, nejsou nijak složité, například znak ^ znamená začátek řádku.

Reklamy