Facebook как кнопка игнорировать параметры URL

Я пытаюсь любить свою страницу, но параметры 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=======--> 

(Превращение цепи комментариев в потенциальный ответ)

Я действительно не думаю, что вы поняли. Посмотрите URL-адрес, используемый в iframe:

 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 с полуколониями. Я не уверен, где вы получили эту идею.)

Перейдите на эту страницу и проверьте ссылку на кнопку, показанную на рисунке ниже:

введите описание изображения здесь

Вы щелкните правой кнопкой мыши и осмотрите его. Ты видишь:

введите описание изображения здесь

Вы видите, что это urlencode'd . И рассуждение очень хорошо объяснено Дэвидом 🙂