Поле в контактной форме

Я новичок в PHP и у меня проблема со следующей контактной формой:
Переменная: $ empresa = $ _POST [’empresa’]; не работает … и я не понимаю, где проблема. Когда я пытаюсь использовать его в отправленной электронной почте, он просто не отображается.

$received_subject = 'Has sido contactado desde www.company.com por ' . $name . '. Empresa' . $empresa . '.' ;

** Это PHP, который я использую: **
Заранее спасибо

<?php

if(!$_POST) exit;

function isEmail($email) {
return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));
}

if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n");

$name     = $_POST['name'];
$empresa  = $_POST['empresa'];
$email    = $_POST['email'];
$phone    = $_POST['phone'];
$comments = $_POST['comments'];

if(trim($comments) == '') {
echo '<div class="error_message">Has olvidado escribir tu mensaje.</div>';
exit();
}if(trim($name) == '') {
echo '<div class="error_message">Tienes que poner un nombre.</div>';
exit();
} else if(trim($email) == '') {
echo '<div class="error_message">Por favor pon tu dirección de e-mail, para poder ponernos en contacto contigo.</div>';
exit();
} else if(!isEmail($email)) {
echo '<div class="error_message">Dirección de e-mail inválida, inténtelo nuevamente.</div>';
exit();
}

$address = "mail@mail.com";$received_subject = 'Has sido contactado desde www.company.com por ' . $name . '. Empresa' . $empresa . '.' ;

$received_body = "$name te ha contactado desde www.company.com " . PHP_EOL . PHP_EOL;
$received_content = "\"$comments\"" . PHP_EOL . PHP_EOL;
$received_reply = "Responder a $name $email o llamar al teléfono: $phone | Empresa: $empresa ";

$message = wordwrap( $received_body . $received_content . $received_reply, 100 );

$header = "From: $email" . PHP_EOL;
$header .= "Reply-To: $email" . PHP_EOL;

if(mail($address, $received_subject, $message, $header)) {

// Email has sent successfully, echo a success page.

echo "<h2>E-Mail enviado con éxito</h2>";
echo "<p>Gracias <strong>$name</strong>, tu mensaje ha sido enviado.</p>";

} else {

echo 'ERROR!';

}

Моя форма здесь:

                            <form method="post" action="contact.php" name="contactform" id="contactform">

<fieldset id="contact_form">
<label for="name">
<input type="text" name="name" id="name" placeholder="Nombre *">
</label>

<label for="empresa">
<input type="text" name="empresa" id="empresa" placeholder="Empresa *">
</label>

<label for="email">
<input type="email" name="email" id="email" placeholder="E-Mail *">
</label>

<label for="phone">
<input type="text" name="phone" id="phone" placeholder="Número de teléfono">
</label>

<label for="comments">
<textarea name="comments" id="comments" placeholder="Mensaje *"></textarea>
</label>
<p class="obligatorio"> * = Obligatorio</p>

<input type="submit" class="submit btn btn-default btn-black" id="submit" value="Enviar">
</fieldset>

</form>

0

Решение

Если все ваши другие переменные post работают, то похоже, что переменная $ _POST [’empresa’] не попадает на страницу php. Для отладки вашего скрипта вы можете либо переключить метод формы на GET, чтобы увидеть строку запроса в URL браузера, либо использовать такой инструмент, как firebug, который является дополнением для firefox. Вы получите ошибку на своей странице php, когда вы переключитесь на метод GET в своей HTML-форме. Не беспокойтесь о том, что вы просто пытаетесь увидеть, отправляется ли переменная empressa через запрос http Post.

Хорошо, ваша переменная dump должна показывать это на основе кода, который вы предоставили

array
'name' => string 'Larry' (length=5)
'empresa' => string 'Lane' (length=4)
'email' => string 'ok@yahoo.com' (length=12)
'phone' => string '123' (length=3)
'comments' => string 'ok' (length=2)

Так что empresa делает это на странице просто отлично. Я заметил, что у вас нет открывающего тега формы для вашей формы? У вас должно быть что-то вроде этого с именами вашего файла вместо тех, которые я использовал для тестирования, конечно.

<form name="testform" action="testingpostvariables.php" method="POST">

Разместить эхо $ сообщение; после вашей строки кода в вашем PHP-файле

    $message = wordwrap( $received_body . $received_content . $received_reply, 100 );

$echo message;

Когда я это сделал, появилась empresa.

Хорошо, поместите этот код в отдельный php-файл и протестируйте его, чтобы мы могли выяснить, почему «empresa» не появляется. Я бы также попытался обновить ваш браузер перед проверкой этого файла, чтобы убедиться, что нет плохих результатов в кэше.

<form method="post" action="contact.php" name="contactform" id="contactform">

<fieldset id="contact_form">
<label for="name">
<input type="text" name="name" id="name" placeholder="Nombre *">
</label>

<label for="empresa">
<input type="text" name="empresa" id="empresa" placeholder="Empresa *">
</label>

<label for="email">
<input type="email" name="email" id="email" placeholder="E-Mail *">
</label>

<label for="phone">
<input type="text" name="phone" id="phone" placeholder="Número de teléfono">
</label>

<label for="comments">
<textarea name="comments" id="comments" placeholder="Mensaje *"></textarea>
</label>
<p class="obligatorio"> * = Obligatorio</p>

<input type="submit" class="submit btn btn-default btn-black" id="submit" value="Enviar">
</fieldset>

</form><?php//debug
echo var_dump($_POST);

//debug
if(!$_POST){

echo "NO POST";

//exit;
}
else{

echo "POSTED";
}

function isEmail($email) {
return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i",$email));
}

if (!defined("PHP_EOL")) define("PHP_EOL", "\r\n");

$name     = $_POST['name'];
$empresa  = $_POST['empresa'];

//impress is posting just fine

$email    = $_POST['email'];
$phone    = $_POST['phone'];
$comments = $_POST['comments'];

if(trim($comments) == '') {
echo '<div class="error_message">Has olvidado escribir tu mensaje.</div>';
exit();
}if(trim($name) == '') {
echo '<div class="error_message">Tienes que poner un nombre.</div>';
exit();
} else if(trim($email) == '') {
echo '<div class="error_message">Por favor pon tu dirección de e-mail, para poder ponernos en contacto contigo.</div>';
exit();
} else if(!isEmail($email)) {
echo '<div class="error_message">Dirección de e-mail inválida, inténtelo nuevamente.</div>';
exit();
}

$address = "mail@mail.com";$received_subject = 'Has sido contactado desde www.company.com por ' . $name . '. Empresa' . $empresa . '.' ;

//debug
//$empressa is still working fine$received_body = "$name te ha contactado desde www.company.com " . PHP_EOL . PHP_EOL;
$received_content = "\"$comments\"" . PHP_EOL . PHP_EOL;
$received_reply = "Responder a $name $email o llamar al teléfono: $phone | Empresa: $empresa ";$message = wordwrap( $received_body . $received_content . $received_reply, 100 );

echo $message;

$header = "From: $email" . PHP_EOL;
$header .= "Reply-To: $email" . PHP_EOL;

/*
if(mail($address, $received_subject, $message, $header)) {

// Email has sent successfully, echo a success page.

echo "<h2>E-Mail enviado con éxito</h2>";
echo "<p>Gracias <strong>$name</strong>, tu mensaje ha sido enviado.</p>";

} else {

echo 'ERROR!';

}
*/

Вот как выглядел мой результат со значением empresa в конце (Lane — это значение empresa, которое я ввел в форму).

POSTEDLarry te ha contactado desde www.company.com «Это действительно длинное сообщение, хорошо, давайте посмотрим, что происходит с этим php-кодом, он не отправляет переменную empresa» Ответчик Larry mail@mail.com llamar al teléfono: 12345678 | Empresa: переулок

0

Другие решения

Хорошо, в вашем файле «custom.js» есть следующая строка кода, которая может вызвать некоторые проблемы.

  $.post(action, {
name: $('#name').val(),
empresa: $('#empresa').val(),
email: $('#email').val(),
phone: $('#phone').val(),
comments: $('#comments').val(), //remove this comma

После последнего значения свойства не должно быть запятой, попробуйте удалить ее, чтобы увидеть, получаете ли вы значение empresa из кода jquery. Попробуйте и дайте мне знать, я

0

Я решил проблему, изменив слово empresa на что-то другое.
Я думаю, что произошло какое-то столкновение с использованием этого слова.

Большое спасибо за Вашу помощь!

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector