Hoe om te bevestigen dan een e-mail adres met behulp van PHP
Dus je moet de bevestiging van een gebruiker het e-mailadres? Geen probleem. Er zijn veel redenen om te eisen dat e-mail een bevestiging, en PHP maakt het eenvoudig.
E-mail bevestiging kan worden voltooid, is dat deze stappen:
- Vraagt de gebruiker om alle informatie die u nodig hebt van hen (met inbegrip van hun e-mailadres)
- Voer deze gegevens in een database
- Stuur de gebruiker een e-mail met een speciale bevestiging sleutel
- "Unlock" de gegevens in de database eenmaal op de bevestig-knop is ingevoerd.
Hoe dit te doen:
<? php
/ / Laten we eerst eens verbinding te maken met de database
$ gebruikersnaam = "dbUserName";
$ host = "dbHost";
$ my_password = "dbPassword";
$ db_name = "dbname";
/ / Maak verbinding met de server en selecteer database.
, "$user_name" , "$my_password" ) or die ( "cannot connect to server" ); mysql_connect ( "$ host", "$ gebruikersnaam", "$ my_password") or die ( "kan geen verbinding maken met server");
) or die ( "cannot select DB" ); mysql_select_db ( "$ db_name") or die ( "niet kunt kiezen DB");
/ / De volgende regel in feite gevraagd of de gebruiker dient te beschikken over de vorm weergegeven. Lees een beetje als je wilt zien waar de variabelen zijn afkomstig uit
(@ $_GET [ 'first' ] == "no" ) && ! (@ $_GET [ 'confirm' ] == "yes" ){ if (! (@ $ _GET [ 'eerste'] == "nee") & &! (@ $ _GET [ 'bevestigen'] == "ja") (
/ / Sinds dit is de eerste pagina's weer te geven en geen bevestigingscode is opgenomen we moeten weergeven van het formulier voor de gebruiker in te vullen
/ / Dit formulier neemt slechts een argument (de gebruiker het e-mailadres).
?>
method= "post" action= "index.php?first=no" > <form name= "emailConfirmation" method= "post" action= "index.php?first=no">
<table align="center">
<tr>
<td>
type= "text" id= "email" size= "30" /> E-mailadres: <input name= "email" type= "text" id= "email" size= "30" />
</ td>
</ tr>
<tr>
<td align="center">
name= "Submit" value= "Submit" /> <input type= "submit" name= "Submit" value= "Submit" />
</ td>
</ tr>
</ table>
</ form>
<? php
)
/ / als het formulier is ingevuld, moeten we voor het genereren van een bevestigingscode, plaatst u de bevestigingscode in en de gebruiker e-mail in een database, en stuur een e-mail naar het e-mailadres.
[ 'first' ] == "no" ){ //if the form has been filled out… elseif (@ $ _GET [ 'eerste'] == "nee") (/ / als het formulier is ingevuld worden ...
/ / is_valid_email_address is NIET geldig php-functie. Plaats uw eigen e-mailadres controlerende functie hier ...
is_valid_email_address( $_POST [ 'email' ])) if (! is_valid_email_address ($ _POST [ 'email']))); echo ( "Sorry! Het e-mailadres dat u heeft opgegeven is niet geldig.");
/ / Als het e-mailadres verschijnt geldig en veilig ...
else (]); $ email = ($ _POST [ 'email']);
/ / Maak een bevestigingscode hier. Dit is de manier waarop ik ervoor kiezen om het te doen, maar er zijn talloze manieren om dat zal werken.
( rand ())); $ CONFIRMATION_CODE = md5 (uniqid (rand ()));
/ / Alles is min of meer OK om te treden in de database en vervolgens een e-mail sturen naar de gebruiker
$ query = "INSERT INTO emailConfirmationTable (user_email, con_code) VALUES ( '$ email', '$ CONFIRMATION_CODE')";
("Config Error 2223 "); $ result = mysql_query ($ query) or die ( "Config Error 2223");
/ / Stuur de e-mail
$ tot = $ email;
$ subject = "Je voorbeeld bevestiging shortlikeafox"; / / Van
$ header = "from: shortlikeafox <info@shortlikeafox.com>";
/ / Uw bericht
$ bericht = "Uw Comfirmation link! \ r \ n";
$ bericht .= "Klik op deze link om uw account te activeren \ r \ n";
$ bericht .= "Deze koppeling met vervalt wanneer ik het gevoel dat het leeg maken van de onbevestigde berichten (iedere week of zo) \ r \ n";
$ bericht .= "http://www.shortlikeafox.com/simple-email-confirmation-example/index.php?confirm=yes&confirmCode = $ CONFIRMATION_CODE \ r \ n";
$ verzondenberichten = mail ($ aan, $ onderwerp, $ message, $ header);); echo ( "Uw bevestiging per e-mail is verzonden!");
)
)
/ / Als de gebruiker vond dit script van een link in zijn e-mail, bevestigt ....
[ 'confirm' ] == "yes" ){ elseif (@ $ _GET [ 'bevestigen'] == "ja") (
/ / Maak de confirmCode relatief veilig te gebruiken
[ 'confirmCode' ]); $ confirmCode = mysql_real_escape_string (@ $ _GET [ 'confirmCode']);
$ query = "SELECT * FROM emailConfirmationTable WAAR con_code = '$ confirmCode' EN is_confirmed ='0 ';"
( "Error 234234" ); $ result = mysql_query ($ query) or die ( 'Fout 234234 ");
$ nRows = mysql_num_rows ($ result);
1){ if ($ nRows == 1) (
$ query = "UPDATE emailConfirmationTable SET is_confirmed ='1 'WHERE con_code =' $ confirmCode '";
( "Config Error 222231231233 " ); $ result = mysql_query ($ query) or die ( "Fout 222231231233 Config");
if ($ resultaat)
); echo ( "EMAIL BEVESTIGD!");
)
anders
); echo ( "Kon niet bevestigen E-mail ');
)
?>
Het is heel belangrijk om te onthouden bij de validering van de informatie die de gebruiker voegt in welke vorm dan ook. Ik heb niet meer een functie voor e-mail adres validatie hierboven, maar een goede plek om te starten is Cal Henderson van het e-mailadres validatie functie vindt u hier.
Als je wilt zien dit script in actie, dan kunt u dat doen hier.






















