Форма PHP заполняется после отправки - PullRequest
0 голосов
/ 28 января 2019

Я в тупике ....

Я создал форму PHP, чтобы собрать некоторую информацию о пользователе и отправить ее по электронной почте владельцу сайта. После отправки формы поля автоматически заполняются '1'Я предполагаю, что это означает, что поле было истинным и отправлено.

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

Заранее благодарен за любую помощь!

PHP Code

    $errName = "";
    $errcatBreed = "";
    $errEmail = "";
    $errMessage = "";
    $result = "";

if (isset($_POST['submit'])) {
    $name = $_POST['name'];
    $catBreed = $_POST['catBreed'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $from = 'PearTreeHill Contact Form';
    $to = 'test@domain.com';
    $subject = "New furbaby enquiry from $name";

    $body ="From: $name\n Cat Breed: $catBreed\n E-Mail: $email\n Message:\n $message";

    // Check if name has been entered
    if (!$_POST['name']) {
        $errName = 'Please enter your name';
    }

    // Check if cat breed has been entered
    if (!$_POST['catBreed']) {
        $errcatBreed = 'Please enter either Ragdoll or British ShortHair';
    }

    // Check if email has been entered and is valid
    if (!$_POST['email'] || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
        $errEmail = 'Please enter a valid email address';
    }

    //Check if message has been entered
    if (!$_POST['message']) {
        $errMessage = 'Please enter your message';
    }

    // RECAPTCHA
    if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response']))
  {
        $secret = 'Private Key';
        $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
        $responseData = json_decode($verifyResponse);
        if($responseData->success)
        {
            $succMsg = 'Your contact request have submitted successfully.';
        }
        else
        {
            $errMsg = 'Robot verification failed, please try again.';
        }
   }

// If there are no errors, send the email
if (!$errName && !$errcatBreed && !$errEmail && !$errMessage) {
    if (mail ($to, $subject, $body, $from)) {
        $result='<div class="alert alert-success">Thank You! I will be in touch</div>';
    } else {
        $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again.</div>';
    }
}
    }

HTML Code

<!-- contact form -->
<section id="contactUs" class="bg">
  <div class="container">
    <div class="row">
      <div class="col-lg-8 mx-auto">
        <div class="text-center">
        <h2 class="w3-tangerine">Contact Us</h2>
      </div>
      <!-- start of entry form -->
      <form class="form-horizontal" role="form" method="post" action="index.php">
        <!-- name entry -->
        <div class="form-group">
            <label for="name" class="col-sm-2 control-label">Name</label>
            <div class="col-sm-12">
                <input type="text" class="form-control" id="name" name="name" placeholder="First & Last Name" value="<?php echo htmlspecialchars(isset($_POST['name'])); ?>">
            <?php echo "<p class='text-danger'>$errName</p>";?>
            </div>
        </div>
        <!-- cat breed selection -->
        <div class="form-group">
            <label for="catBreed" class="col-sm-2 control-label">Cat Breed</label>
            <div class="col-sm-12">
                <input type="text" class="form-control" id="catBreed" name="catBreed" placeholder="'Ragdoll' or 'British ShortHair'" value="<?php echo htmlspecialchars(isset($_POST['catBreed'])); ?>">
            <?php echo "<p class='text-danger'>$errcatBreed</p>";?>
            </div>
        </div>
        <!-- email address entry -->
        <div class="form-group">
            <label for="email" class="col-sm-2 control-label">Email</label>
            <div class="col-sm-12">
                <input type="email" class="form-control" id="email" name="email" placeholder="example@domain.com" value="<?php echo htmlspecialchars(isset($_POST['email'])); ?>">
            <?php echo "<p class='text-danger'>$errEmail</p>";?>
            </div>
        </div>
        <!-- Body of message -->
        <div class="form-group">
            <label for="message" class="col-sm-2 control-label">Message</label>
            <div class="col-sm-12">
                <textarea class="form-control" rows="4" name="message" placeholder="Please enter any other information"><?php echo htmlspecialchars(isset($_POST['message']));?></textarea>
            <?php echo "<p class='text-danger'>$errMessage</p>";?>
            </div>
        </div>

        <div class="form-group">
            <div class="col-sm-10 col-sm-offset-2">
            <!-- reCAPTCHA -->
            <div class="g-recaptcha" data-sitekey="Public Key" data-callback="recaptcha_callback"></div>
            <!-- send button -->
            <input disabled="disabled" id="submit" name="submit" type="submit" value="Send Message" class="btn btn-danger">
            <label for="submit" class="col-sm-8 control-label">Please allow up to 48 hours for a response!</label>
            </div>
        </div>
        <!-- entry alert -->
        <div class="form-group">
            <div class="col-sm-10 col-sm-offset-2">
                <?php echo $result; ?>
            </div>
        </div>
      </form>
    </div>
   </div>
  </div>

Ответы [ 2 ]

0 голосов
/ 28 января 2019

изменить

echo htmlspecialchars (isset ($ _ POST ['name']));

до

echo htmlspecialchars ($ _POST ['name'])

Я имею в виду удалить isset ();

0 голосов
/ 28 января 2019
<?php echo htmlspecialchars(isset($_POST['email'])); ?>

Здесь вы видите результат isset() (TRUE или FALSE).

Вы должны сделать:

<?php if ( isset($_POST['email']) ) echo htmlspecialchars($_POST['email']); ?>

И это для каждого поля:-)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...