php - PHP 的 _GET 不支持 if()
问题描述
我正在使用以下代码:
if(isset($_GET['TDEnderEmail']) || htmlspecialchars($_GET['TDEnderEmail'])){
$VEENFSL = strval($_GET['TDEnderEmail']);
if(strpos($VEENFSL, "@enderadel.cf") > 0 && strlen($VEENFSL) > 5 && strlen($VEENFSL) < 22){
return true;
}
}
并且虽然那$VEENFSL
是if (strpos($VEENFSL, "@enderadel.cf") > 0 && strlen($VEENFSL) > 5 && strlen($VEENFSL) < 22
) 语句的值在示例中是轮到的user@enderadel.cf
——if()
从不返回 true
解决方案
请注意,strpos
它不像您可能认为的那样工作:正如文档所述,strpos
返回针相对于 haystack 字符串开头的位置(与偏移量无关)。另请注意,字符串位置从 0 开始,而不是 1。
如果未找到针头,则返回 FALSE。
警告 此函数可能返回布尔值 FALSE,但也可能返回计算结果为 FALSE 的非布尔值。请阅读有关布尔值的部分以获取更多信息。使用 === 运算符测试此函数的返回值。
这意味着您的示例字符串可能在位置 0 匹配,因此
strpos($VEENFSL, "@enderadel.cf") > 0
是false
。
因此,您应该将其替换为
strpos($VEENFSL, "@enderadel.cf") !== false
推荐阅读
- node.js - 无法使用 docker + traefik + nodejs 堆栈获取 /myNodeApp
- react-native - React Native 的 FlatList 是否回收离屏视图组件?
- python - 使用 GPU 训练 tensorflow 模型,然后在同一脚本中使用 joblib 中的 CPU / tensorflow-lite 执行推理
- java - 断言在测试中使用消费者类型作为参数调用了某些方法
- nested-queries - 需要帮助在 Azure DevOps 的一项功能下提取所有故事(它可能在 MBI、主题、史诗和功能下))
- angular - 如何将 Storybook 打字稿元声明转换为 MDX?
- python - Python 中的 BoundedSemaphore 具有可调整的界限?
- caching - 商店失误影响业绩?
- date - Julia 中是否有一种有效的方法可以将程序的执行暂停到第二天?
- javascript - 如何以您在 JavaScript 中查看的文件的名称登录控制台?