Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
购物车的PHP电子邮件未由循环填充_Php_Function_Email_Foreach - Fatal编程技术网

购物车的PHP电子邮件未由循环填充

购物车的PHP电子邮件未由循环填充,php,function,email,foreach,Php,Function,Email,Foreach,我想做的是从一个网站生成一个购物车,并让它通过电子邮件发送。当我运行代码时,该函数会在页面上运行,不会通过电子邮件发送,但会正确显示。我无法将函数的输出存储到将在电子邮件中工作的变量中。这是我的密码 function emailcartview() { $total=0; $totalvalue=0; foreach($_SESSION as $name => $value) { if ($value>0){ if (substr($name, 0, 5)==

我想做的是从一个网站生成一个购物车,并让它通过电子邮件发送。当我运行代码时,该函数会在页面上运行,不会通过电子邮件发送,但会正确显示。我无法将函数的输出存储到将在电子邮件中工作的变量中。这是我的密码

function emailcartview() {
$total=0;
$totalvalue=0;
foreach($_SESSION as $name => $value) {
    if ($value>0){
        if (substr($name, 0, 5)=='cart_'){
            $id = substr($name, 5, (strlen($name)-5));
            $get = mysql_query('SELECT id, name, cost, item_number FROM mydbname WHERE id='.mysql_real_escape_string((int)$id));


            $cart = array();
            while ($get_row = mysql_fetch_assoc($get)) {
                $cart[] = array(
                'hsid' => $get_row['id'],
                'cost' => $get_row['cost'],
            $cost = $get_row['cost'],
                'itemno' => $get_row['item_number'],
                'name' => $get_row['name'],
                'value' => $value,
                $sub = $value*$cost,
                $total += $sub,
                $totalvalue = $value,
                'realsub' => number_format($sub, 2),
                );

                }
                foreach($cart as $index => $record){
                    global $emailcart;
                    $emailcart = "Item: {$record['itemno']} - {$record['name']} | Qty: {$record['value']} | Cost: {$record['cost']} x {$record['value']} = {$record['realsub']} <br>";
                    echo $emailcart;


            }

        }

    }

}
echo "Total : $".number_format($total, 2);
 }


$emailSubject = 'Invoice Submission';
$webMaster = 'my_email@blahblah.com';


$companyName = $_POST['companyname'];
$contactName = $_POST['contactname'];
$contactEmail = $_POST['contactemail'];
$teleNumber = $_POST['telenumber'];
$billAddr = $_POST['billaddr'];
$shipAddr = $_POST['shipaddr'];
$neededBy = $_POST['neededby'];
$cartprint .= emailcartview();

$body = "
<br><hr><br>
Company Name: $companyName <br>
Contact Name: $contactName <br>
Contact Email: $contactEmail <br>
Telephone Number: $teleNumber <br>
Billing Address: $billAddr <br>
Shipping Address: $shipAddr <br>
Date Needed: $neededBy <br> <br>
<br><hr><br>
$cartprint";

$headers = "From: ordersubmission@blahblah.com\r\n";
$headers .= "Content-type: text/html\r\n";
$success = mail($webMaster, $emailSubject, $body, $headers);

 ?>
函数emailcartview(){
$total=0;
$totalvalue=0;
foreach($\会话为$name=>$value){
如果($value>0){
如果(substr($name,0,5)='cart_u2;'){
$id=substr($name,5,(strlen($name)-5));
$get=mysql\u query('SELECT id,name,cost,item\u number FROM mydbname WHERE id='。mysql\u real\u escape\u string((int)$id));
$cart=array();
而($get\u row=mysql\u fetch\u assoc($get)){
$cart[]=数组(
'hsid'=>$get_行['id'],
“成本”=>$get_行[“成本”],
$cost=$get_行['cost'],
'itemno'=>$get_行['item_number'],
'name'=>$get_行['name'],
“值”=>$value,
$sub=$value*$cost,
$total+=$sub,
$totalvalue=$value,
“realsub”=>数字_格式($sub,2),
);
}
foreach($cart as$index=>$record){
全球$emailcart;
$emailcart=“项目:{$record['itemno']}-{$record['name']}数量:{$record['value']}}成本:{$record['Cost']}x{$record['value']}={$record['realsub']}
”; echo$emailcart; } } } } echo“总计:$”.number_格式($Total,2); } $emailSubject='发票提交'; $webMaster='my_email@blahblah.com'; $companyName=$_POST['companyName']; $contactName=$\u POST['contactName']; $contactEmail=$_POST['contactEmail']; $teleNumber=$_POST['teleNumber']; $billAddr=$_POST['billAddr']; $shipAddr=$_POST['shipAddr']; $neededBy=$_POST['neededBy']; $cartprint.=emailcartview(); $body=”


公司名称:$companyName
联系人姓名:$contactName
联系人电子邮件:$contactEmail
电话号码:$teleNumber
账单地址:$billAddr
发货地址:$shipAddr
所需日期:$needBy




$cartprint”; $headers=“From:ordersubmission@blahblah.com\r\n“; $headers.=“内容类型:text/html\r\n”; $success=mail($webMaster、$emailSubject、$body、$headers); ?>
可能有相当多的奇怪的东西,我尝试过,但没有工作的残余,不是最干净的。任何帮助都将不胜感激


Tylor。

在函数emailcartview中,您需要生成字符串而不是echo语句,并且在函数末尾,您应该返回该字符串

检查以下代码:

function emailcartview() {
$total=0;
$totalvalue=0;
$str = '';
foreach($_SESSION as $name => $value) {
    if ($value>0){
        if (substr($name, 0, 5)=='cart_'){
            $id = substr($name, 5, (strlen($name)-5));
            $get = mysql_query('SELECT id, name, cost, item_number FROM mydbname WHERE id='.mysql_real_escape_string((int)$id));


            $cart = array();
            while ($get_row = mysql_fetch_assoc($get)) {
                $cart[] = array(
                'hsid' => $get_row['id'],
                'cost' => $get_row['cost'],
            $cost = $get_row['cost'],
                'itemno' => $get_row['item_number'],
                'name' => $get_row['name'],
                'value' => $value,
                $sub = $value*$cost,
                $total += $sub,
                $totalvalue = $value,
                'realsub' => number_format($sub, 2),
                );

                }
                foreach($cart as $index => $record){
                    global $emailcart;
                    $str. = "Item: {$record['itemno']} - {$record['name']} | Qty: {$record['value']} | Cost: {$record['cost']} x {$record['value']} = {$record['realsub']} <br>";

            }

        }

    }


}
$str. = "Total : $".number_format($total, 2);
return $str;
 }


$emailSubject = 'Invoice Submission';
$webMaster = 'my_email@blahblah.com';


$companyName = $_POST['companyname'];
$contactName = $_POST['contactname'];
$contactEmail = $_POST['contactemail'];
$teleNumber = $_POST['telenumber'];
$billAddr = $_POST['billaddr'];
$shipAddr = $_POST['shipaddr'];
$neededBy = $_POST['neededby'];
$cartprint .= emailcartview();

$body = "
<br><hr><br>
Company Name: $companyName <br>
Contact Name: $contactName <br>
Contact Email: $contactEmail <br>
Telephone Number: $teleNumber <br>
Billing Address: $billAddr <br>
Shipping Address: $shipAddr <br>
Date Needed: $neededBy <br> <br>
<br><hr><br>
".emailcartview();

$headers = "From: ordersubmission@blahblah.com\r\n";
$headers .= "Content-type: text/html\r\n";
$success = mail($webMaster, $emailSubject, $body, $headers);

 ?>
函数emailcartview(){
$total=0;
$totalvalue=0;
$str='';
foreach($\会话为$name=>$value){
如果($value>0){
如果(substr($name,0,5)='cart_u2;'){
$id=substr($name,5,(strlen($name)-5));
$get=mysql\u query('SELECT id,name,cost,item\u number FROM mydbname WHERE id='。mysql\u real\u escape\u string((int)$id));
$cart=array();
而($get\u row=mysql\u fetch\u assoc($get)){
$cart[]=数组(
'hsid'=>$get_行['id'],
“成本”=>$get_行[“成本”],
$cost=$get_行['cost'],
'itemno'=>$get_行['item_number'],
'name'=>$get_行['name'],
“值”=>$value,
$sub=$value*$cost,
$total+=$sub,
$totalvalue=$value,
“realsub”=>数字_格式($sub,2),
);
}
foreach($cart as$index=>$record){
全球$emailcart;
$str.=“物料:{$record['itemno']}-{$record['name']}数量:{$record['value']}}成本:{$record['Cost']}x{$record['value']}={$record['realsub']}
”; } } } } $str.=“总计:$”。数字格式($Total,2); 返回$str; } $emailSubject='发票提交'; $webMaster='my_email@blahblah.com'; $companyName=$_POST['companyName']; $contactName=$\u POST['contactName']; $contactEmail=$_POST['contactEmail']; $teleNumber=$_POST['teleNumber']; $billAddr=$_POST['billAddr']; $shipAddr=$_POST['shipAddr']; $neededBy=$_POST['neededBy']; $cartprint.=emailcartview(); $body=”


公司名称:$companyName
联系人姓名:$contactName
联系人电子邮件:$contactEmail
电话号码:$teleNumber
账单地址:$billAddr
发货地址:$shipAddr
所需日期:$needBy




“.emailcartview(); $headers=“From:ordersubmission@blahblah.com\r\n“; $headers.=“内容类型:text/html\r\n”; $success=mail($webMaster、$emailSubject、$body、$headers); ?>
当我尝试返回行时,它只发送第一个项……据我所知,它以某种方式以return命令结束循环……你能解释一下我是如何做到的吗?这几乎是完美的!!我现在唯一的问题是,我不能得到总回报也,我只能使用一个回报?这是您在返回上面注释掉的代码。我在字符串中添加了总计。。看吧,我现在可以张开嘴吻你了!非常感谢你的帮助!