simple_php
simple_php
题目描述:
小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。
1 <?php 2 show_source(__FILE__); 3 include("config.php"); 4 $a = @$_GET['a']; 5 $b = @$_GET['b']; 6 if ($a == 0 and $a) { 7 echo $flag1; 8 } 9 if (is_numeric($b)) { 10 exit(); 11 } 12 if ($b > 1234) { 13 echo $flag2; 14 } 15 ?>
这里涉及到的php基础知识有:
GET方式传递参数,在url后加?+参数名称+=+参数值,
例如http://x.x.x.x/?a=1&b=2
php弱等于,==在php中是弱等于,不比较变量类型,
直接转化为同一类型比较,这里要满足参数a等于0,且参数a为真,
根据php弱类型比较的特点,当a 的值为字母时,会将其转换为整型再比较,这里a传入一个任意字母即可。
b的要求为is_numeric,表示判断这个变量是否为字母和数字的组合,
且b的值需要大于1234,这里传入6666a,既符合数字字母的组合,又在转换后只剩下了6666,大于1234。
答案:
a=abc&b=1235a
任意字母 大于1234的数字+任意字母
考察内容:
考察PHP的弱类型比较 PHP的弱类型:
弱类型:非零即真
== 直接比较字面量。0==false成立
=== 同时比较字面量和变量类型。
0===false不成立
PHP弱类型的字符串转换数字的规则:
若字符串以数字开头,则取开头数字作为转换结果,若无则输出0。
例如:123abc转换后应该是123,而abc则为0