электронная почта — пустой почтовый PHP неопределенный индекс на $ _POST

У меня проблема с контактной формой. Когда я отправляю письмо, я получаю пустое письмо без отправителя, сообщений и т. Д. Я много раз менял код, но он по-прежнему отправляет пустое письмо. Это HTML код:

<form id="contact-form" class="contact" action="contact.php" method="post">
<input class="contact-input white-input" type="text" required="" name="contact-names" placeholder="Ime in priimek*" required />
<input class="contact-input white-input" type="email" required="" name="contact-email" placeholder="Elektronski naslov*" required />
<font color="white" style="display: table;">Nagradne igre:</font>
<select id="izbira" name="paket" style="display:table;">
<option value="">Izberite paket...</option>
<option value="Osnovnipaket">Osnovni paket (250€ + DDV)</option>
<option value="Standardnipaket">Standardni paket (800€ + DDV)</option>
<option value="Premiumpaket">Premium paket (999€ + DDV)</option>
</select>
<br><font color="white" style="display: table;">Nabiranje oboževalcev</font><br>
<select id="izbirao" name="paketo" style="display:table;">
<option value="">Izberite paket...</option>
<option value="Osnovnipaket">Osnovni paket (250€ + DDV)</option>
<option value="Standardnipaket">Standardni paket (800€ + DDV)</option>
<option value="Premiumpaket">Premium paket (999€ + DDV)</option>
</select>
<textarea class="contact-commnent white-input" rows="2" cols="20" name="contact_message" placeholder="Vaše sporočilo..."></textarea>
<input type="submit" value="Pošlji" name="submit" id="submit-button" class="contact-submit" style="display:block;" />
</form>

и это код contact.php:

error_reporting(E_ALL);
ini_set('display_errors', '1');
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_POST["contact-email"])) { $email = $_POST["contact-email"]; }
if (isset($_POST["contact-names"])) { $ime = $_POST["contact-names"]; }
if (isset($_POST["paket"])) { $paket = $_POST["paket"]; }
if (isset($_POST["paketo"])) { $paketobozevalci = $_POST["paketo"]; }
if (isset($_POST["contact_message"])) { $test = $_POST["contact_message"]; }
$sporocilo = "Paket nagradna igra: $paket". "Paket oboževalci: $paketobozevalci". "Sporočilo: $test";
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= 'From: '. $email .'' . "\r\n";
$headers .= 'Reply-To: '.$email ."\r\n";
$headers .= 'X-Mailer: PHP/' . phpversion();
$subject = "Kontaktni obrazec";
$poslji = mail("[email protected]",$subject,$sporocilo,$headers);
if ($poslji)
{
echo '<style>.contact_success_box {display:block;}</style>';
}
}

1

Решение

$ Paket не установлен нигде.

Вы можете установить все переменные в начале кода. Таким образом, они все настроены на что-то, и вам легче определить, какие переменные используются в вашем коде.

Также вы можете попробовать немного очистить ваш код, его трудно прочитать, когда он так упакован.

И когда вы получаете сообщение об ошибке с номером строки, вы можете легче найти проблему, когда в каждой строке не так много кода.

И выдает сообщение об ошибке при сбое функции mail (), а не просто сообщение об успехе.

error_reporting(E_ALL);
ini_set('display_errors', '1');

$mailto = "[email protected]";
$email = "";
$ime = "";
$paket = "";
$paketobozevalci = "";
$test = "";
$sporocilo = "";
$headers = "";
$subject = "Kontaktni obrazec";
$poslji = null;
$succes = '<style>.contact_success_box {display:block;}</style>';
$failure = '<style>.contact_failure_box {display:block;}</style>';

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

if (isset($_POST["contact-email"])) {

$email = $_POST["contact-email"];

}

if (isset($_POST["contact-names"])) {

$ime = $_POST["contact-names"];

}

if (isset($_POST["paket"])) {

$paket = $_POST["paket"];

}

if (isset($_POST["paketo"])) {

$paketobozevalci = $_POST["paketo"];

}

if (isset($_POST["contact_message"])) {

$test = $_POST["contact_message"];

}

$sporocilo .= "Paket nagradna igra: $paket";
$sporocilo .= "Paket oboževalci: $paketobozevalci";
$sporocilo .= "Sporočilo: $test";

$headers .= "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= 'From: ' . $email . "\r\n";
$headers .= 'Reply-To: ' . $email . "\r\n";
$headers .= 'X-Mailer: PHP/' . phpversion();

$poslji = mail($mailto, $subject, $sporocilo, $headers);

if ($poslji) {

echo $succes;

} else {

echo $failure;

}

}
1

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

Других решений пока нет …

По вопросам рекламы [email protected]