隐藏php邮件脚本中的空/未使用字段[关闭]

问题描述 投票:0回答:1
我正在使用自定义控件选项来填写通过php邮件提交的订单。并非所有项目都取决于项目。我可以清理未使用的字段吗?附件是我的PHP,并输出。

<?php $name = $_POST['name']; $email = $_POST['email']; $phone = $_POST['phone']; $holster = $_POST['holster']; $clip = $_POST['clip']; $snap = $_POST['snap']; $muzzle = $_POST['muzzle']; $mouth = $_POST['mouth']; $shirtguard = $_POST['shirtguard']; $modwing = $_POST['modwing']; $darkwing = $_POST['darkwing']; $mega = $_POST['mega']; $bearing = $_POST['bearing']; $message = $_POST['message']; $straps = $_POST['straps']; $buckle = $_POST['buckle']; $color = $_POST['color']; $length = $_POST['length']; $tankerhardware = $_POST['tankerhardware']; $beltwidth = $_POST['beltwidth']; $formcontent=" From: $name \n Phone: $phone \n Email: $email \n Holster: $holster \n Shirtguard: $shirtguard \n Reinforced Mouth: $mouth \n Sewn Muzzle: $muzzle \n Clip Preference : $clip \n Snap : $snap \n Modwing: $modwing \n Darkwing: $darkwing \n Mega: $mega \n Light Bearing info: $bearing \n Stomach/Back Straps: $straps \n Include Extra Tanker Hardware: $tankerhardware \n Belt Width: $beltwidth \n Belt Length: $length \n Buckle: $buckle \n Belt Color: $color \n Message: $message"; $to = "[email protected]"; $subject = "Order Inquiry"; $mailheader = "From: $email \r\n"; mail($to, $subject, $formcontent , $mailheader) ;

[发自:Josh电话:34324353电子邮件:[email protected]皮套:射击者腰带衬衫护罩:增强的嘴巴:缝制的枪口:剪辑偏好:捕捉:调整:暗翼:兆丰:胃/后背带:包括额外的油轮硬件:皮带宽度:1.5腰带长度:45搭扣:缎面不锈钢腰带颜色:棕色轻型轴承信息:信息:
php email hide
1个回答
0
投票
代替单独检查每个值,循环会更优雅。

定义邮件中的描述和$_POST数组中的键:

$inputs = array ( array("Name:", "name"), array("E-Mail:", "email"), array("Phone:", "phone"), array("Holster:", "holster") ... );

循环通过$inputs数组:

for($i = 0; $i < count($inputs); $i++) { ... }

检查$_POST数组中的每个值:

if($_POST[$inputs[$i][1]] != "") { // $_POST["name"] => $_POST["email"] => ... // In this case $_POST[$inputs[$i][1]] is not empty }

现在放在一起:

$inputs = array ( array("Name:", "name"), array("E-Mail:", "email"), array("Phone:", "phone"), array("Holster:", "holster") ... ); $formcontent = ""; for($i = 0; $i < count($inputs); $i++) { if($_POST[$inputs[$i][1]] != "") { $formcontent .= $inputs[$i][0] . " " . $_POST[$inputs[$i][1]] . "\n"; } } // and now your code... $to = "[email protected]"; $subject = "Order Inquiry"; $mailheader = "From: $email \r\n"; mail($to, $subject, $formcontent , $mailheader) ;

安全说明:您的代码已对攻击开放。未经验证,切勿使用用户输入。仅检查用户输入是否为空是危险的。例如,我可以输入JavaScript作为用户输入,然后通过电子邮件发送。
© www.soinside.com 2019 - 2024. All rights reserved.