Отправка параметров с помощью ссылки на 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, потому что я не очень хороший учитель.