【问题标题】:HTML form submits empty variables on mobile phones but works fine on pc browsersHTML表单在手机上提交空变量但在PC浏览器上工作正常
【发布时间】:2017-08-23 07:49:39
【问题描述】:

在网站设计方面,我还是个新手,但我设法使用 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);
?>

【问题讨论】:

    标签: php html forms mobile submit


    【解决方案1】:

    会不会是缺少打开的表单标签?使用var_dump($_POST) 检查目标页面上的结果。

    【讨论】:

    • 感谢您的快速回答。表单标签在那里,但我在我的问题中弄乱了格式。我刚改了。
    【解决方案2】:

    所以,我终于找到了问题所在,虽然我不太明白,为什么它在一个android上引起了麻烦,而在另一个android上却没有,在PC上却没有......

    取出后

    onsubmit="this.reset();"
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-24
      • 1970-01-01
      相关资源
      最近更新 更多