-4

我正在尝试喜欢我的页面,但 url 参数被忽略

这是我的代码:

<style type="text/css">
.float-all {
    float: left;
    width: 82px;
    height: 30px;
    overflow: hidden;
    margin: 2px;
    padding: 4px 2px;
}
.post-btn-share {
    width: 100%;
    overflow: auto;
}

    <link rel="canonical" href="http://mypage.com/view_photo.php" />
    </head>
 <div class="post-btn-share">
<div class="addthis_toolbox addthis_default_style">
    <div class="float-all">
 <iframe src="http://www.facebook.com/plugins/like.php?href=http://mypage.com/view_photo.php?       img=32&user=1&xx=&send=true&layout=standard&width=300&show_faces=true&action=like&colorscheme=light&font&height=80" frameborder="0" style="border:none;" scrolling="no" width="320" height="240"></iframe>
    <div class="float-all">

    </div>
    <div class="float-all">

    </div>
</div>

和 view_photo 代码

<?php 
    session_start();

?>

<div class="dev-ajuste">
<?php 

    require_once('script/require_raiz.php');
    $login = new login();
    $login->log_isset();
    //$login->info_user();
    $janela = new Janelas('script/system/config.ini','perfil');
    $janela->info_visualiza_foto($_GET['img'],$_GET['user']);
?>
</div>
 <!--=======Cabeçalho e chamadas de scripts do documento=======-->
<?php include_once("head.php"); ?>
 <!--=======Barra de navegação=======-->
<?php include_once("navbar.php"); ?>
<div id="janela" class="perfil"></div>
<div id="info"   class="<?php echo $_GET['user'];?>"></div>

 <!--=======Header=======-->
<?php include_once('box_foto.php'); ?>

    <!--=======Propaganda=======-->
    <?php include('addsense.php');?>

    <!--=======Área dos posts=======-->
     <?php include('post_area.php');?>

 <!--=======Rodapé do documento=======-->
<?php include_once("footer.php"); ?>
 <!--=======Seguranca de Login=======-->
4

2 回答 2

1

(将评论链变成潜在答案)

我真的不认为你已经明白了。查看 iframe 中使用的 URL:

http://www.facebook.com/plugins/like.php?href=http://mysite.com/view_photo.php?img=34&user=1&xx=&;send=true&;layout=standard&;width=300&;show_faces=true&;action=like&;colorscheme=light&;font&;height=80

在 URL 中,发送到资源的参数从?字符开始。但是你有两个?角色。参数是从第一个还是第二个开始?解析器无法知道。当&遇到 a 时,是分隔外部 URL 的参数(第一个?),还是一个包含在内部 URL 中的参数(第二个?)?解析器无法知道。

格式需要是这样的:

http://someresource?parameter1&parameter2&etc

如果其中一个参数也是具有自己参数的 URL,则需要对整个参数进行 URL 编码,以免混淆用作参数的 URL 的其余部分。任何解析器都必须能够清楚地识别内部 URL 的内容和外部 URL 的内容。当它需要使用它时,它会为你对内部进行 URL 解码。

PHP 提供了一个函数来做到这一点。 JavaScript 也是如此。你可以使用任何你想要的。您所要做的就是将要编码的字符串传递给它(这将是您的内部 URL,带有任何需要转到该 URL 的参数),它将返回编码的字符串(这将是发送到您的外部 URL 的参数)。

(另外,为什么你有所有这些分号?你没有用分号分隔 URL 参数。我不确定你从哪里得到这个想法。)

于 2013-04-17T12:54:33.433 回答
0

转到此页面并检查下图中显示的“赞”按钮的链接:

在此处输入图像描述

您右键单击并检查它。你看:

在此处输入图像描述

您会看到它是urlencode'd。大卫很好地解释了这个推理:)

于 2013-04-17T12:34:07.410 回答