清理字符串的函数将我的数据视为数组

问题描述 投票:0回答:2

我有一个购物车 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";
php arrays string
2个回答
1
投票

您可以使用

serialize()
,您也可以使用
implode()
功能另一个不错的选择是
http_build_query


0
投票

基本 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']);
© www.soinside.com 2019 - 2024. All rights reserved.