2017-04-18 80 views
-1

后,我的客户下订单,我送使用下面的代码的电子邮件确认,但我想,以防止PHPSESSID被包含在此电子邮件:不支持电子邮件PHPSESSID

$body = ""; 
    foreach ($_REQUEST as $Field=>$Value) { 
    if($Value != ''){ 
    $body .= "$Field: $Value\n\n"; 
    } 
    } 

在PHP文件的顶部,我有一个关于会话ID以下

<?php session_start(); ?> 
<?php if (!isset($_SESSION['id'])) : ?> 

不知何故,这必须创建一个PHPSESSID场,这是获得由我的身体$代码拿起一个值。

电子邮件输出产生如下所示:

_fname: Mark 
_lname: Smith 
_Address_1: South St 
_Phone: 123-456-7890 
_email: [email protected] 
_Date_Needed: 4/19/17 
B1: Submit 
PHPSESSID: (some string of characters) 

有趣的是,B1提交和PHPSESSID都没有,我现在用的变量,但代码是找到这些值,并将其送回。 B1提交是一个恼人的,但我认为PHPSESSID是一个可能的安全风险。

我使用$ _REQUEST从用户获取表单数据如下:

$_fname=$_REQUEST['_fname']; 
$_lname=$_REQUEST['_lname']; 
$_Address_1=$_REQUEST['_Address_1']; 

也许我应该改变,从$ _REQUEST至$ _GET,然后使用$ _GET在邮件生成呢?

+0

哪个是PHPSESSID?没有代码来支持这个问题。 –

+0

停止使用'$ _REQUEST' – nogad

+0

@nogad - 谢谢。但是,我应该用什么来代替? – Bricked

回答

1

如果你的形式也越来越POST数据,然后只将其更改为:如果它使用GET数据

foreach ($_POST as $Field=>$Value) { 
    if($Value != ''){ 
     $body .= "$Field: $Value\n\n"; 
    } 
} 

,将其更改为的$_GET代替$_POST

+0

谢谢大家的建议。到目前为止使用$ _POST解决了这个问题。我试过$ _GET,但是虽然解决了这个问题,但它也终止了所有输出。我也尝试了session_destroy(),但那没什么影响。 $ _POST是解决方案。谢谢 – Bricked

1

问题可能在于使用$ _REQUEST而不是$ _POST或$ _GET,具体取决于您的表单/标头行为。这就是说我会猜测,因为你正在使用$ _REQUEST,所以你没有对发送的数据做任何卫生处理。这可能会导致您的邮件系统被垃圾邮件发送者劫持,导致您的邮件被添加到反垃圾邮件黑名单中。您可能需要阅读正确保护邮件系统或使用涵盖这些问题的第三方库。

会话ID由session_start()生成或重新生成/恢复;

+0

感谢您的意见 - 关于“消毒”我验证用户输入删除换行符和逗号。我还验证了电子邮件/电话条目的正确格式,并确保所有数据输入字段都是数字数据输入。根据您对反垃圾邮件发送者的担忧,这是否足够“卫生”? – Bricked

+0

帕特里克 - 请看我更新的问题。我使用$ _REQUEST获取表单数据。也许这是问题的一部分。 – Bricked

+0

会话ID不包含在get或post中,它是cookie数据的一部分。 Request是所有标题参数的组合,不仅仅是那些在表单中使用的参数,因此它被包含在内。 –

0

您提交的声音就像是与输入一个值。

您可以使用一个没有任何值的提交类型的按钮。

下面是一个例子,这里的按钮将不会出现在输出了起来:

旁注:我这里使用POST方法。如果这不能解决问题,我会简单地删除它。

<?php 

$body = ""; 
    foreach ($_REQUEST as $Field=>$Value) { 
    if($Value != ''){ 

    $body .= "$Field: $Value\n\n"; 

    // ... 

    } 
    } 

?> 

<form method="post"> 

    abc1: 
    <input name="abc1" value="abc1a" type="text"> 
    <br> 

    abc2: 
    <input name="abc2" value="abc2a" type="text"> 
    <br> 

    abc3: 
    <input name="abc3" value="abc3a" type="text"> 
    <br> 

    abc4: 
    <button name="abc4" type="submit">SUBMIT</button> 

</form> 
相关问题