После 2 дней попыток исправить мою проблему, я отказался от нее :( Так что попробуем получить помощь здесь. Моя проблема в том, что xampp дает мне эту ошибку:
Примечание: Неопределенный индекс: имя в C:\xampp\htdocs\portfolio\index.php в строке 78 Примечание: Неопределенный индекс: электронная почта в C:\xampp\htdocs\portfolio\index.php в строке 79 Примечание: Неопределенный индекс: сообщение в C:\xampp\htdocs\portfolio\index.php в строке 80 Примечание: Неопределенный индекс: человек в C:\xampp\htdocs\portfolio\index.php в строке 84 Примечание: Неопределенный индекс: отправить в C:\xampp\htdocs\портфолио\index.php в строке 88
Мне удалось найти, что мне нужно определить переменные, прежде чем использовать их, или проверить существование, Но мои знания PHP находятся в его самых основах. Может ли кто-нибудь помочь мне в этом?
<section id="contact">
<h3>Contact me :</h3>
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: Example';
$to = '[email protected]';
$subject = 'Hello';
$human = $_POST['human'];
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
if ($_POST['submit']) {
if ($name != '' && $email != '') {
if ($human == '4') {
if (mail ($to, $subject, $body, $from)) {
echo '<p>Your message has been sent!</p>';
} else {
echo '<p>Something went wrong, go back and try again!</p>';
}
} else if ($_POST['submit'] && $human != '4') {
echo '<p>You answered the anti-spam question incorrectly!</p>';
}
} else {
echo '<p>You need to fill in all required fields!!</p>';
}
}
?>
<form method="post" action="index.php">
<label>Name</label>
<input name="name" placeholder="Type Here">
<label>Email</label>
<input name="email" type="email" placeholder="Type Here">
<label>Message</label>
<textarea name="message" placeholder="Type Here"></textarea>
<label>*What is 2+2? (Anti-spam)</label>
<input name="human" placeholder="Type Here">
<input id="submit" name="submit" type="submit" value="Submit">
</form>
</section>
В настоящее время ваша страница показывает эти сообщения, потому что вы показываете все ошибки и уведомления.
Если в верхней части страницы указано следующее, вы не увидите сообщений для уведомлений:
<?php error_reporting (E_ALL ^ E_NOTICE); ?>
Обратите внимание, однако, что это только скрывает сообщения. Он не разрешает основную проблему.
Поскольку запрос POST отсутствует, переменные типа $ _POST ['name'] недоступны, поэтому PHP дает эту ошибку. Что вам нужно сделать, это проверить, был ли задан запрос $ _POST, а затем определить переменные:
<?php
if(isset($_POST['submit'])){
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: Example';
$to = '[email protected]';
$subject = 'Hello';
$human = $_POST['human'];
$body = "From: $name\n E-Mail: $email\n Message:\n $message";
if ($_POST['submit']) {
if ($name != '' && $email != '') {
if ($human == '4') {
if (mail ($to, $subject, $body, $from)) {
echo '<p>Your message has been sent!</p>';
} else {
echo '<p>Something went wrong, go back and try again!</p>';
}
} else if ($_POST['submit'] && $human != '4') {
echo '<p>You answered the anti-spam question incorrectly!</p>';
}
} else {
echo '<p>You need to fill in all required fields!!</p>';
}
}
}
?>
isset()
функциюisset()
.