PHP后端基础
PHP(Hypertext Preprocessor)超文本预处理器,开源脚本语言,我们用它来连接后台服务器和前端显示
安装XAMPP(XML,Apache,MySQL,PHP,Perl)集成环境
安装Coda2,一款适用于Mac电脑的网页编程工具,支持(HTML,PHP,JavaScript,CSS等)
打开XAMPP,启动MySQL和Apache服务器
服务器的地址默认为127.0.0.1,应用程序---XAMPP---htdocs是web的根目录
HTML就不说了,php可以写在html里面
php需要学个框架
PHP基本语法
PHP输出
<?php //中文支持 header("Content-type:text/html;charset=utf-8"); //输出语句 echo("后面是换行"."<br/>"); //PHP中定义变量时不需要指定变量的类型,他会根据赋值动态判断 $num = 1; $name = "a"; //获取变量长度 echo($name.strlen($name)."<br/>"); //strpos函数查找字符串在另一字符串中第一次出现的位置 echo (strpos("Hello world!","world")."< br/>"); //随机数 $random = rand(1,100); echo($random); //表达式 $var_int = 100; $var_int_b = 1000; $sum = $var_int + $var_int_b; echo($sum."<br>"); //得到变量的类型 echo(gettype($var_int)); //字符串 $var_str = "嘻嘻嘻"; $var_str_b = "重中之重"; //字符串拼接 $sum_str = $var_str.$var_str_b; echo($sum_str); //数组和字典 //数组是可变的 $var_array = array(); //给数组添加元素 $var_array[0] = rand(1,100); echo($var_array[0]); //给数组添加随机数 for($i = 0;$i < 10;$i++) { $var_array[$i] = rand(1,100); } //输出数组的结构 echo(var_dump($var_array)."<br>"); //字典 $var_dic = array("one"=>"12","two"=>3,"three"=>43); echo($var_dic["one"]."< br>"); echo(var_dump($var_dic)."<br>"); //输出所有的键和值 foreach($var_dic as $key=>$value) { echo($key."=".$value."<br>"); } ?>
通过浏览器访问下面的URL可以进行登录判断
127.0.0.1/getAndPost.php?name=nameStr&pwd=12
<?php //接收从浏览器发送过来的用户名等参数 // $name = $_GET["name"]; // $pwd = $_GET["pwd"]; $name = $_REQUEST["name"];//REQUEST同时支持post和get方法 $pwd = $_REQUEST["pwd"]; //链接数据库 $link = mysql_connect("127.0.0.1","root",""); if($link&&mysql_select_db("newDB",$link)) { // echo("db ok"); //根据用户名查询数据库表 $result = mysql_query("select *from user_list where name = '$name'"); //得到查询结果的行数(记录的个数) $num = mysql_num_rows($result); //得到所有的查询信息 $sum_array = mysql_fetch_array($result); if($num!=0)//说明用户存在,再判断密码等参数是否匹配 { if($sum_array["pwd"]==$pwd)//密码也相同就登录成功 { echo(json_encode(array("flag"=>"登录成功login OK","name"=>$name,"pwd"=>$pwd))); } else { echo(json_encode(array("flag"=>"密码错误"))); } } else { echo(json_encode(array("flag"=>"用户不存在"))); } } ?>
通过PHP进行注册操作
访问该PHP带上参数进行注册操作
<?php //从客户端获得注册的用户信息 $name = $_REQUEST["name"]; $pwd = $_REQUEST["pwd"]; //链接数据库 $link = mysql_connect("127.0.0.1","root",""); if($link&&mysql_select_db("cMyDB",$link)) { //$result非零代表成功 $result1 = mysql_query("select *from register where name ='$name'"); //返回结果行数 $rows = mysql_num_rows($result1); if($rows) { echo(json_encode(array("flag"=>"已存在","result"=>"$rows"))); } else { //将数据插入表中 $result = mysql_query("insert into register (name,pwd)values('$name','$pwd')"); if($result) { echo(json_encode(array("flag"=>"reg ok"))); } else { echo(json_encode(array("flag"=>"reg fs"))); } } //返回操作影响的行数 mysql_affected_rows($result); //返回查询结果的一条数据,数组类型 //再次执行会顺序读取下一条记录 $array = mysql_fetch_array($result); //返回字段个数 $count = mysql_num_fields($result); //返回第个$i字段名 echo(mysql_field_name($result, $i)); //使用后释放资源 mysql_free_result($result); } else { echo(json_encode(array("flag"=>"网络异常"))); } //操作完成后关闭连接 mysql_close($link); ?>
登录方法
-(void)userLogin { //url NSURL *url = [NSURL URLWithString:@"http://127.0.0.1/getAndPost.php?name=gangcheng&pwd=no"]; //session NSURLSession *session = [NSURLSession sharedSession]; NSURLSessionDataTask *task = [session dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { //解析数据 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; NSString *dic2 = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"flag--%@",dic[@"flag"]); NSLog(@"%@",dic2); }]; [task resume]; }
注册方法
//注册按钮 - (IBAction)regiterAction:(UIButton *)sender { //创建url对象 NSString *urlStr = @"http://127.0.0.1/register.php"; //得到网址 NSURL *url = [NSURL URLWithString:urlStr]; //创建参数 NSString *pStr = [NSString stringWithFormat:@"name=%@&pwd=%@",_nameLabel.text,_pwdLabel.text]; NSData *pData = [pStr dataUsingEncoding:NSUTF8StringEncoding]; NSMutableURLRequest *mReq = [[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:30]; //设置request的请求方式 [mReq setHTTPMethod:@"POST"]; [mReq setHTTPBody:pData]; //建session NSURLSession *session = [NSURLSession sharedSession]; //加载任务的数据对象 NSURLSessionTask *task = [session dataTaskWithRequest:mReq completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; NSString *dic2 = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"flag--%@",dic[@"flag"]); NSLog(@"%@",dic2); }]; //开启任务 [task resume]; }