PHP后端基礎(chǔ)
PHP(Hypertext Preprocessor)超文本預(yù)處理器向叉,開源腳本語言嗦董,我們用它來連接后臺服務(wù)器和前端顯示
安裝XAMPP(XML,Apache奇唤,MySQL,PHP甲葬,Perl)集成環(huán)境
安裝Coda2懈贺,一款適用于Mac電腦的網(wǎng)頁編程工具,支持(HTML画侣,PHP堡妒,JavaScript,CSS等)
打開XAMPP皮迟,啟動MySQL和Apache服務(wù)器
服務(wù)器的地址默認(rèn)為127.0.0.1万栅,應(yīng)用程序---XAMPP---htdocs是web的根目錄
HTML就不說了,php可以寫在html里面
php需要學(xué)個框架
PHP基本語法
PHP輸出
<?php
//中文支持
header("Content-type:text/html;charset=utf-8");
//輸出語句
echo("后面是換行"."<br/>");
//PHP中定義變量時不需要指定變量的類型烦粒,他會根據(jù)賦值動態(tài)判斷
$num = 1;
$name = "a";
//獲取變量長度
echo($name.strlen($name)."<br/>");
//strpos函數(shù)查找字符串在另一字符串中第一次出現(xiàn)的位置
echo (strpos("Hello world!","world")."< br/>");
//隨機數(shù)
$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);
//數(shù)組和字典
//數(shù)組是可變的
$var_array = array();
//給數(shù)組添加元素
$var_array[0] = rand(1,100);
echo($var_array[0]);
//給數(shù)組添加隨機數(shù)
for($i = 0;$i < 10;$i++)
{
$var_array[$i] = rand(1,100);
}
//輸出數(shù)組的結(jié)構(gòu)
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從數(shù)據(jù)庫請求數(shù)據(jù)
通過瀏覽器訪問下面的URL可以進行登錄判斷
127.0.0.1/getAndPost.php?name=nameStr&pwd=12
<?php
//接收從瀏覽器發(fā)送過來的用戶名等參數(shù)
// $name = $_GET["name"];
// $pwd = $_GET["pwd"];
$name = $_REQUEST["name"];//REQUEST同時支持post和get方法
$pwd = $_REQUEST["pwd"];
//鏈接數(shù)據(jù)庫
$link = mysql_connect("127.0.0.1","root","");
if($link&&mysql_select_db("newDB",$link))
{
// echo("db ok");
//根據(jù)用戶名查詢數(shù)據(jù)庫表
$result = mysql_query("select *from user_list where name = '$name'");
//得到查詢結(jié)果的行數(shù)(記錄的個數(shù))
$num = mysql_num_rows($result);
//得到所有的查詢信息
$sum_array = mysql_fetch_array($result);
if($num!=0)//說明用戶存在,再判斷密碼等參數(shù)是否匹配
{
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帶上參數(shù)進行注冊操作
http://127.0.0.1/register.php?name=user1&pwd=123456
<?php
//從客戶端獲得注冊的用戶信息
$name = $_REQUEST["name"];
$pwd = $_REQUEST["pwd"];
//鏈接數(shù)據(jù)庫
$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'");
//返回結(jié)果行數(shù)
$rows = mysql_num_rows($result1);
if($rows)
{
echo(json_encode(array("flag"=>"已存在","result"=>"$rows")));
}
else
{
//將數(shù)據(jù)插入表中
$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")));
}
}
//返回操作影響的行數(shù)
mysql_affected_rows($result);
//返回查詢結(jié)果的一條數(shù)據(jù),數(shù)組類型
//再次執(zhí)行會順序讀取下一條記錄
$array = mysql_fetch_array($result);
//返回字段個數(shù)
$count = mysql_num_fields($result);
//返回第個$i字段名
echo(mysql_field_name($result, $i));
//使用后釋放資源
mysql_free_result($result);
}
else
{
echo(json_encode(array("flag"=>"網(wǎng)絡(luò)異常")));
}
//操作完成后關(guān)閉連接
mysql_close($link);
?>
在OC中可以通過網(wǎng)絡(luò)請求,與php通信徒役,從而進行數(shù)據(jù)庫的讀寫
登錄方法
-(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) {
//解析數(shù)據(jù)
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 {
//創(chuàng)建url對象
NSString *urlStr = @"http://127.0.0.1/register.php";
//得到網(wǎng)址
NSURL *url = [NSURL URLWithString:urlStr];
//創(chuàng)建參數(shù)
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];
//設(shè)置request的請求方式
[mReq setHTTPMethod:@"POST"];
[mReq setHTTPBody:pData];
//建session
NSURLSession *session = [NSURLSession sharedSession];
//加載任務(wù)的數(shù)據(jù)對象
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);
}];
//開啟任務(wù)
[task resume];
}