HTML表单在手机上提交空变量,但在PC浏览器上运行正常

时间:2017-08-23 07:49:40

标签: php html forms mobile submit

在网站设计方面我是一个相当新秀,但我设法建立了一个带有bootstrap和jquery的网站,包括一个小型表格(在模态内),供客人注册参加活动。

表单将其数据(出席,姓名等)发送到php脚本,然后将其发送到邮件并回显邮件主体,然后该邮件主体也显示在iFrame中,供用户查看确认。

PC上的一切正常。我已经在三台不同的机器上使用chrome,firefox和IE测试了它。

它在我的个人Android手机上同样有效。

这是一个问题:在我的公司Blackberry和我姐姐的Android上,它不起作用。该表单似乎工作并触发PHP但它似乎只传递空变量。生成的邮件和iFrame中的确认信息为空白。

任何想法有什么不对?安全设置或阻止实际数据发送的任何内容?我很困惑,用谷歌搜索了一个小时而没有找到解决方案......

代码(缩短):

<form action="rueckmeldung.php" method="post" autocomplete="off" target="hiddenForm" onsubmit="this.reset();" content="text/html; charset=UTF-8" > <!-- onsubmit="this.submit(); this.reset(); return false; window.location.assign('#close')"-->

    <IFRAME style="display:none; width:100%; height:auto; border:0; margin-left: 5rem; margin-right: 5rem;" name="hiddenForm" id="hiddenframeID" class="mdlRMhide2"></IFRAME>

    <!-- Modal Body -->
    <div class="modal-body mdlRMhide1" novalidate="novalidate">
            <!-- Ja/Nein-->
            <section id="secJaNein" class="modal-section">
                <div class = "row">
                    <div class="col-xs-12 col-sm-6">
                        <div class="input-wrap"><input type="radio" name="entrykommejanein" id="e1" value="Ja" required />
                        <label for="e1"><h3>Natürlich komme ich!</h3></label></div>
                    </div>
                    <div class="col-xs-12 col-sm-6">
                        <div class="input-wrap"><input type="radio" name="entrykommejanein" id="e2" value="Nein" required />
                        <label for="e2"><h3>Leider schaffe ich es nicht</h3></label></div>
                    </div>
                </div>
            </section>

            <!-- Name Gast -->
            <section id="secGast" class="modal-section">
                <div class= "row">
                    <div class="col-xs-12 col-sm-6 ">
                        <div class="form-group has-feedback">
                            <label for="gastVorname"><h2>Vorname</h2></label>
                            <input type="text" name="entryvorname" id="gastVorname"  class="form-control" required >
                            <!-- <small class="help-block" data-fv-validator="notEmpty" data-fv-for="guest-first-name" data-fv-result="NOT_VALIDATED" style="display: none;">First name is required</small> -->
                        </div>
                    </div>
                    <div class="col-xs-12 col-sm-6">
                        <div class="form-group has-feedback">
                            <label for="gastNachname"><h2>Nachname</h2></label>
                            <input type="text" name="entrynachname" id="gastNachname"  class="form-control" required >
                        </div>          
                    </div>
                </div>
            </section>

    </div>

    <!-- Modal Footer -->               
    <div class="modal-footer">
        <div class = "row">
            <div class="col-xs-6 mdlRMhide1">
                <button class="button btn btn-lg form-btn" type="submit"  value="Submit" >Abschicken</button>
            </div>  
            <div class="col-xs-12 mdlRMhide2" style="display:none">
                <button class="button btn btn-lg form-btn btnModalRMClose" data-dismiss="modal">Schließen</button>
            </div>                                      
        </div>              
    </div>                      

</form>

PHP:

<?php 
$myemail = 'mail@domain.com';

$kommejanein = $_POST['entrykommejanein'];
$vorname = $_POST['entryvorname']; 
$nachname = $_POST['entrynachname']; 

$to = $myemail; 
$email_subject = "Rückmeldung von $vorname $nachname : $kommejanein";
$email_body = "\n Teilnahme: $kommejanein \n Gast: $vorname $nachname";

$headers   = array();
$headers[] = "From: $myemail";
$headers[] = "Reply-To: $myemail";
$headers[] = "Content-type: text/plain; charset=utf-8";

mail($to,$email_subject,$email_body,implode("\r\n",$headers));

echo nl2br($email_body);
?>

2 个答案:

答案 0 :(得分:0)

可能是缺少开头的表格标签吗?使用var_dump($_POST)检查目标网页上的搜索结果。

答案 1 :(得分:0)

所以,我终于找到了问题,虽然我不太明白,为什么它在一个机器人上造成了麻烦而在另一个机器人上却没有,而不是在PC上......

取出后

onsubmit="this.reset();"

它适用于所有设备(到目前为止),并且公式内容将转发给PHP。