Параметры сообщения не работают в file_get_contents () php - PullRequest
0 голосов
/ 15 октября 2018

У меня было два файла PHP на том же сервере, где один файл PHP используется для отправки почты, а другой файл PHP - это то, что будет телом другого письма, поэтому я делаю это так

<?php
if($_SERVER['REQUEST_METHOD']=='POST'){

require_once('connect.php');

$email = $_POST['email'];
$name = $_POST['name'];
print_r($email);
print_r($name);

$postdata = http_build_query(
array(
    'email' => $email,
    'name' => $name
)
);

$opts = array('http' =>
array(
    'method'  => 'POST',
    'header'  => 'Content-type: application/x-www-form-urlencoded',
    'content' => $postdata
 )
 );

$to=$email;
$subject="Welcome Aboard| Judgement6";
$context = stream_context_create($opts);
$email_text = file_get_contents('Judgement6.php',false,$context);

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= "From: Judgement6 fantasy game<xyz@gmail.com>" . "\r\n";


if(mail($to,$subject,$email_text,$headers))
{
echo 'email sent';
}
else{
echo 'email not sent';
}
  }

   ?>

Теперь проблема в том, что файл включен в тело моего письма, но параметры записи там не указывались, а во втором файле обязательные переменные остаются нулевыми ...

1 Ответ

0 голосов
/ 15 октября 2018

file_get_contents() возвращает файл в виде строки как есть, он не будет передавать существующие переменные, для этого вам нужно будет использовать include или require.

http://php.net/manual/en/function.file-get-contents.php

Что вы можете сделать, так это создать внутри Judgement6.php переменную $email_text, а затем включить файл в свой сценарий.

Inside Judgement6.php:

$mail_text = "ALL THE CONTENT AND $VARIABLES INSIDE Judgement6.php";

Например, если Judgement6.У php есть следующий скрипт:

Hello <?php echo $name; ?>,
Thank you for subscribing to our <?php echo $_POST['service']; ?> 
on <?php echo date("Y-m-d"); ?>.

Вы напишите

$mail_text = "Hello  $name,
Thank you for subscribing to our ".$_POST['service']." 
on ".date("Y-m-d").".";

Будьте осторожны с конкатенацией и используя " внутри строки, вам нужно будет экранировать их \"

В вашем файле


$to=$email;
$subject="Welcome Aboard| Judgement6";    
include_once('Judgement6.php');

или


$to=$email;
$subject="Welcome Aboard| Judgement6";  
require_once('Judgement6.php');

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...