PHP变量中的PHP代码不工作
我试图创建一个变量$body,其中包含一个foreach语句。我正在将变量传递到邮件函数中。$body变量的foreach语句应该显示用户的购物车数据。我将$body变量放入邮件函数的原因是向我发送用户购物车产品的电子邮件,以便我可以查看他们从我的网站订购了什么。到目前为止,代码在Dreamweaver中不起作用,并以红色突出显示代码,这意味着代码以某种方式被破坏。我想不出这个问题 这是我的邮件功能的代码: 邮件$to、$subject、$body、$headers 这是我用于foreach语句的$body变量:PHP变量中的PHP代码不工作,php,sql,email,foreach,shopping-cart,Php,Sql,Email,Foreach,Shopping Cart,我试图创建一个变量$body,其中包含一个foreach语句。我正在将变量传递到邮件函数中。$body变量的foreach语句应该显示用户的购物车数据。我将$body变量放入邮件函数的原因是向我发送用户购物车产品的电子邮件,以便我可以查看他们从我的网站订购了什么。到目前为止,代码在Dreamweaver中不起作用,并以红色突出显示代码,这意味着代码以某种方式被破坏。我想不出这个问题 这是我的邮件功能的代码: 邮件$to、$subject、$body、$headers 这是我用于foreach语句
$body = ' if(isset($_SESSION["products"]))
{
$total = 0;
echo '<form method="post" action="PAYMENT-GATEWAY">';
echo '<ul>';
$cart_items = 0;
foreach ($_SESSION["products"] as $cart_itm)
{
$product_code = $cart_itm["code"];
$queryy = "SELECT TOP 1 product_name,product_desc, price FROM products WHERE product_code='$product_code'";
$results = mssql_query($queryy, $mysqli);
$obj = mssql_fetch_object($results);
echo '<li class="cart-itm">';
echo '<span class="remove-itm"><a href="cart_update.php?removep='.$cart_itm["code"].'&return_url='.$current_url.'">×</a></span>';
echo '<div class="p-price">'.$currency.$obj->price.'</div>';
echo '<div class="product-info">';
echo '<h3>'.$obj->product_name.' (Code :'.$product_code.')</h3> ';
echo '<div class="p-qty">Qty : '.$cart_itm["qty"].'</div>';
echo '<div>'.$obj->product_desc.'</div>';
echo '</div>';
echo '</li>';
$subtotal = ($cart_itm["price"]*$cart_itm["qty"]);
$total = ($total + $subtotal);
echo '<input type="hidden" name="item_name['.$cart_items.']" value="'.$obj->product_name.'" />';
echo '<input type="hidden" name="item_code['.$cart_items.']" value="'.$product_code.'" />';
echo '<input type="hidden" name="item_desc['.$cart_items.']" value="'.$obj->product_desc.'" />';
echo '<input type="hidden" name="item_qty['.$cart_items.']" value="'.$cart_itm["qty"].'" />';
$cart_items ++;
}
echo '</ul>';
echo '<span class="check-out-txt">';
echo '<strong>Total : '.$currency.$total.'</strong> ';
echo '</span>';
echo '</form>';
}else{
echo 'Your Cart is empty';
} ';
谢谢你的帮助。非常感谢所有帮助。使用ob\u get\u内容来正确设置$body变量 通过这种方式,您可以更自然地编写HTML/PHP/Javascript代码,而不是使用会导致大量调试问题的大字符串。然后,您可以在一行代码中更优雅地回送或使用输出 在我上面链接的php页面中,下面是它的用法示例:
<?php
ob_start();
echo "Hello ";
$out1 = ob_get_contents();
echo "World";
$out2 = ob_get_contents();
ob_end_clean();
var_dump($out1, $out2);
?>
试试这个没有测试过的
if(isset($_SESSION["products"]))
{
$total = 0;
$body = '<form method="post" action="PAYMENT-GATEWAY">';
$body.= '<ul>';
$cart_items = count($_SESSION["products"]);
foreach ($_SESSION["products"] as $cart_itm)
{
$product_code = $cart_itm["code"];
$queryy = "SELECT TOP 1 product_name,product_desc, price FROM products WHERE product_code='".$product_code."'";
$results = mssql_query($queryy, $mysqli);
$obj = mssql_fetch_object($results);
$body. = '<li class="cart-itm">';
$body. = '<span class="remove-itm"><a href="cart_update.php?removep='.$cart_itm["code"].'&return_url='.$current_url.'">×</a></span>';
$body. = '<div class="p-price">'.$currency.$obj->price.'</div>';
$body. = '<div class="product-info">';
$body. = '<h3>'.$obj->product_name.' (Code :'.$product_code.')</h3> ';
$body. = '<div class="p-qty">Qty : '.$cart_itm["qty"].'</div>';
$body. = '<div>'.$obj->product_desc.'</div>';
$body. = '</div>';
$body. = '</li>';
$subtotal = ($cart_itm["price"]*$cart_itm["qty"]);
$total = ($total + $subtotal);
$body. = '<input type="hidden" name="item_name['.$cart_items.']" value="'.$obj->product_name.'" />';
$body. = '<input type="hidden" name="item_code['.$cart_items.']" value="'.$product_code.'" />';
$body. = '<input type="hidden" name="item_desc['.$cart_items.']" value="'.$obj->product_desc.'" />';
$body. = '<input type="hidden" name="item_qty['.$cart_items.']" value="'.$cart_itm["qty"].'" />';
}
$body. = 'Cart Items: '.$cart_items;
$body. = '</ul>';
$body. = '<span class="check-out-txt">';
$body. = '<strong>Total : '.$currency.$total.'</strong> ';
$body. = '</span>';
$body. = '</form>';
}else{
$body = 'Your Cart is empty';
}
mail($to, $subject, $body, $headers);
首先,您需要添加到字符串的末尾。然后需要运行eval$body。然而,我认为您将有更好的运气将您的输出放入concat$body=first行的body变量中$正文=第二行;这将允许您运行php代码来确定要添加到正文中的内容,而不是尝试在正文字符串中运行php代码。DW未正确突出显示它的原因是,它将代码视为文本字符串,因为您已将其放在“标记”中。实际上,PHP对您来说是在这些之外的。在PHP中,“或”标记之间的任何内容都被视为自由文本,而不是代码。此外,请尽快停止使用Dreamweaver。说真的,Dreamweaver很棒。在我看来,这是给专业开发人员的。@Michael,事实并非如此。如果您想认真对待PHP开发,就不要使用Dreamweaver。很少有时候我会冒险对一个软件做出如此笼统的陈述,但它所编织的唯一东西就是沮丧。我不知道它怎么会不是这样。我认为这是一个可行的软件代码。我不仅仅是在开发PHP,我还在用CSS设计网站,并用HTML和JavaScript编码。你用什么软件?我认为它与其他的相比是非常先进的。不要连接大量的HTML,这是一个巨大的痛苦。