本篇文章对ctf之web小白很有用,请耐心看完
<? php
echo 'hello,world';
?>
<?php表示程序开始,?>表示程序结束
每行代码必须以分号结尾。
echo是php的输出函数
<?php
$a=3;
$b=4;
$c=$a+$b;
echo "$a+$b="."$c";
?>
变量以$符号开头,变量名称对大小写敏感。
可以直接通过赋值来指定变量类型。
双引号中的变量会被解析执行。
点好.用于连接字符串。
php单引号和双引号的区别
单引号可以嵌套双引号,双引号可以嵌套单引号,单引号和双引号不能相互嵌套
<?p
$a=5;
$b=6;
$c=$a+=$b;
echo '$a+$b=$c'; //输出$a+$b=$c
echo "$a+$b=$c"; //输出5+6=11
单引号内部变量和特殊字符不会解析,双引号内部变量和特殊字符会解析。
isset()函数
<?php
$a=100;
echo (isset(&a));
?>
isset()函数是判断变量是否存在,存在返回值1,不存在返回值空
php的注释
//这是单行注释
#这也是单行注释
/* 这是多行注释 */
接收表单数据
<?php
$username=$_GET['username'];
$password=$_POST['password'];
echo "<p>用户名:"."$username</p>"
echo "<p>密码:"."$password</p>";
?>
$_GET:接收通过get方法传递的数据;
$_POST:接收通过post方法传递的数据;
$_REQUEST:接收通过get或post方法传递的数据
if选择语句:
<?php
$username=$_REQUEST['username'];
$password=$_REQUEST['password'];
if($username=="admin" and $password=="123"){
echo "登入成功";
}else {
echo "请输入正确的用户名和密码";
}
?>
==:等于号
=:给变量赋值符号
for循环语句
<?php
$sum=0;
for($i=1;$i<=10;$i++){
$sum=$sum+$i;
}
$i=$i-1;
echo "1累加到$i"."的和是$sum";
?>
while循环语句
<?php
$sum=0;
$i=1;
while($i<=10){
$sum=$sum+$i;
$i++;
}
$i=$i-1;
echo "1累加到$i"."的和是$sum";
?>
php操作数据库的一般步骤
mysql_connect("localhost","root","123"); //通过php连接上Mysql
mysql_select_db("test"); //选择要操作的数据库
mysql_query("set names utf8") //设置客户端和连接字符集
通过php进行增删改查
mysql_close($conn); //释放连接资源
创建表并向表中添加记录
mysql>create table hack
->(
->id int,
->username varchar(20),
->password varchar(30)
->);
向表中添加记录
insert into hack values(1,'admin','123');
insert into hack values(2,'admin1','123');
用户身份验证(一点要看懂)
<?php
$username=$_GET['username']; //GET方式得到username
$password=$_GET['password'];//GET方式得到password
$conn=mysql_connect("127.0.0.1","root","123"); //和mysql数据库建立连接
mysql_select_db("test"); //打开test数据库
mysql_query("set names utf8"); //设置字符集
$sql="select * from hack where username='$username' and password='$password'"; //将输入的用户名和密码和数据库中的用户名密码进行匹配
$res=mysql_query($sql); //执行上面的匹配语句,如果匹配成功,返回1,匹配失败返回0
if(mysql_num_rows($res)!=0){
echo "登入成功";
}else {
echo "登入失败";
}
mysql_close($conn); //和mysql数据库断开连接
?>