完整的看就不一样了。
当键入为【liu】时:select * from user where uername = 'liu' and password ='liu123';
当键入为【' or 1=1 #】时:select * from user where username = '' or 1=1 # and password = ; 这时,or 1=1 使得查询成立。
当quote后【\' or 1=1 #\'】:select * from user where username = '\' or 1=1 #\' and password = ; 这个时候,中间的条件语句【'\' or 1=1 #\'】,#号被包裹在两个引号之中,成为了字符串,就没有注释的功能了。
首先你那个变量最外层应该是双引号,变量外面的单引号是因为sql语句里面字符串需要加单引号,不然会识别成其他类型,不加花括号的话好像是会直接把这个变量识别成字符串 $username (这个你可以试试)而不是变量。第二个问题的话,变量左右的两点是链接符的意思
后面的#号什么意思
是数据表名不正确吗?
已经解决
应该是和一楼说的那样,我也是遇见同样问题,确实是new的时候错了
密码:<input type="password" name="password"/>