iOS-进阶整理09 - PHP后端基础

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>");  
    }  
?>  

PHP从数据库请求数据
通过浏览器访问下面的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带上参数进行注册操作
http://127.0.0.1/register.php?name=user1&pwd=123456

<?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);  
?>  

在OC中可以通过网络请求,与php通信,从而进行数据库的读写
登录方法

-(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];  
}  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,594评论 18 139
  • 架构师必须知道的26项PHP安全实践 PHP是一种开源服务器端脚本语言,应用很广泛。Apache web服务器提供...
    meng_philip123阅读 6,053评论 1 161
  • Welcome 目前网络上充斥着大量的陈旧信息,让PHP新手误入歧途,传播着错误的实践和糟糕的代码,这必须得到纠正...
    layjoy阅读 21,655评论 7 118
  • 坐在办公室里,心思早就不知道飞到了哪片海
    玫瑰花名未知阅读 179评论 0 0
  • 不知从什么时候起,不再是那个吵吵闹闹,倔强的小女孩。或许是长大了,经历多了。人生就是这样,从婴孩到少年到中年直至老...
    咘噜耳语阅读 172评论 0 0