OC-UI阶段学习34-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];
}


你可能感兴趣的:(apache,PHP,mysql,数据库,服务器)