这个是一个简单的基于ios的 从服务器上实现登陆注册的小demo。
首先要安装mamp 前面的文章应该有把,然后写两个php文件用于服务器判定登陆注册功能。创建一个数据库存储用户数据。
我前面的文章有提到怎么弄,有点乱,见谅见谅。
先看下效果把。
提示已存在需要在数据库中将user_name这列设定为唯一,这样用户名就不会重复
下面我再贴一下php的代码,然后上项目的github地址
config.php
<?php
$DBHOST="localhost";
$DBUSER="root";
$DBPWD="root";
$DBNAME="ioslogin";
$PORT=8889;
?>
index.php
<?php
header("Content-type:text/json;charset=utf-8");
require_once "config.php";
$con = new mysqli($DBHOST,$DBUSER,$DBPWD,$DBNAME);
if (mysqli_connect_error()) {
die('Connect Error ('.$con->connect_errno.')'.$con->connect_error);
}
$con->query('set names utf8;');
$sql = "SELECT * FROM users";
$result = $con->query($sql);
$data=array();
while ($tmp=mysqli_fetch_assoc($result)) {
$data[]=$tmp;
}
//打印数据库数据
// var_dump($data);
$action = $_GET['action']; //用来区分是登录还是注册
$user_name = $_GET['user_name']; //GET方法方便用于调试
$user_pwd = $_GET['user_pwd'];
switch ($action) {
case "login":
$str = "select * from users where user_name='$user_name' and user_pwd='$user_pwd'";
$result = $con->query($str);
@$rows = mysqli_num_rows($result);
if($rows) {
$loginFlag = "1"; //登录成功
}
else {
$loginFlag = "0"; //登录失败
}
$returnArr = array("loginFlag" => $loginFlag);
echo json_encode($returnArr); //输出json格式
break;
case "regist":
$str = "INSERT INTO users (user_name,user_pwd) values ('$user_name','$user_pwd')";
$result = mysqli_query($con,$str);
if($result) {
$registFlag = "1"; //注册成功
}
else {
$registFlag = "0"; //注册失败
}
$returnArr = array("registFlag" => $registFlag);
echo json_encode($returnArr);
break;
default :
echo "登录方式错误";
return false;
break;
}
mysqli_close($con);
?>
项目中将原始ios代码中的NSURLConnection和UIAlertView替换成了最新的NSURLSession和UIAlertController。项目还是有点问题的,注册即使是空的用户名也能成功,是PHP代码的问题,暂时不弄了。先这样了。
还有数据库中的user_id是自增长的 每次注册成功之后都会加一,但是我在数据库中删除几条之后,id还是会按照没删除之前述职增长,暂时不清楚如何修改。