ので、ユーザーのメールアドレスの確認が必要ですか? 大丈夫。 メールの確認が必要とする理由はたくさんあるし、 PHPは簡単になります。
メールの確認を完了することができます手順を実行されます:
- それら(の電子メールアドレスなど必要な情報については、ユーザープロンプト)
- データベース内のこのデータ入力
- ユーザーが特別な確認キーを記載したメールを送信
- 一度、確認キーが入力されて" "は、データベース内のデータのロックを解除する。
どのようにそれを実行する:
< ? phpの
/ /まず、データベースに接続させる
$ユーザー名= " dbUserName " ;
$ホスト= " dbHost " ;
$ my_password = " dbPassword " ;
$ db_name = " dbnameに" ;
/ /サーバーを選択してデータベースに接続します。
, "$user_name" , "$my_password" ) or die ( "cannot connect to server" ); "ホスト( " $ mysql_connect 、 " $ ユーザー名" 、 " $ my_password " ) または死ぬ ( "サーバーに " )を接続することはできません 。
) or die ( "cannot select DB" ); mysql_select_db ( " $ db_name " ) または死ぬ ( " " ) DBを選択することはできません 。
場合に、ユーザーがフォームにする必要があります/ /次の行を基本的に要求表示されます。 少し下を読む場合は、変数から見て
(@ $_GET [ 'first' ] == "no" ) && ! (@ $_GET [ 'confirm' ] == "yes" ){ 場合 ( ! ( @ に$ _GET [ '最初の' ] == "なし" ) & & ! ( @ に$ _GET [ '確認' ] == "はい" ) (
/ /これはページの最初に表示すると確認コードは我々に記入することには、ユーザーのためのフォームが表示されるはず含まれています。
/ /このフォームは1つだけの引数(ユーザーのメールアドレス)かかります。
? >
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メール: <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の>
< /表>
< /フォーム>
< ? phpの
)
/ /場合は、フォームに記入されており、我々は確認コードを生成するために、データベースには、確認コードとユーザーの電子メールを挿入すると 、 必要とされたメールアドレスにメールを送信してください。
[ 'first' ] == "no" ){ //if the form has been filled out… elseif ( @ に$ _GET [ '最初の' ] == "なし" ) ( / /場合は、フォームに記入されています...
/ / is_valid_email_address は 、有効なPHPの関数です。 自分のメールアドレスをチェックする機能を挿入ここに...
is_valid_email_address( $_POST [ 'email' ])) 場合 ( ! ( $ _POSTを[ 'メール' ] ) ) is_valid_email_address
); 有効ではありません ( "ごめんエコー!入力された電子メールアドレスです。 " ) ;
/ /場合は、有効なメールアドレスが表示され、安全な...
他 (
]); $メール= ( $ _POSTを [ 'メール' ] ) ;
/ /ここで確認コードを生成します。 これは私はそれを行うことを選択する方法だが、その動作には問題がある無数の方法があります。
( rand ())); $ = md5にconfirmation_code ( (ランド())); uniqid
/ /すべては多かれ少なかれ、データベースに入力すると、ユーザーにメールを送信してOKです
$クエリ= "挿入emailConfirmationTable ( con_code ) user_email値( ' $メール' 、 ' $ confirmation_code ' ) " ;
("Config Error 2223 "); $結果= するmysql_query ( $クエリ) または死ぬ ( "設定エラー2223 " ) ;
/ /メールを送信
$ 〜 = $メール;
$件名= "あなたのshortlikeafox例の確認" ; / /投稿者
$ヘッダー= "投稿者: shortlikeafox <info@shortlikeafox.com> " ;
/ /あなたのメッセージ
$メッセージ= "あなたのComfirmationリンク! \研究です\ n " ;
$メッセージ.= "このリンクをクリックしてアカウントを有効に\研究です\ n " ;
いつ私は未確認のメールを洗浄ような気が期限切れと$メッセージ.= "このリンク(毎週かそこら) \研究です\ n " ;
$メッセージ.= " http://www.shortlikeafox.com/simple-email-confirmation-example/index.php?confirm=yes&confirmCode = $ confirmation_code \研究です\ n " ;
$送信済み= メール ( $ 、 $件名、メッセージ$ 、 $ヘッダー) ;
); ( " 確認メールが送信されましたエコー ! " ) ;
)
)
/ /場合は、ユーザーの電子メール内のリンクからこのスクリプトは、確認が見つかりました... 。
[ 'confirm' ] == "yes" ){ elseif ( @ に$ _GET [ '確認 ] == "はい" ) (
/ / confirmCode比較的使用して安全を確保する
[ 'confirmCode' ]); $ confirmCode = mysql_real_escape_string ( @ に$ _GET [ ' confirmCode ' ] ) ;
$クエリ= "のSELECT *からcon_code = ' $ emailConfirmationTable confirmCode 'とis_confirmed = '0 ' " ;
( "Error 234234" ); $結果= するmysql_query ( $クエリ) または死ぬ ( "エラー234234 " ) ;
$ nrows = mysql_num_rows ( $結果) ;
1){ ( $ nrows == 1 ) (場合
$クエリ= "アップデートemailConfirmationTableセットis_confirmed = '1 'のWHERE con_code = ' $ confirmCode ' " ;
( "Config Error 222231231233 " ); $結果= するmysql_query ( $クエリ) または死ぬ ( "設定エラー222231231233 " ) ;
( $結果)の場合
); エコー ( "メールアドレスの確認を! ! ! " ) ;
)
その他の
); ( " " )メールを確認できませんでしたエコー ;
)
? >
その情報を検証するために覚えているのは非常に重要なのはどのような形でユーザーを挿入します。 私は上記のメールアドレスを検証するための関数が含まれていない開始するにはいい場所カルヘンダーソンの電子メールの検証機能ですここを発見した。
行動の場合はこのスクリプトを見たい場合は、ここに行うことができます。