我对斜杠有点问题。我无法将我的Javascript代码转到json_decode,因为我认为斜杠是侵入性的。
这就是我所拥有的:
$str = stripslashes ($_POST['setImage']);
$setImage = mysql_escape_string($str);
if(json_decode($str) == NULL)
{
echo("not valid json!");
}else{
$imageUrls = json_decode($setImage);
}从这里抓取信息:
<img src="<?php echo $photo['picurl']; ?>" onclick='javascript: setCoverForSet(
{"photo_id": "<?php echo $photo['photo_id']; ?>",
"original": "<?php echo $photo['piclink']; ?>",
"thumbnail": "<?php echo $photo['picurl']; ?>"});'/>
<input type="text" value='{"photo_id": <?php echo $photo['photo_id']; ?>, "original": <?php echo $photo['piclink']; ?>, "thumbnail": <?php echo $photo['picurl']; ?>}' name="photos[]" />下面是我打印时输出的内容
{\"photo_id\": \"2\", \"original\": \"content/employees/1/1363556600bsmiles.jpg\", \"thumbnail\": \"content/employees/thumbs/1/thumb_1363556600bsmiles.jpg\"}引号必须在输入中,否则将无法正常工作。
谢谢你的帮助。
更新时间7:58东部标准时间03/22
我最终会将其发送到数据库中的一个表中。
下面是完整的语句:
$str = stripslashes ($_POST['setImage']);
$setImage = mysql_escape_string($str);
if(json_decode($str) == NULL)
{
echo("not valid json!");
}else{
$imageUrls = json_decode($setImage);
}
$photos = mysql_escape_string($_POST[photos]);
$piclink = print $imageUrls->{'thumbnail'};
$piclurl = print $imageUrls->{'original'};
$title = mysql_escape_string($_POST[title]);
$firstname = mysql_escape_string($_POST[firstname]);
$lastname = mysql_escape_string($_POST[lastname]);
$todaysdate = date("Y-m-d");
mysql_query("UPDATE staff SET title = '".$title."', staff_firstname = '".$firstname."',
staff_lastname = '".$lastname."',
piclink = '".$piclink."',
picurl = '".$picurl."',
last_update = '".$todaysdate."' WHERE staff_id = $EID") or die(mysql_error());我唯一能想到的就是额外的斜杠干扰了json_decode。我只放入echo语句,这样我就可以看到在post之后传递了什么。
当我像这样做mysql_escape_string的时候,我确实尝试过去掉斜杠:
$setImage = mysql_escape_string(stripslashes ($_POST['setImage']));但得到的结果是一样的。
发布于 2013-03-23 22:22:21
我搞清楚了,以防有人感兴趣。
我去掉了mysql_escape_string,去掉了斜杠。但仍然使用了条形斜杠。
我还从解码区删除了print语句。现在一切都正常了,它将字符串返回到数据库中它应该在的位置。
下面是新的代码:
$setImage = stripslashes ($_POST['setImage']);
if(json_decode($setImage) == NULL)
{
echo("not valid json!");
}else{
$imageUrls = json_decode($setImage);
}
$photos = mysql_escape_string($_POST[photos]);
$piclink = $imageUrls->{'thumbnail'};
$picurl = $imageUrls->{'original'};
$title = mysql_escape_string($_POST[title]);
$firstname = mysql_escape_string($_POST[firstname]);
$lastname = mysql_escape_string($_POST[lastname]);
$todaysdate = date("Y-m-d");
mysql_query("UPDATE staff SET title = '".$title."', staff_firstname = '".$firstname."',
staff_lastname = '".$lastname."',
piclink = '".$piclink."',
picurl = '".$picurl."',
last_update = '".$todaysdate."' WHERE staff_id = $EID") or die(mysql_error());
echo "<b><font color='#999999'> Staff edit succeeded</font></b><br />";发布于 2013-03-23 05:18:22
简单地使用正则表达式并删除所有不需要的符号对你来说更有效,
https://stackoverflow.com/questions/15579955
复制相似问题