所以我试图阅读这些遗留代码 - 我读错了,还是代码重复多次?似乎它以多种不同的方式分配多个不同时间的$ cuid - 它是否以某种方式获得不同的值?我能看到的唯一两种方法是通过cookie和GET请求。
$id = "";
$cuid = "";
session_start();
if (isset($_SESSION['id'])) {
$id = $_SESSION['id'];
$cuid = $id;
$valid_user = $_SESSION['valid_user'];
$cuname = $_SESSION['cuname'];
$website = $_SESSION['website'];
$site = $website;
$email_contact = $_SESSION['email_contact'];
}
$cuid = $_GET['cuid'];
include_once("dbfunctions.php");
if (isset($_SESSION['id'])) {
$cuid = $_SESSION['id'];
} elseif (isset($cuid)) {
$_SESSION['id'] = $cuid;
}
编辑:好的,如果$ _GET ['cuid']有一个值,无论如何,现在如何使用$ _GET ['cuid']。基本上,有几个站点使用它,我们希望用户能够从其中几个站点导航,并且每次都获得不同的徽标,但如果他们不从其他站点导航,则在他们的整个体验中保留相同的徽标。
我只是检查$ _GET ['cuid']是否有值,如果有,则不做其他任何事情,更正,但如果没有,请检查$ _SESSION ['id']。我在正确的道路上吗?
答案 0 :(得分:2)
你可以改写整个事情如下:
$id = "";
$cuid = $_GET['cuid'];
include_once("dbfunctions.php");
session_start();
if (isset($_SESSION['id'])) {
$id = $_SESSION['id'];
$cuid = $id;
$valid_user = $_SESSION['valid_user'];
$cuname = $_SESSION['cuname'];
$website = $_SESSION['website'];
$site = $website;
$email_contact = $_SESSION['email_contact'];
} else
$_SESSION['id'] = $cuid;
答案 1 :(得分:1)
您可以忽略与$cuid
相关的所有代码,直到显示
$cuid = $_GET['cuid'];
以前设置的$cuid
无关紧要,因为无论如何都将其设置为$_GET
的内容。
总结一下:
$cuid
默认设置为$_GET['cuid']
或使用代码解释:
if(isset($_SESSION['id'])) {
$cuid = $_SESSION['id'];
}
else {
$cuid = $_GET['cuid'];
$_SESSION['id'] = $cuid;
}
答案 2 :(得分:0)
是的,仅测试isset($_SESSION['id'])
并将$cuid
(如果进一步使用$id
)设置为会话ID就足够了。在else块中,$cuid
可以设置为$_GET['id']
,$_SESSION['id']
设置为该值。