HTML/PHP 联系表 - 电话号码未接通

问题描述 投票:0回答:1

预先感谢您的帮助。

在 HTML/CSS/JS 网站上,我正在使主题提供的联系表单工作正常,但我似乎无法让电话号码字段工作。我已经尝试过不使用 sanitize、更改 id,似乎没有任何效果。

HTML:

 <section class="contact-page">
            <div class="container">
                <div class="section-title text-center">
                    <div class="section-title__icon">
                        <img src="assets/images/icon/section-title-icon.png" alt="">
                    </div>
                    <span class="section-title__tagline">Contact with us now</span>
                    <h2 class="section-title__title">Feel free to write gardon <br> anytime</h2>
                </div>
                <div class="contact-page__form-box">
                    <form action="/assets/contact-form-handler.php" class="contact-page__form contact-form-validated"
                        method="post">
                        <div class="row">
                            <div class="col-xl-6 col-lg-6 col-md-6">
                                <div class="contact-page__form-input-box">
                                    <input type="text" id="name" placeholder="Your name" name="visitor_name" pattern=[A-Z\sa-z]{3,20} required>
                                </div>
                            </div>
                            <div class="col-xl-6 col-lg-6 col-md-6">
                                <div class="contact-page__form-input-box">
                                    <input type="email" id="email" placeholder="Email address" name="visitor_email" required>
                                </div>
                            </div>
                            <div class="col-xl-6 col-lg-6 col-md-6">
                                <div class="contact-page__form-input-box">
                                    <input type="text" id="visitor_phone" placeholder="Phone" name="visitor_phone">
                                </div>
                            </div>
                            <div class="col-xl-6 col-lg-6 col-md-6">
                                <div class="contact-page__form-input-box">
                                    <select class="selectpicker" aria-label="Default select example">
                                        <option selected>Select service</option>
                                        <option value="1">Select Service 01</option>
                                        <option value="2">Select Service 02</option>
                                        <option value="3">Select Service 02</option>
                                    </select>
                                </div>
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-xl-12">
                                <div class="contact-page__form-input-box text-message-box">
                                    <textarea name="visitor_message" id="visitor_message" name="visitor_message" placeholder="Write a message"></textarea>
                                </div>
                                <div class="contact-page__form-btn-box">
                                    <button type="submit" class="thm-btn contact-page__form-btn">Send a Message</button>
                                </div>
                            </div>
                        </div>
                    </form>
                    <div class="result"></div>
                </div>
            </div>
        </section>

PHP contact-form-handler.php

<?php
 
if($_POST) {
    $visitor_name = "";
    $visitor_email = "";
    $email_title = "";
    $visitor_phone = "";
    $visitor_message = "";
    $email_body = "<div>";
     
    if(isset($_POST['visitor_name'])) {
        $visitor_name = filter_var($_POST['visitor_name'], FILTER_SANITIZE_STRING);
        $email_body .= "<div> 
<label><b>Visitor Name:</b></label>&nbsp;<span>".$visitor_name."</span> 
</div>";
    }
    if(isset($_POST['visitor_email'])) {
        $visitor_email = str_replace(array("\r", "\n", "%0a", "%0d"), '', $_POST['visitor_email']);
        $visitor_email = filter_var($visitor_email, FILTER_VALIDATE_EMAIL);
        $email_body .= "<div> 
<label><b>Visitor Email:</b></label>&nbsp;<span>".$visitor_email."</span> 
</div>";
    }
     
    if(isset($_POST['email_title'])) {
        $email_title = filter_var($_POST['email_title'], FILTER_SANITIZE_STRING);
        $email_body .= "<div> 
<label><b>Reason For Contacting Us:</b></label>&nbsp;<span>".$email_title."</span> 
</div>";
    }
    
       if(isset($_POST['visitor_phone'])) {
        $concerned_department = filter_var($_POST['visitor_phone'], FILTER_SANITIZE_NUMBER_INT);
        $email_body .= "<div> 
<label><b>Phone Number:</b></label>&nbsp;<span>".$visitor_phone."</span> 
</div>";
    }
    
    if(isset($_POST['visitor_message'])) {
        $visitor_message = htmlspecialchars($_POST['visitor_message']);
        $email_body .= "<div> 
<label><b>Visitor Message:</b></label> 
<div>".$visitor_message."</div> 
</div>";
    }
     
    $recipient = "[email protected]"; 
    $email_body .= "</div>";
    $headers  = 'MIME-Version: 1.0' . "\r\n"
    .'Content-type: text/html; charset=utf-8' . "\r\n"
    .'From: ' . $visitor_email . "\r\n";
     
    if(mail($recipient, $email_title, $email_body, $headers)) {
        echo "<p>Thank you for contacting us, $visitor_name. You will get a reply within 24 hours.</p>";
    } else {
        echo '<p>We are sorry but the email did not go through.</p>';
    }
     
} else {
    echo '<p>Something went wrong</p>';
}
?>

如果有人能指出我正确的方向,那就太好了。

提前致谢。

已尝试更改 HTML 和 PHP 文件中的 ID 和名称。还尝试删除 sanitize,并尝试将访问者电话添加到名称框中,由于某种原因,PHP 文件无法从 HTML 文档中获取它。

无论我如何获得它,电子邮件都会很好地提取其他数据,而电话号码仍然是空的。

php html forms contacts
1个回答
0
投票

在代码部分:

if(isset($_POST['visitor_phone'])) {
    $concerned_department = filter_var($_POST['visitor_phone'], FILTER_SANITIZE_NUMBER_INT);
    $email_body .= "<div><label><b>Phone Number:</b></label>&nbsp;<span>".$visitor_phone."</span></div>";
}

Ypou 将电话号码信息分配给“$concerned_department”,但随后打印出“$visitor_phone”。

顺便说一句,出于多种原因,您绝对不想将电话号码清理为整数。它可能以零开头,有时人们会输入空格,在某些国家/地区他们会输入标点符号......

© www.soinside.com 2019 - 2024. All rights reserved.