如果用户插入这个数据16“家用站风扇AA070021A输出应该是相同的这个16”户站风扇AA070021A,但我只得到这个输出16\户站风扇AA070021A,引号变成"\“。
在此之前:
16\家用立式风扇AA070021A
之后:
16英寸家用立式风扇AA070021A
add_to_quote.php?product_name=16" HOUSEHOLD STAND FAN AA070021A
<?php
$product_name_1 = $_GET['product_name'];
$product_name_2 = str_replace('"', "", $product_name_1);
$product_name = preg_replace(array('/\s{2,}/', '/[\t\n]/'), ' ', $product_name_2);
echo $product_name;
?>发布于 2012-06-11 04:51:35
将urlencode()添加到链接中:
<a href="add_to_quote.php?product_name=<?php echo urlencode($product_name) ?>">Add To Quote</a>发布于 2012-06-11 04:58:29
关于您的代码,我有不止一个评论:
1-消毒你的投入。而不是:
$product_name_1 = $_GET['product_name'];用途:
$product_name_1 = mysql_real_escape_string(stripslashes($_GET['product_name']));至于引号,我使用的方法之一是使用base64_encode()方法,也是最简单的方法之一。
下面是一个示例(取自您的代码,但变量的处理方式不同):
add_to_quote.php?product_name=16“家用站扇AA070021A”
<?php
$product_name_1 = $product_name_1 = htmlentities($_GET['product_name']);
$product_name_2 = base64_encode($product_name_1);
echo $product_name_2 . "<br />";
$product_name_3 = base64_decode($product_name_2);
echo $product_name_3;
?>在这种情况下,base64_encode()和base64_decode()是非常棒的功能。
发布于 2012-06-11 04:48:17
改变:
$product_name = preg_replace(array('/\s{2,}/', '/[\t\n]/'), ' ', $product_name_2);至:
$product_name = preg_replace(array('/\s{2,}/', '/[\t\n]/'), ' ', $product_name_1);为我工作过。
https://stackoverflow.com/questions/10974537
复制相似问题