0

私の問題を自分で修正しようとして2日後、私はあきらめました:(だからここで助けを得ようとします。私の問題は、xamppが私にこのエラーを与えることです:

Notice: Undefined index: name in C:\xampp\htdocs\portfolio\index.php 行 78 Notice: Undefined index: email in C:\xampp\htdocs\portfolio\index.php 行 79 Notice: Undefined index: message C:\xampp\htdocs\portfolio\index.php の 80 行目 通知: Undefined index: human in C:\xampp\htdocs\portfolio\index.php 行 84 Notice: Undefined index: submit in C:\xampp\ 88 行目の htdocs\portfolio\index.php

変数を使用する前に変数を定義する必要があるか、存在を確認する必要があることがわかりましたが、PHPに関する私の知識は非常に基本的なものです。誰かがそれを手伝ってくれますか?

<section id="contact">
<h3>Contact me :</h3>
<?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $from = 'From: Example'; 
    $to = 'example@gmail.com'; 
    $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>
4

2 に答える 2

0

現在、すべてのエラーと通知が表示されているため、ページにこれらのメッセージが表示されています。

ページの上部に以下を含めると、通知のメッセージは表示されません。

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

ただし、これはメッセージを非表示にするだけであることに注意してください。根本的な問題は解決しません。

于 2016-02-10T14:53:34.333 に答える
0

Since there is no POST request, the variables such as $_POST['name'] is not available, so PHP gives that error. What you need to do is check if a $_POST request has been made, then define the variables :

<?php
if(isset($_POST['submit'])){
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $from = 'From: Example'; 
    $to = 'example@gmail.com'; 
    $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>';
    }
}
}
?>
于 2013-10-24T13:11:08.807 に答える