我在网上遇到了这个片段 https://www.quora.com/Why-is-PHP-hated-by-so-many-developers 当我在做一些关于PHP的研究时,我根本不知道代码是如何工作的。
任何人都可以解释一下代码段中发生了什么以及如何在不知道密码的情况下登录?或者只是给我一些相关的文章来阅读。提前谢谢。
答案 0 :(得分:2)
请参阅manual:
如果[字符串]相等,则返回...
0
。
因此,通过代码段逻辑,您最后应将0
与0
进行比较。但是当您发送password[]=wrong
时,您实际上发送了一个数组,强制strcmp
抛出warning
,完全绕过函数调用并将条件视为true
为了以防万一,您应该始终使用严格的比较。因此,在上面的代码段中,只需严格按类型和值进行比较(使用===
):
if(strcmp($POST['password'], "sekret") === 0)
在这种情况下,password[]=wrong
将不再有效。