
本文针对使用PHP构建联系表单时常见的三个问题提供详细的解决方案:如何突破2MB的附件大小限制,实现在表单中添加额外的电话号码字段,以及在邮件成功发送后自动重置表单。通过本文,你将学习到修改PHP配置、扩展表单功能以及利用AJAX实现表单重置的方法,从而构建更完善的用户体验。
增大附件上传限制
虽然服务器的 php.ini 文件已经配置了较大的上传限制(例如32MB),但表单仍然只能上传2MB的文件,这通常是由于以下原因:
- post_max_size 设置过小: post_max_size 限制了整个POST请求的大小,包括表单数据和上传的文件。如果 post_max_size 小于 upload_max_filesize,则实际生效的是 post_max_size。
- .htaccess 文件覆盖了 php.ini 设置: 某些主机允许在 .htaccess 文件中覆盖 php.ini 的设置。检查 .htaccess 文件中是否存在限制上传大小的配置。
解决方法:
首先,确认当前的 upload_max_filesize 和 post_max_size 的值。可以将以下代码添加到 index.php 文件的末尾,在 </body> 标签之前:
立即学习“PHP免费学习笔记(深入)”;
<?php
echo "<!-- upload_max_filesize=" . ini_get('upload_max_filesize') . ", post_max_size=" . ini_get('post_max_size') . "-->";
?>
刷新网页,查看源代码,就能看到这两个参数的值。如果 post_max_size 小于 upload_max_filesize,则需要修改 post_max_size 的值。
修改 php.ini 文件,将 upload_max_filesize 和 post_max_size 设置为合适的值。例如,要允许上传最大为10MB的文件,可以设置为:
upload_max_filesize = 10M post_max_size = 10M
如果无法直接修改 php.ini 文件,可以尝试在 .htaccess 文件中添加以下内容:
php_value upload_max_filesize 10M php_value post_max_size 10M
注意: 修改配置后,需要重启Web服务器才能生效。
添加电话号码字段
要在联系表单中添加电话号码字段,并将其包含在发送的邮件中,需要进行以下步骤:
-
修改HTML表单: 在 index.php 文件中,添加电话号码的HTML输入框:
<div> <label>Telefon</label> <span id="userPhone-info" class="info"></span><br/> <input type="text" name="userPhone" id="userPhone" class="demoInputBox"> </div>
登录后复制 -
修改JavaScript验证: 在 index.php 文件的JavaScript代码中,添加电话号码的验证:
if(!$("#userPhone").val().match(/[0-9]/)) { $("#userPhone-info").html("(invalid)"); $("#userPhone").css('background-color','#FF5A5A'); valid = false; }登录后复制 -
修改PHP邮件发送代码: 在 contact_mail.php 文件中,将电话号码添加到邮件内容中。关键在于,原始代码中使用了两个 MsgHTML 覆盖了邮件内容,需要将电话号码和消息内容合并到一个 MsgHTML 调用中。
$mail->MsgHTML( 'Telefon: ' . $_POST["userPhone"] . "<br>Poruka: " . $_POST["content"] );
登录后复制建议使用 HTML 换行符 <br> 或者文本换行符 /n 来分隔电话号码和消息内容,以便更好地显示在邮件中。
表单成功发送后重置
为了在邮件成功发送后自动重置表单,可以在AJAX的 success 回调函数中添加表单重置代码。
在 index.php 文件中,找到 success 函数:
success: function(data){
$("#mail-status").html(data);
$('#loader-icon').hide();
}
添加以下代码以重置表单:
success: function(data){
$("#mail-status").html(data);
$('#loader-icon').hide();
$('#frmContact').trigger("reset");
}
$(‘#frmContact’).trigger(“reset”); 这行代码会触发表单的 reset 事件,从而将表单的所有输入框重置为空。
总结:
通过以上步骤,你可以解决PHP联系表单中常见的附件大小限制、添加字段和表单重置问题。关键在于理解PHP配置、JavaScript验证和AJAX回调函数的使用。请务必根据你的实际情况修改代码,并进行充分的测试,以确保表单能够正常工作。
以上就是解决PHP联系表单常见问题:附件大小限制、添加字段与表单重置的详细内容,更多请关注php中文网其它相关文章!


