如何在PHP中“正确”处理$_GET变量?

前端之家收集整理的这篇文章主要介绍了如何在PHP中“正确”处理$_GET变量?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
目前,我有以下代码
  1. if(isset($_GET['mid']) && !empty($_GET['mid'])) {
  2. $mid = $_GET['mid'];
  3.  
  4. if(is_numeric($mid) && $mid > 0) {
  5. if(isset($_GET['op']) && !empty($_GET['op'])) {
  6. $op = $_GET['op'];
  7.  
  8. if($op == 'info') {
  9. }
  10.  
  11. if($op == 'cast') {
  12. }
  13. }
  14. }
  15. }

但我认为if语句中的if语句太“复杂”了……

你会以不同的方式处理吗?你会如何让它变得更简单?

[编辑]一般承认的答案:

好吧,我已经学到了一些我不知道的小细节和新的PHP函数.我认为没有正确的方法可以按照我的要求行事.我显然是以错误的方式使用一些PHP函数,我会解决这个问题.

在我看来,像这样的输入应该使用PHP过滤器函数进行验证/清理,因此我将Arkh的答案标记为已接受.

但是,对于特定的大学项目(PHP代码完全不相关),我将使用他的答案与Tatu的帮助函数构思混合使用.但对于一个不同的项目,我会将他的回答与Ignacio的课堂理念混合使用,因为它看起来更好,更有条理.

我会在中间使用带有FILTER_SANITIZE_NUMBER_FLOAT过滤器的 filter_input.像这样的东西:
  1. $mid = filter_input(INPUT_GET,'mid',FILTER_SANITIZE_NUMBER_FLOAT);
  2. $op = filter_input(INPUT_GET,'op');
  3. if($mid > 0){
  4. switch($op){
  5. case 'info':
  6. // Some code
  7. break;
  8. case 'cast':
  9. // Some more code
  10. break;
  11. default:
  12. break;
  13. }
  14. }

猜你在找的PHP相关文章