2016-03-14 2 views
-3

Я хочу добавить ссылку для проверки электронной почты, которую необходимо отправить при регистрации нового пользователя, он должен войти и нажать ссылку, а затем активировать его учетную запись. Как я могу сделать это наилучшим и простым способом? Вот мой кодДобавить ссылку для отправки по электронной почте на страницу регистрации php

<?php 
error_reporting(E_ALL); 
define('DB_HOST', 'localhost'); 
define('DB_NAME', 'Users'); 
define('DB_USER', 'root'); 
define('DB_PASSWORD', ''); 

$con = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); //Use MySQLi as MySQL is depreciated. 

if (isset($_POST['submit'])) { 
{ 
$error=false; 
if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { 
echo "Invalid email format"; 
$error=true; 
} 
} 
{ 

if ($_POST['password'] !== $_POST['cpass']) { 
    echo "Password and confirm password fields do not match!"; 
    $error=true; 
} 

} 





//No need for functions, do it all here as otherwise you'll have to declare globals. 
    if (!$error) { 
    $query = mysqli_prepare($con, "SELECT * FROM Websiteusers WHERE email = ?"); //Preparing the SQL query (We don't insert values directly into the query) 
    mysqli_stmt_bind_param($query, "s", $_POST['email']); //Bind the email to the SQL query 
    mysqli_stmt_execute($query); //Execute the query 
    mysqli_stmt_store_result($query); //Store the results 
    if(mysqli_stmt_num_rows($query)) //Is the number of rows 0? 
    { 
     //Yes 
     echo "Det verkar som att du redan är registrerad"; 
    } 

    else 

    { 
     //No 
     $query = mysqli_prepare($con, "INSERT INTO WebsiteUsers (firstname,efternamn,email,password) VALUES (?, ?, ?, ?)"); //Preparing the SQL query (We don't insert values directly into the query) 
     mysqli_stmt_bind_param($query, "ssss", $_POST['firstname'], $_POST['efternamn'], $_POST['email'], $_POST['password']); //Bind the params to the SQL query 
     mysqli_stmt_execute($query); //Execute the query 
     echo "Din registrering är slutförd"; 
    } 
    } 
} 
?> 
<!DOCTYPE HTML> 
<html lang="sv"> 
<head> 
<title>Registrera Dig</title> 
<link rel="stylesheet" type="text/css" href="style.css"> 

</head> 

<body> 

<table> 
    <form method="POST" action="test.php"> 
    <img class="bild"> 
     <tr> <td class="ett">Namn</td><tr><td> <input class="två" name="firstname"></td> </tr></tr> 
     <tr> <td class="tre">Efternamn</td><tr><td> <input class="fyra"type="text" name="efternamn"></td></tr> </tr> 
     <tr> <td class="fem">Email</td><tr><td> <input class="sex"type="email" name="email"></td></tr></tr> 
     <tr> <td class="sju">Lösenord</td><tr><td> <input class="åtta"type="password" name="password"></td> </tr></tr> 
     <tr> <td class="nio" >Bekräfta lösenord </td> <tr><td><input class="tio" type="password" name="cpass"></td></tr> </tr> 
     <tr> <td><input class="skapa" id="button" type="submit" name="submit" value="Skapa konto"></td> </tr> 
    </form> 
    </table> 


</body> 
</html> 
+0

Вы что-нибудь пробовали? –

+0

нет Я не знаю, как – Markus

+0

Google-поиск, скорее всего, даст вам больше одного руководства для этого, я уверен в этом. Но по существу вам нужно будет хранить ключ проверки в базе данных, а также флаг состояния учетных записей (активный/неактивный). Отправляйте ключ в почте, создайте страницу проверки, которая принимает этот ключ как вход какого-либо рода (например, через GET) и сопоставляя его с учетной записью ('SELECT ... FROM users WHERE key = $ key', хотя вы должны, конечно, использовать подготовленное заявление). И если это совпадение, вы активируете учетную запись. – Qirel

ответ

0

Я сделал Somthing как это ...

$chk = md5(strtolower($_POST['email'])); 

Тогда я ставлю это значение $ ОК в базе данных вместе с адресом электронной почты и другой информацией о пользователе, и в электронном шлю, у меня есть ссылка .. что-то вроде

<?php echo 'http://mysite/verify.php?chk='.$chk ; ?> 

Теперь, когда verify.php рассматривается это просто необходимо, чтобы найти строку для маркированных активированных пользователя с одинаковым значением $ ОК, и активируйте его при обнаружении.

$mysqlqry = 'UPDATE user.table set active = 1 WHERE active=0 AND chk='.$_REQUEST['chk'] ; 

Надеюсь, это поможет вам начать работу.

 Смежные вопросы

  • Нет связанных вопросов^_^