我有一个购物车 php 页面,在其中显示客户产品。在同一页面中,我有一个表格,可以将客户的个人详细信息(例如姓名等)以及产品信息(例如产品名称、数量等)直接发送到我的电子邮件地址。
现在的问题是,当我发送表单时,我的电子邮件地址会收到所有信息,但不会收到产品详细信息,例如在我有 ARRAY 的订单电子邮件中的产品名称字段上。
我看到将数组转换为字符串时出现问题,但我不知道如何,我尝试了一些示例,但没有一个起作用。下面我放了我认为是我的问题的代码。
echo '<input type="text" name="name1" id="name1">';
echo '<input type="email" name="email1" id="email1">';
echo '<input type="hidden" name="product_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 '<input type="submit" value="submit">';
function clean_string($string) {
$bad = array("content-type", "bcc:", "to:", "cc:", "href");
return str_replace($bad, "", $string);
$product_name_string = implode(" ", $cart_items);
}
$email_message .= "Nume: " . clean_string($name1) . "\n";
$email_message .= "E-mail: " . clean_string($email1) . "\n";
$email_message .= "Cos: " . clean_string($product_name_string) . "\n";
您可以使用
serialize()
,您也可以使用 implode()
功能另一个不错的选择是 http_build_query
基本 PHP:字符串上下文中使用的数组只是字面意思
Array
。
例如
$foo = array('a', 'b', 'c');
echo $foo;
将打印单词
Array
,而不是 a,b,c
或其他内容。
您告诉 PHP 您的输入字段将被视为数组:
<input type="text" name="item_code[foo]" ...
^---^----
所以
$_POST['item_code']
本身就是一个数组。如果您希望这些数组的内容出现在您的电子邮件中,请使用以下内容:
$item_codes = implode(',', $_POST['item_code']);