Отправка параметров с помощью ссылки на Facebook

У меня есть ссылка для публикации в Facebook, в которую я хочу добавить параметры идентификатора пользователя, чтобы можно было добавлять контент, специфичный для пользователя, в ссылку для обмена в Facebook.

моя ссылка следующая

  <a href="http://www.facebook.com/sharer/sharer.php?u=<my site url>?UserId=[User-Id] target="_blank"><img src="assets/img/facebookBtn.jpg" alt=""></a>

мои мета ог ссылки

    <meta property="og:site_name" content="Group D World Cup Predictor" />
    <meta property="og:url" content="http://www.example.com/extension/" />
    <meta property="og:type" content="website" />
    <meta property="og:title" content="I predicted [Winning-Team] to win Group D!" />
    <meta property="og:description" content="I predicted [Winning-Team] to win Group D! Give your World Cup prediction for a chance to win a 4 night holiday." />
    <meta property="og:image" content="http://www.example.com/extension/assets/img/sharingImage.jpg" />
    <meta prosperty="fb:admins" content="myadminmu==number" />

После тестирования моего php-кода кажется, что в момент его отправки я могу видеть идентификатор пользователя. поэтому мой первый вопрос - это правильный способ отправки параметров userId через URL.

Во-вторых, я использую $_GET для получения пользовательского идентификатора URL. Это правильный способ получения пользовательского идентификатора? Нужно ли обращаться к нему другим способом?

class HomeController extends BaseController {

  public function Index() 
  {
    $userId = $_GET['UserId'];

    $viewModel = new StdClass;

    $viewModel->WinningTeam = strtoupper(with(new FinalizeController)->getWinningTeam($userId)->Name);

    return View::make('home', $viewModel);

  }
}

Я знаю, что getWinningTeam работает, так что его до URL, и он не отправляет UserId в качестве параметров на домашнюю страницу. Используется метатегами для доступа к соответствующей информации об этом пользователе.

Я читал много статей о том, что она устарела, и вы не можете отправить ссылку с конкретными параметрами, но она отличается от методов реализации.

Любые указатели будут с благодарностью

Майк

1 ответ

Во-первых, старайтесь избегать использования заглавных букв в URL (это также верно для параметров запроса).

Затем вы должны также закодировать ваш URL, потому что это сам параметр запроса... вот онлайн-инструмент, который я использую для кодирования / декодирования URL => http://meyerweb.com/eric/tools/dencoder/

Итак, предположим, что ваш URL http://www.example.com/mypage?userid=0123456вот ваша ссылка:

<a href="http://www.facebook.com/sharer/sharer.php?u=http%3A%2F%2Fwww.example.com%2Fmypage%3Fuserid%3D0123456" target="_blank"><img src="assets/img/facebookBtn.jpg" alt=""></a>

Наконец, чтобы следовать правилу "Никогда не доверять пользовательскому вводу", вы не можете просто получить необработанный параметр запроса, используя $_GET['userid'] и непосредственно использовать его... Вместо этого вы должны проверить, соответствует ли полученное значение ожидаемому типу (например: is_numeric() если ваш userId должен быть целым числом и т. д.).

На самом деле, вы просто должны прочитать эту статью о фильтрах PHP из w3schools, потому что я не очень хороший учитель.

Другие вопросы по тегам