Ошибка Xampp в php (определение переменных?)

0

После 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>
  • 0
    Вероятно, вам следует isset() функцию isset() .
  • 0
    Поскольку POST-запрос отсутствует, такие переменные, как $ _POST ['name'], не определены, поэтому XAMP выдает эту ошибку.
Теги:
xampp

2 ответа

0

В настоящее время ваша страница показывает эти сообщения, потому что вы показываете все ошибки и уведомления.

Если в верхней части страницы указано следующее, вы не увидите сообщений для уведомлений:

<?php error_reporting (E_ALL ^ E_NOTICE);  ?>

Обратите внимание, однако, что это только скрывает сообщения. Он не разрешает основную проблему.

0

Поскольку запрос 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>';
    }
}
}
?>
  • 0
    Спасибо за быстрый ответ, изменили код, но ошибка остается прежней. Ошибка появляется при доступе к странице php в Dreamweaver или при доступе к странице в localhost через xampp. При загрузке на веб-сервер ошибка исчезает. Может быть проблема в другом месте?
  • 0
    @WebAmateur Обновленный ответ. Попробуй это сейчас.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню