【发布时间】:2020-02-11 06:00:03
【问题描述】:
我正在尝试将简单的 if/elseif 条件转换为 case 条件,并且一次通过 img src 链接仅传递一个 $_GET 值,因此 foreach 循环是否必要和/或 case 是否有条件实际上需要在循环内吗?否则如何从 $_GET 中检索键名和值?
if (isset($_GET)) :
foreach ($_GET as $GETkey=>$GETvalue):
switch ($GETkey):
case "AuthorID":
$Year = date("Y");
$AuthorName = DBLookup("SELECT `AuthorName` FROM authorbiographies WHERE `ID`=$GETvalue",$siteDB);
$String = "Copyright © $Year\n$AuthorName";
$FontSize = 10;
$Angle = 0;
break;
case "CategoryID":
$String = DBLookup("SELECT `CategoryName` FROM categories WHERE `ID`=$GETvalue",$siteDB);
$FontSize = 15;
$Angle = 0;
break;
case "Splash":
$String = urldecode($GETvalue);
$FontSize = 38;
$Angle = 0;
break;
endswitch;
endforeach;
endif;
它正在被调用:
<img src="/internals/viewers/show_logo.php?AuthorID=1">
或
<img src="/internals/viewers/show_logo.php?CategoryID=1">
例如。
【问题讨论】:
-
代码应该可以工作,尽管它不是最好的编写方式。
-
使用
if (isset($_GET['AuthorID'])) ... -
var_dump($_GET);显示什么? -
如果
var_dump($_GET)没有打印任何内容,则说明正在删除 URL 参数。问题不在于脚本的这一部分。 -
你的代码没问题。问题是数据丢失了。