文章目的簡單的介紹一下客戶端如何和后臺(tái)交互,以簡單的注冊(cè)為例舅巷;
PHP代碼編寫可以使用PhpStorm羔味,mac環(huán)境下這個(gè)開發(fā)工具還是很好用的,本地環(huán)境的搭建使用XAMPP(XAMPP 是一個(gè)把Apache網(wǎng)頁服務(wù)器與PHP钠右、Perl及MySQL集合在一起的安裝包赋元,允許用戶可以在自己的電腦上輕易的建立網(wǎng)頁服務(wù)器。使用 XAMPP 您可以輕松的在本機(jī)調(diào)試您的 PHP 程序飒房、CMS以及 wordpress 博客程序)搁凸,那么關(guān)于XAMPP的使用大家可以百度一下,教程很多狠毯,在此我就不過多的介紹XAMPP的使用了护糖,附一張XAMPP的界面圖;
接下來簡單的搭建一個(gè)iOS注冊(cè)界面嚼松,xib快速拖拽
iOS發(fā)送注冊(cè)請(qǐng)求代碼嫡良,當(dāng)讓注冊(cè)這部分在實(shí)際項(xiàng)目中有所不同锰扶,剛?cè)腴T的朋友們以實(shí)際項(xiàng)目為準(zhǔn)
- (IBAction)registerClick:(id)sender
{
NSString *user = [self.username.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSString *pass = [self.password.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
NSString *repass = [self.repassword.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
if([pass isEqualToString:repass] && user.length == 11){
NSDictionary *par = @{@"username":user,@"password":pass};
[[netTool shareDL]postDataFromUrlString:@"http://192.168.1.102/myphp/register.php" parameter:par progress:^(NSProgress * _Nonnull downloadProgress) {
} success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
NSLog(@"成功:%@",responseObject);
} fail:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
NSLog(@"失敗");
}];
}
}
請(qǐng)求類是對(duì)AFNetworking進(jìn)行的二次封裝,便于以后的代碼整理修改皆刺;
接下來是PHP的代碼:
$username = $_POST['username'];
$password = $_POST['password'];
$mysqli = new mysqli("127.0.0.1","root","","demo");
if($mysqli->connect_error){
echo "連接失敗".$mysqli->connect_error;
}
$mysqli->query("set names utf8");
if(isset($username) && isset($password)){
$sql = "select username from myuser where username='$username'";
$res=$mysqli->query($sql);
if($res->num_rows){
$result = array();
$result['code']="-1";
$result["des"]="該用戶名已存在";
echo json_encode($result);
return;
}else{
$sql = "insert into myuser values ('$username','$password')";
$b=$mysqli->query($sql);
if($b){
$result=array();
$result['code']=1;
$result['des']="注冊(cè)成功";
$list=array();
$list['username']=$username;
$list['password']=$password;
$result['list']=$list;
echo json_encode($result);
}else{
$result=array();
$result['code']="0";
$result['des']="注冊(cè)失敗";
echo json_encode($result);
}
}
}
對(duì)于PHP數(shù)據(jù)庫操作有三種形式:mysql,mysqli凌摄,PDO羡蛾;
PHP-MySQL 是 PHP 操作 MySQL 資料庫最原始的 Extension ,PHP-MySQLi 的 i 代表 Improvement 锨亏,提更了相對(duì)進(jìn)階的功能痴怨,就 Extension 而言,本身也增加了安全性器予。而 PDO (PHP Data Object) 則是提供了一個(gè) Abstraction Layer 來操作資料庫浪藻。
在此我使用的是mysqli,mysqli既有面相對(duì)象又有面相過程乾翔,例子中使用的是面相對(duì)象爱葵,會(huì)使用一種即可;
測試:
code=1注冊(cè)成功反浓;
再次以相同用戶名注冊(cè):
code=-1用戶名已經(jīng)存在