PHP sendmail если еще - PullRequest
       8

PHP sendmail если еще

0 голосов
/ 08 ноября 2011

Я пытаюсь весь день и не могу заставить это работать.

У меня есть четыре input type="radio" name="sector" value="value1", но я не могу заставить это работать.

function emailtotest($to) {
    if (strip_tags($_POST['sector']) == 'value1') {
        $to .= 'email1@domain.com';
    } elseif (strip_tags($_POST['sector']) == 'value2') {
        $to .= 'email2@domain.com';
    } elseif (strip_tags($_POST['sector']) == 'value3') {
        $to .= 'email3@domain.com';
    } elseif (strip_tags($_POST['sector']) == 'value4') {
        $to .= 'email4@domain.com';
    } else {
        $to .= 'email5@domain.com';
    }
    return $to;
}

Я уже протестировал sendmail.php, и он отлично работает, если я объявил $to = email@dominio.com, но с радиовходами не будет работать.

Любая помощь, пожалуйста?

Код формы:

    <form id="contactForm" action="sendmail.php" method="post">
    <p>
        <label for="nome">Nome</label><br>
        <input type="text" id="nome" name="nome" required="required" class="input_full">
    </p>
    <p>
        <label for="tel">Telefone</label><br>
        <input type="tel" id="tel" name="tel" required="required" class="input_full">
    </p>
    <p>
        <label for="email">E-mail</label><br>
        <input type="email" id="email" name="email" placeholder="nome@exemplo.com" required="required" class="input_full">
    </p>
    <p>
        <label for="radio_1">
            <input type="radio" id="radio_1" name="sector" value="value1">
            Comercial / Marketing
        </label>
        <label for="radio_2">
            <input type="radio" id="radio_2" name="sector" value="value2">
            Produto / Manutenção
        </label>
        <label for="radio_3">
            <input type="radio" id="radio_3" name="sector" value="value3">
            Financeiro
        </label>
        <label for="radio_4">
            <input type="radio" id="radio_4" name="sector" value="value4">
            Administração
        </label>
    </p>
    <p>
        <label for="mensagem">Mensagem</label><br>
        <textarea id="mensagem" name="mensagem" rows="5" placeholder="Escreva aqui sua mensagem." required="required" class="input_full"></textarea>
    </p>
    <p>
        <input type="submit" value="Enviar &rarr;">
    </p>
</form>

1 Ответ

1 голос
/ 08 ноября 2011

Hm HTML-часть выглядит нормально, но попробуйте исправить это:

function emailtotest($to) {
if (strip_tags($_POST['sector']) == 'value1') {
    $to = 'email1@domain.com';
} elseif (strip_tags($_POST['sector']) == 'value2') {
    $to = 'email2@domain.com';
} elseif (strip_tags($_POST['sector']) == 'value3') {
    $to = 'email3@domain.com';
} elseif (strip_tags($_POST['sector']) == 'value4') {
    $to = 'email4@domain.com';
} else {
    $to = 'email5@domain.com';
}
return $to;

}

Так что вместо $ to. = "Email ..";используйте только $ to = "email";так что без точки перед =

Почему?

Потому что если вы используете. =, Это означает, что вы добавляете значение к существующему значению.Например, если $ to уже содержит это значение: email@email.com, а затем вы используете $ to. = "Email1@email.com";тогда $ to будет содержать ОБА значения и будет выглядеть так: email @ email.comemail1 @ email.com Что не совсем нормально.Другое (то же самое) решение также таково:

function emailtotest($to) {
if (strip_tags($_POST['sector']) == 'value1') {
return 'email1@domain.com';
} elseif (strip_tags($_POST['sector']) == 'value2') {
return 'email2@domain.com';
} elseif (strip_tags($_POST['sector']) == 'value3') {
return 'email3@domain.com';
} elseif (strip_tags($_POST['sector']) == 'value4') {
return 'email4@domain.com';
} else {
return 'email5@domain.com';
}
}

Это одно и другое, старайтесь НЕ использовать $ _POST в функциях, даже если они глобальные.Получите значение из примера $ _POST:

$which = trim(strip_tags($_POST['sector'])); //get your checkbox value

А затем вызовите функцию и возьмите в нее $, например:

$to_email = emailtotest($which); //call a function and take $which - value1, value2...
mail($to_email, "subject", "email txt"); //then send a mail to $to_email

function emailtotest($value){
if($value=='value1'){
return 'email1@domain.com';
}
else if ($value=='value2'){
return 'email2@domain.com'
.....
....
}
...