本文实例讲述了PHP实现的注册,登录及查询用户资料功能API接口。分享给大家供大家参考,具体如下:
服务端
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
<?php
require 'conn.php' ;
header( 'Content-Type:text/html;charset=utf-8' );
$action = $_GET [ 'action' ];
switch ( $action ) {
//注册会员
case "adduserinfo" ;
$username = lib_replace_end_tag(trim( $_GET [ 'username' ]));
$password2 = lib_replace_end_tag(trim( $_GET [ 'userpassword' ]));
$password = md5( "$password2" . ALL_PS);
$email = lib_replace_end_tag(trim( $_GET [ 'email' ]));
if ( $username == '' || $password2 == '' || $password == '' ) {
$res = urlencode( "参数有误" );
exit (json_encode( $res )); //有空信息
}
$sql = "select username from `member` where username='$username'" ;
$query = mysql_query( $sql , $conn );
$count = mysql_num_rows( $query );
if ( $count > 0) {
exit (json_encode(1)); //返回1表示注册失败
} else {
$addsql = "insert into `member` (username,password,email) values ('$username','$password','$email')" ;
mysql_query( $addsql );
exit (json_encode(0)); //返回0表示注册成功
}
break ;
//查询用户信息
case "selectuserinfo" ;
$username = lib_replace_end_tag( $_GET [ 'username' ]);
$sql = "select id,username,nickname,mobile from `member` where username='$username'" ;
$query = mysql_query( $sql , $conn );
$row = mysql_fetch_array( $query );
foreach ( $row as $key => $v ) {
$res [ $key ] = urlencode( $v );
}
exit (json_encode( $res ));
break ;
//会员登录
case "userlogin" ;
$username = lib_replace_end_tag( $_GET [ 'username' ]);
$password2 = lib_replace_end_tag(trim( $_GET [ 'userpassword' ]));
$password = md5( "$password2" . ALL_PS);
$sqluser = "select id,username,password from `member` where username='" . $username . "' and password='" . $password . "'" ;
$queryuser = mysql_query( $sqluser );
$rowuser = mysql_fetch_array( $queryuser );
if ( $rowuser && is_array ( $rowuser ) && ! empty ( $rowuser )) {
if ( $rowuser [ 'username' ] == $username && $rowuser [ 'password' ] == $password ) {
if ( $rowuser [ 'password' ] == $password ) {
$res = urlencode( "登录成功" );
exit (json_encode( $res ));
} else {
$res = urlencode( "密码错误" );
exit (json_encode( $res ));
}
} else {
$res = urlencode( "用户名不存在" );
exit (json_encode( $res ));
}
} else {
$res = urlencode( "用户名密码错误" );
exit (json_encode( $res ));
}
/*
* 0:表示登录成功,1:表示密码错误,2:用户名不存在,3:用户名密码错误
*/
break ;
default :
exit (json_encode(error));
}
?>
|
客户端例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
<?php
header( 'Content-Type:text/html;charset=utf-8' ); //避免输出乱码
function httpPost( $url , $parms ) {
$url = $url . $parms ;
if (( $ch = curl_init( $url )) == false) {
throw new Exception(sprintf( "curl_init error for url %s." , $url ));
}
curl_setopt( $ch , CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $ch , CURLOPT_HEADER, 0);
curl_setopt( $ch , CURLOPT_CONNECTTIMEOUT, 600);
curl_setopt( $ch , CURLOPT_FOLLOWLOCATION, 1);
if ( is_array ( $parms )) {
curl_setopt( $ch , CURLOPT_HTTPHEADER, array ( 'Content-Type: multipart/form-data;' ));
}
$postResult = @curl_exec( $ch );
$http_code = curl_getinfo( $ch , CURLINFO_HTTP_CODE);
if ( $postResult === false || $http_code != 200 || curl_errno( $ch )) {
$error = curl_error( $ch );
curl_close( $ch );
throw new Exception( "HTTP POST FAILED:$error" );
} else {
// $postResult=str_replace("\xEF\xBB\xBF", '', $postResult);
switch (curl_getinfo( $ch , CURLINFO_CONTENT_TYPE)) {
case 'application/json' :
$postResult = json_decode( $postResult );
break ;
}
curl_close( $ch );
return $postResult ;
}
}
$postUrl = "http://pujia.test.com/api/server.php" ;
$p = $_GET [ 'p' ];
if ( $p == "selectuserinfo" ) {
$username = $_GET [ 'username' ];
$parms = "?action=selectuserinfo&username=" . $username . "" ;
} elseif ( $p == "adduserinfo" ) {
$username = $_GET [ 'username' ];
$userpassword = $_GET [ 'userpassword' ];
$parms = "?action=adduserinfo&username=" . $username . "&userpassword=" . $userpassword . "" ;
} elseif ( $p == "userlogin" ) {
$username = $_GET [ 'username' ];
$userpassword = $_GET [ 'userpassword' ];
$parms = "?action=userlogin&username=" . $username . "&userpassword=" . $userpassword . "" ;
}
$res = httpPost( $postUrl , $parms ); //$parms
$res = json_decode( $res );
print_r(urldecode(json_encode( $res )));
?>
|
注:代码中的lib_replace_end_tag
函数为自定义字符串过滤函数,具体可参考:浅析php过滤html字符串,防止SQL注入的方法
希望本文所述对大家PHP程序设计有所帮助。