我有一个Facebook共享链接,我想添加userid的参数,以便可以在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代码看起来似乎在发送它我能够看到用户ID。所以我的第一个问题是通过URL发送userId参数的正确方法。
其次我使用$ _GET来检索url UserId,这是检索userId的正确方法,我是否需要通过不同的方法访问它?
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作为参数发送到主页。元标记用于访问有关该用户的相关信息。
我一直在阅读很多文章,说它已被折旧,你可能不会发送带有特定参数的链接,但它与实现方法形成鲜明对比。
任何指针都会非常感激
麦克
答案 0 :(得分:2)
首先,尽量避免在URL中使用大写字母(查询参数也是如此)。
然后,你还应该对你的URL进行编码,因为它本身就是一个查询参数...这里是一个在线工具我用来编码/解码一个URL =&gt; http://meyerweb.com/eric/tools/dencoder/
因此,假设您的网址为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>
最后,为了遵循&#34;永不信任用户输入&#34;规则,您不能使用$_GET['userid']
直接接收原始查询参数并直接使用它...而应检查检索到的值是否属于您期望的类型(例如:is_numeric()
如果你的userId应该是一个整数,等等。)。
实际上,您应该阅读this article about PHP Filters from the w3schools,因为我不是一位好老师。