PHP Posta yeniden yapılandırılıyor () Smarty İletişim Formu

1 Cevap php

Ben e-ticaret alışveriş sepeti ve CMS çözüm olarak PrestaShop kullanıyorum ve sorunları iletişim formu aracılığıyla gönderilen e-postalar almaya başlamıştı. Etrafa sordum ve ben atamanız gerektiğini nedeni olması için sorun bulundu 'dan' (farklı bir değişken atanacak kullanıcı tarafından girilen benim etki gelen bir şey (örneğin do_not_reply@mydomain.com) ve e-posta gibi adresi örneğin ') replyemail'.

However, the Prestashop contact form is created with a PHP Smarty template engine, which has separate contact-form.php file and a separate contact-form.tpl which I am displaying below. Firstly contact-form.php:-

<?php

$useSSL = true;

include(dirname(__FILE__).'/config/config.inc.php');
include(dirname(__FILE__).'/header.php');

$errors = array();

$smarty->assign('contacts', Contact::getContacts(intval($cookie->id_lang)));

if (Tools::isSubmit('submitMessage'))
{
    if (!($from = Tools::getValue('from')) OR !Validate::isEmail($from))
        $errors[] = Tools::displayError('invalid e-mail address');
    elseif (!($message = nl2br2(Tools::getValue('message'))))
        $errors[] = Tools::displayError('message cannot be blank');
    elseif (!Validate::isMessage($message))
        $errors[] = Tools::displayError('invalid message');
    elseif (!($id_contact = intval(Tools::getValue('id_contact'))) OR !(Validate::isLoadedObject($contact = new Contact(intval($id_contact), intval($cookie->id_lang)))))
        $errors[] = Tools::displayError('please select a contact in the list');
    else
    {
        if (intval($cookie->id_customer))
            $customer = new Customer(intval($cookie->id_customer));
        if (Mail::Send(intval($cookie->id_lang), 'contact', 'Message from contact form', array('{email}' => $_POST['from'], '{message}' => stripslashes($message)), $contact->email, $contact->name, $from, (intval($cookie->id_customer) ? $customer->firstname.' '.$customer->lastname : $from)))
            $smarty->assign('confirmation', 1);
        else
            $errors[] = Tools::displayError('an error occurred while sending message');
    }
}

$email = Tools::safeOutput(Tools::getValue('from', ((isset($cookie) AND isset($cookie->email) AND Validate::isEmail($cookie->email)) ? $cookie->email : '')));
$smarty->assign(array(
    'errors' => $errors,
    'email' => $email
));

$smarty->display(_PS_THEME_DIR_.'contact-form.tpl');
include(dirname(__FILE__).'/footer.php');

?>

Sonraki dosya kontak form.tpl için kodu: -

{capture name=path}{l s='Contact'}{/capture}

{include file=$tpl_dir./breadcrumb.tpl}



<h2>{l s='Contact us'}</h2>



{if isset($confirmation)}

    <p>{l s='Your message has been successfully sent to our team.'}</p>

    <ul class="footer_links">

        <li><a href="{$base_dir}"><img class="icon" alt="" src="{$img_dir}icon/home.gif"/></a><a href="{$base_dir}">{l s='Home'}</a></li>

    </ul>

{else}

    <p class="bold">{l s='For questions about an order or for information about our products'}.</p>

    {include file=$tpl_dir./errors.tpl}

    <form action="{$request_uri|escape:'htmlall':'UTF-8'}" method="post" class="std">

        <fieldset>

            <h3>{l s='Send a message'}</h3>

            <p class="select">

                <label for="id_contact">{l s='Subject'}</label>

                <select id="id_contact" name="id_contact" onchange="showElemFromSelect('id_contact', 'desc_contact')">

                    <option value="0">{l s='-- Choose --'}</option>

                {foreach from=$contacts item=contact}

                    <option value="{$contact.id_contact|intval}" {if isset($smarty.post.id_contact) && $smarty.post.id_contact == $contact.id_contact}selected="selected"{/if}>{$contact.name|escape:'htmlall':'UTF-8'}</option>

                {/foreach}

                </select>

            </p>

            <p id="desc_contact0" class="desc_contact">&nbsp;</p>

        {foreach from=$contacts item=contact}

            <p id="desc_contact{$contact.id_contact|intval}" class="desc_contact" style="display:none;">

            <label>&nbsp;</label>{$contact.description|escape:'htmlall':'UTF-8'}</p>

        {/foreach}

        <p class="text">

            <label for="email">{l s='E-mail address'}</label>

            <input type="text" id="email" name="from" value="{$email}" />

        </p>

        <p class="textarea">

            <label for="message">{l s='Message'}</label>

             <textarea id="message" name="message" rows="7" cols="35">{if isset($smarty.post.message)}{$smarty.post.message|escape:'htmlall':'UTF-8'|stripslashes}{/if}</textarea>

        </p>

        <p class="submit">

            <input type="submit" name="submitMessage" id="submitMessage" value="{l s='Send'}" class="button_large" />

        </p>

    </fieldset>

</form>

{/if}

Herkes benim seçim (örneğin do_not_reply@mydomain.com) ve adresi atamak için ve umarım bu e-posta formu benim için çalışmaya başlamak istiyorum için bu iletişim formunu ayarlayabilirsiniz nasıl bir fikrin var mı. Bu 'dan' adresini başka bir yerde kayıtlı ise bu depolanmış olabilir ya da nerede kod atıfta nerede, herkes görebilir?

1 Cevap

Bu 'dan' adresini başka bir yerde kayıtlı ise bu depolanmış olabilir ya da nerede kod atıfta nerede, herkes görebilir?

Ben kodu söyleyemem, ama benim tahminim bu güçlü dosya olacaktır:

include(dirname(__FILE__).'/config/config.inc.php');

Edit:

 if (Mail::Send(intval($cookie->id_lang), 'contact', 'Message from contact fveyam', 
array('{email}' => $_POST['from'], '{message}' => stripslashes($message)), 
$contact->email, $contact->name, $from, (intval($cookie->id_customer) ? 
$customer->firstname.' '.$customer->lastname : $from)))

Ben şu anda koduna yakından bakmak, ama yerine değil either

'{email}' => $_POST['from']

veya

$from

tarafından

'{email}' => 'whatever_you_want'

veya

'whatever_you_want'

might hile yapmak.