获取唯一的URL代码并放入PHP会话中
当用户访问我的站点并在页面中使用它时,我试图从URL检索“活动”代码。然后,此活动代码将存储在访问的其余页面的会话中,因此如果用户查看站点,它不会丢失。当然,如果访问的用户在URL中没有“活动”代码(比如他们来自谷歌),那么我想给他们分配一个默认代码。我想我已经掌握了以下内容,因为它似乎在我的服务器上工作,但我不确定它是否代码太多和/或存在安全风险获取唯一的URL代码并放入PHP会话中,php,session,url,get,isset,Php,Session,Url,Get,Isset,当用户访问我的站点并在页面中使用它时,我试图从URL检索“活动”代码。然后,此活动代码将存储在访问的其余页面的会话中,因此如果用户查看站点,它不会丢失。当然,如果访问的用户在URL中没有“活动”代码(比如他们来自谷歌),那么我想给他们分配一个默认代码。我想我已经掌握了以下内容,因为它似乎在我的服务器上工作,但我不确定它是否代码太多和/或存在安全风险 <?php session_start(); // starts the PHP session data if ( isset( $_GE
<?php
session_start(); // starts the PHP session data
if ( isset( $_GET['campaign'] ) ) // check if there is a 'campaign' code in the URL as a variable
{
$campaign = $_GET['campaign']; // first, if there is a 'campaign' code in the URL use that$campaign =
}
elseif ( isset( $_SESSION['campaign'] ) ) // if no campaign code is in the URL but there is session data for the 'campaign' code use that - usually on other pages on the same server
{
$campaign = $_SESSION['campaign'];
}
else // Otherwise, if no campaign code is either in the URL or session data, use the default 'campaign' code
{
$campaign = "test1";
}
//save the 'campaign' value in a session
$_SESSION['campaign'] = $campaign; // store session data
?>
然后,无论我想在页面中的何处添加活动代码,我都将使用:
<?php echo $campaign; ?>
提前感谢您的回答。这取决于您以后如何使用此值。例如,若您将会话存储在数据库中,并且您也有一个用于该值的字段,那个么您需要首先对其进行转义。没有看到来自该代码的任何其他可能的风险。使用
如果(!isset($\u GET['campaign'])
,您正在检查变量是否不存在。请注意:)您也在添加;在if条件之后。虽然这并不是错误的,但它会让你得到意想不到的结果。谢谢,下面的练习会更好吗<代码>谢谢。我是这个网站的新手,所以我花了一段时间才意识到你修改了代码。现在刚试过,效果很好。我正在考虑完全删除“isset”引用,这似乎也行得通。这样做有什么影响吗<代码>首先,如果($campaign=$\u GET['campaign']),那是什么代码>将要检查。如果($\u GET['campaign']),您可以这样做,然后检查$\u GET['campaign']
中是否应该有某些内容,否则if
将不为真。但这也是错误的,因为你不可能是100%的舒尔,在数组$\u GET
中会有索引活动
。如果没有,它会给你一个警告或错误。不记得了。无论哪种方法,isset都是检查此索引是否存在的最佳方法。目前,您只是在if条件语句中分配值。