отправьте контактную форму электронной почты с подтверждением PHP без использования action = "" - PullRequest
0 голосов
/ 22 мая 2018

Мне нужно было заменить контактную форму на веб-сайте, я использовал электронное письмо с подтверждением, отправленное через PHP в предыдущей контактной форме, потому что действие атрибута было пустым, поэтому я мог сохранить код php на той же странице.Это моя предыдущая контактная форма:

<form action="" method="POST">

    <input type=hidden name="oid" value="00Db0000000IeRo">
    <input type=hidden name="retURL" value="http://business.mytaxi.ie/thankyou.php">

    <input id="email" maxlength="80" name="email" size="20" required="" type="email" value="" oninvalid="InvalidMsg(this);" oninput="InvalidMsg(this);" placeholder="email"/>
    <a href="" class="bannerbutsub" title="get started for free.">get started for free.</a>
    <input type="submit" name="submit" value="Register Interest" title="Register Interest" class="bannerbutsub">

</form>

И это мой php-код:

if($_POST['email']){
    $q = "INSERT INTO entries (email, datetime) VALUES ('".mysql_real_escape_string($_POST['email'])."',now())";
    $r = mysql_query($q) or die(mysql_error());


// sending confirmation email

$to = $_POST['email'];
$subject = 'Registration Confirmation';
$from = 'ireland.business@mytaxi.com';

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Create email headers
$headers .= 'From: '.$from."\r\n".
    'Reply-To: '.$from."\r\n" .
    'X-Mailer: PHP/' . phpversion();

// Compose a simple HTML email message
$message = '<html><body>';
$message .= '<p>Hi there,</p>';
$message .= '<p>Thanks for registering your interest in mytaxi | Business.</p>';
$message .= '<p>Our corporate service offers individuals and organisations complete visibility on taxi spend with on-demand automated reporting and as Ireland’s largest and only nationwide network, wait times are as low as 4 minutes.  There’s options available to suit everyone: from enterprise organisations to SME\'s to individuals. </p>';
$message .= '<p><a href="https://www.youtube.com/watch?v=jGDxs9Xf0jA" target="_new"><img src="http://business.mytaxi.ie/youtube.jpg"></a></p>';
$message .= '<p>A member of our corporate team will be touch with you shortly.</p>';
$message .= '<p>Many Thanks, <br>mytaxi | Business Team</p>';
$message .= '</body></html>';
// Sending email
mail($to, $subject, $message, $headers);

Он работал нормально, но затем меня попросили заменить контактную форму новой

Здесь новая форма контакта:

                        <form action="https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method="GET">

                        <input type=hidden name="oid" value="00Db0000000IeRo">
                        <input type=hidden name="retURL" value="http://business.mytaxi.ie/thankyou.php">

                        <input id="email" maxlength="80" name="email" size="20" required="" type="email" value="" oninvalid="InvalidMsg(this);" oninput="InvalidMsg(this);" placeholder="email"/>

                        <input type="hidden" id="lead_source" name="lead_source" value="Web" />

                        <input type="hidden" id="country" name="country" value="Ireland" />

                        <input type="submit" name="submit" value="Register Interest" title="Register Interest" class="bannerbutsub">


                        </form>

Как вы можете видеть, в новой форме контакта есть URL в атрибуте Action = "" формы контакта, поэтому электронное письмо с подтверждением небольше не работаетЯ не могу вынуть значение, потому что это необходимо.Есть ли другой способ сохранить новую контактную форму и продолжать отправлять электронное письмо с подтверждением после того, как пользователь отправит CF?

1 Ответ

0 голосов
/ 22 мая 2018

В идеале отправка письма с подтверждением теперь должна быть обработана по адресу: https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8

Есть хакерские способы обойти это ... вы можете снова очистить действие, чтобы оно отправлялось в ваш скрипт, затем используйтеcurl, чтобы ваш скрипт повторно отправлял данные на https://webto.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8 и затем отправлял по электронной почте на основе ответа.

Вы также можете отправить запрос ajax вашему скрипту при отправке формы, где ваш скрипт обрабатываетотправка электронного письма.

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

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