如何通过电子邮件发送$ _SESSION变量

时间:2013-11-17 15:49:51

标签: php email session

我有一个功能,向用户显示他已添加到购物车中的产品。在这个函数中,我只是回显所有的$ _SESSION数据。问题是我想通过电子邮件发送所有$ _SESSION数据。我无法将函数存储在变量中并使用简单的$ message = $函数,因为在电子邮件中我没有显示任何内容。所以我的问题是:发送$ _SESSION数据的最简单方法是什么?

我使用此代码显示php文件中的所有会话:

 function cart_summary() {
foreach($_SESSION as $name => $value) {
    if ($value>0) {
        if (substr($name, 0, 5)=='cart_') {
            $id = substr($name, 5, (strlen($name)-5));
            $id2 = mysql_real_escape_string((int)$id);
            $get_colour_size_category = "SELECT * FROM products WHERE id='$id2'";
            $result_colour_size_category = mysql_query($get_colour_size_category);

            while ($get_colour_size_category_row = mysql_fetch_assoc($result_colour_size_category)) {
                $get_webshop_category = $get_colour_size_category_row['webshop_category'];
                $get_webshop_category2 = mysql_real_escape_string((int)$get_webshop_category);
                $get_name_and_price = "SELECT * FROM webshop_categories WHERE id='$get_webshop_category2'";
                $result_name_and_price = mysql_query($get_name_and_price);
                $row_name_and_price = mysql_fetch_assoc($result_name_and_price);
                $sub = $row_name_and_price['price'] *$value; 
                echo '<tr><td>'. $row_name_and_price['ev_name'] .'&nbsp;'. $get_colour_size_category_row['colour'].'&nbsp;'. $get_colour_size_category_row['size'].'</td><td class="value">&nbsp;'. $value .'&nbsp; </td><td> &euro;'.number_format($row_name_and_price['price'], 2).'</td><td> &euro;'.number_format($sub, 2).'</td><td></td></tr>';


            }
            ?><?

        }
        $total += $sub;
    }

}

我想通过电子邮件发送此

的输出

2 个答案:

答案 0 :(得分:0)

最简单的方法是使用print_r()存储$_SESSION数组的输出(通过使用可选参数返回信息,而不是打印信息):

$session_data = print_r($_SESSION, TRUE);

现在它是一个包含所有会话数据的字符串,您可以随意使用它。

答案 1 :(得分:0)

通过执行以下操作来管理将$ _SESSION数据放入电子邮件中:

function cart_summary() {
$message = "";
 foreach($_SESSION as $name => $value) {
if ($value>0) {
    if (substr($name, 0, 5)=='cart_') {
        $id = substr($name, 5, (strlen($name)-5));
        $id2 = mysql_real_escape_string((int)$id);
        $get_colour_size_category = "SELECT * FROM products WHERE id='$id2'";
        $result_colour_size_category = mysql_query($get_colour_size_category);

        while ($get_colour_size_category_row = mysql_fetch_assoc($result_colour_size_category)) {
            $get_webshop_category = $get_colour_size_category_row['webshop_category'];
            $get_webshop_category2 = mysql_real_escape_string((int)$get_webshop_category);
            $get_name_and_price = "SELECT * FROM webshop_categories WHERE id='$get_webshop_category2'";
            $result_name_and_price = mysql_query($get_name_and_price);
            $row_name_and_price = mysql_fetch_assoc($result_name_and_price);
            $sub = $row_name_and_price['price'] *$value; 
            $message .= '<tr><td>'. $row_name_and_price['ev_name'] .'&nbsp;'. $get_colour_size_category_row['colour'].'&nbsp;'. $get_colour_size_category_row['size'].'</td><td class="value">&nbsp;'. $value .'&nbsp; </td><td> &euro;'.number_format($row_name_and_price['price'], 2).'</td><td> &euro;'.number_format($sub, 2).'</td><td></td></tr>';


        }
        ?><?

    }
    $total += $sub;
}
  return $message
 }

在我这样做之后,我能够用

通过电子邮件发送函数的输出
  $message .= cart_email() . "\n";