测试通过的例子程序:
我们提供的服务有:成都网站设计、成都网站建设、微信公众号开发、网站优化、网站认证、元宝山ssl等。为近1000家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的元宝山网站制作公司
?php
$aa=123;
$s=file_get_contents('1.txt');
eval('$s="'.$s.'";');
echo $s;
?
测试的1.txt内容为:
测试{$aa}测试
大概的基本流程如下:
连接数据库,再加一个判断。
选择数据库
读取表
输出表中数据
下面是代码:
?php
$con = mysql_connect("localhost","root","abc123");
/* localhost 是服务器 root 是用户名 abc123 是密码*/
if (!$con)
{
die("数据库服务器连接失败");
}
/* 这就是一个逻辑非判断,如果错误就输出括号里的字符串 */
@mysql_select_db("a", $con);
/* 选择mysql服务器里的一个数据库,假设你的数据库名为 a*/
$sql = "SELECT * FROM qq";
/* 定义变量sql, "SELECT * FROM qq" 是SQL指令,表示选取表qq中的数据 */
$result = mysql_query($sql); //执行SQL语句,获得结果集
/*下面就是选择性的输出打印了,由于不清楚你的具体情况给你个表格打印吧*/
//打印表格
echo "table border=1";
while( $row = mysql_fetch_array($result) )
/*逐行获取结果集中的记录,得到数组row */
{
/*数组row的下标对应着数据库中的字段值 */
$id = $row['id'];
$name = $row['name'];
$sex = $row['sex'];
echo "tr";
echo "td$id/td";
echo "td$name/td";
echo "td$sex/td";
echo "/tr";
}
echo "table /";
?
如果你的switch是表头,就定义这个表头字段,然后输出。
对字符串内部的引号冲突位置使用反斜杠“\”置于冲突位置前即可,例如:
$str = 'abcd\'ee\'fg';
echo $str;
则实际输出 abcd'ee'fg
如果需要字符串与变量连接则使用英文句号“.”进行链接,例如:
$str1 = 'abc';
$str2 = 'def';
echo $str1 . $str2;
则实际输出 abcdef
你说的只是php代码中可能会允许你使用注入语句,但是一般来说,网站防注入都是在链接数据库的类中加入了转换,也就是说把注入语句的关键字都加上了转义字符。比如你遇到的这种情况,就是被防注入了。
关于你这个问题:
问:输入框中的SQL语句应该如何写?
条件:数据库表、字段全已知,输入框长度不限。
我只能跟你说,你可以在输入框中加入;,/这种符号,让语句解析的时候出现问题,让php把sql语句拼合成两个或两个以上。这样你就可以在第二条语句之后加入你想要执行的命令了。
如果这种方法没有效果,你只能使用溢出的方式来注入!