0

如果将 POST 或 GET 数据直接扔到 switch() 语句中,是否需要验证?例如:

switch($_GET['input']) {
    //...
}

???

4

3 回答 3

0

不,你case基本上是验证。

于 2012-10-03T08:28:19.813 回答
0

switch 语句类似于同一表达式上的一系列 IF 语句。在许多情况下,您可能希望将同一个变量(或表达式)与许多不同的值进行比较,并根据它等于哪个值来执行不同的代码。这正是 switch 语句的用途。

请注意,开关/案例确实比较松散。

<?php
switch ($i) {
    case "apple":
        echo "i is apple";
        break;
    case "bar":
        echo "i is bar";
        break;
    case "cake":
        echo "i is cake";
        break;
    default:
    echo "";
    break;
}
?>

所以,简短的回答是“不”。

于 2012-10-03T08:28:36.780 回答
0

如果您的开关不包含真实案例,但如果您这样做,则default需要验证$_GET是否在这种情况下使用它。

例如:

switch ($_GET['input']) {
    case 'one':
        echo "input is one";
        break;
    case 'two':
        echo "input is two";
        break;
    default:
       // here `$_GET['input']` need to be validated, escaped, checked if you use it to avoid XSS or SQL injections
       echo $_GET['input'];
}
于 2012-10-03T08:28:47.887 回答