我该如何阅读此代码?

时间:2012-02-13 19:04:14

标签: php

所以我试图阅读这些遗留代码 - 我读错了,还是代码重复多次?似乎它以多种不同的方式分配多个不同时间的$ 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']。我在正确的道路上吗?

3 个答案:

答案 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']设置为该值。