2016-10-20 4 views
0

Я отправляю подтверждение по почте пользователю для подтверждения его учетной записи. Письмо с подтверждением написано с использованием HTML и имеет элемент href, который указывает пользователям на PHP-файл, где я выполняю процесс подтверждения. Эта ссылка href также должна иметь прикрепленную случайную строку PHP, та же самая случайная строка сохраняется в базе данных и также отправляется пользователю, чтобы перекрестная проверка могла выполняться на PHP после того, как пользователь нажимает на нее.Вставить переменную PHP в ссылку href в HTML

<td align="center" style="margin:0;text-align:center"> 
    <a href="http://aliencreative.wehubs.com/new_alien/email.php?code=<?php echo $randomString; ?>" 
    style="font-size:21px;line-height:22px;text-decoration:none;color:#ffffff;font-weight:bold; 
    border-radius:2px;background-color:#0096d3;padding:14px 40px;display:block; 
    letter-spacing:1.2px" target="_blank">Confirm Alien account now!</a></td> 

Код PHP содержит вышеуказанный HTML следующим образом.

<?php 
$randomString=time(); 
//$random="http://aliencreative.wehubs.com/new_alien/email.php?code=".$randomString; 

echo $random; 
$to = '[email protected]'; 
$subject = "Confirmation mail"; 
// Get HTML contents from file 
$htmlContent = file_get_contents("email_template.php"); 

// Set content-type for sending HTML email 
$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 

// Additional headers 
$headers .= 'From: Alien creative control<[email protected]>' . "\r\n"; 


// Send email 
if(mail($to,$subject,$htmlContent,$headers)): 
    $successMsg = 'Email has sent successfully.'; 
else: 
    $errorMsg = 'Some problem occurred, please try again.'; 
endif; 

?> 

Однако переменная PHP не доступна в ссылке.

+1

Не ответ, но я не знаю, если бы это была опечатка, что вы не закрыли якорь на php. – Irvin

+0

еще: ??? ENDIF; ?? –

+2

вы должны включить случайную строку в email_template.php – user1844933

ответ

1

Пожалуйста, попробуйте это. Удалите file_get_contents и используйте include с функцией выходного буфера. Я думаю, что это добавит вашу переменную в ваш шаблон. Проверьте приведенный ниже обновленный код. В любом случае ваш метод не является безопасным. Создайте более сложный случайный код

 <?php 
    $randomString=time(); 
    //$random="http://aliencreative.wehubs.com/new_alien/email.php?code=".$randomString; 

    echo $random; 
    $to = '[email protected]'; 
    $subject = "Confirmation mail"; 
    // Get HTML contents from file 

    ob_start(); 
    include "email_template.php"; 
    $htmlContent=ob_get_contents(); 
    ob_end_clean(); 

    // Set content-type for sending HTML email 
    $headers = "MIME-Version: 1.0" . "\r\n"; 
    $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 

    // Additional headers 
    $headers .= 'From: Alien creative control<[email protected]>' . "\r\n"; 


    // Send email 
    if(mail($to,$subject,$htmlContent,$headers)): 
     $successMsg = 'Email has sent successfully.'; 
    else: 
     $errorMsg = 'Some problem occurred, please try again.'; 
    endif; 

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