Cocos2dx实现注册和登录功能

来源:互联网 发布:c语言输入多组数据 编辑:程序博客网 时间:2024/05/17 06:22

本地开一个wamp,然后在www目录下放login.php和register.php文件,开启apache服务。

cpp文件:

/*网络相关*/#include "network\HttpClient.h"using namespace cocos2d::network;login_btn->addTouchEventListener(CC_CALLBACK_2(Login::login, this));//按钮监听register_btn->addTouchEventListener(CC_CALLBACK_2(Login::regist, this));void Login::login(Ref *pSender, Widget::TouchEventType type) {switch (type){case Widget::TouchEventType::ENDED:string uid;string pwd;uid = pEditBox_name->getText();pwd = pEditBox_password->getText();string strid("uname=");string strpwd("&upass=");string url("http://192.168.1.148/login.php?");string userid(uid);string password(pwd);url += strid + userid + strpwd + password;HttpClient * client = HttpClient::getInstance();HttpRequest * req = new HttpRequest();req->setUrl(url.c_str());req->setUrl(url.c_str());req->setRequestType(HttpRequest::Type::GET);req->setResponseCallback(this, httpresponse_selector(Login::httpResponse));req->setTag("GET test");client->send(req);req->release();log("denglu!!!");break;}}void Login::httpResponse(HttpClient* client, HttpResponse* response){if (!response->isSucceed()){log("Receive from server error and the error code is %s\n", response->getErrorBuffer());note_txt->setString("Unable to connect to server");return;}else{vector<char> * buffer = response->getResponseData();    //...获得返回数据的信息char * strtmp = (char *)malloc(sizeof(char)*buffer->size());//通过返回值判断是否登录成功for (int i = 0; i < buffer->size(); i++){strtmp[i] = (*buffer)[i];log((*buffer)[i]);}string analys(strtmp);free(strtmp);strtmp = NULL;if (analys.find("status:ok") < analys.length()){//登录成功,数据库中查询到用户信息//登录到主场景//MessageBox("登录成功", "登录成功!");   //弹出对话框log("登录成功");note_txt->setString("Login success");auto sc = HelloWorld::createScene();Director::getInstance()->replaceScene(sc);}else{//登录失败,数据库中查找不到信息//提示:密码或账户错误//MessageBox("登录失败", "登录失败!");log("登录失败");note_txt->setString("login faild!");}}}void Login::regist(Ref *pSender, Widget::TouchEventType type) {switch (type){case Widget::TouchEventType::ENDED://auto director = Director::getInstance();//auto scene = HelloWorld::createScene();//auto transition = TransitionCrossFade::create(1.0f, scene);//director->replaceScene(transition);savepass_box->setSelectedState(false);note_txt->setString("regin");string uid;string pwd;TargetPlatform target = CCApplication::sharedApplication()->getTargetPlatform();if (target == kTargetWindows) {uid = pEditBox_name->getText();pwd = pEditBox_password->getText();}else {uid = user_txt->getString();pwd = pass_txt->getString();}string strid("uname=");string strpwd("&upass=");string url("http://192.168.1.148/register.php?");string userid(uid);string password(pwd);url += strid + userid + strpwd + password;note_txt->setString(url.c_str());HttpClient * client = HttpClient::getInstance();HttpRequest * req = new HttpRequest();req->setUrl(url.c_str());req->setUrl(url.c_str());req->setRequestType(HttpRequest::Type::GET);req->setResponseCallback(this, httpresponse_selector(Login::httpResponse2));req->setTag("GET test");client->send(req);req->release();break;}}//注册void Login::httpResponse2(HttpClient* client, HttpResponse* response){log("register php ");if (!response->isSucceed()){log("Receive from server error and the error code is %s\n", response->getErrorBuffer());return;}else{vector<char> * buffer = response->getResponseData();    //...获得返回数据的信息char * strtmp = (char *)malloc(sizeof(char)*buffer->size());//通过返回值判断是否登录成功for (int i = 0; i < buffer->size(); i++){strtmp[i] = (*buffer)[i];log((*buffer)[i]);}string analys(strtmp);free(strtmp);strtmp = NULL;if (analys.find("status:ok") < analys.length()){MessageBox("注册成功", "注册成功!");   //弹出对话框log("注册成功");note_txt->setString("register success");}else{//登录失败,数据库中查找不到信息//提示:密码或账户错误MessageBox("注册失败", "注册失败!");log("注册失败");note_txt->setString("register failed!");}}}




php文件:

数据库TestCocos,没有密码,表user,字段username和password.

register.php

<?php$abc=$_GET['uname'];$def=$_GET['upass'];//1.连接数据库$conn = mysqli_connect("localhost", "root", "","TestCocos");$query= mysqli_query($conn,"SELECT count(*) FROM user WHERE username='".$abc."'");$row=mysqli_fetch_array($query);//echo $row[0];if($row[0]==1){echo "This user exists";}else{if($abc=="")echo "wrong name";else{$result=mysqli_query($conn,"INSERT Into user(username,password) Values('".$abc."','".$def."')");echo "status:ok";}}?>


login.php

<?phpheader("charset=utf-8");$us=$_GET["uname"];$ps= $_GET["upass"];//1.连接数据库$conn = mysqli_connect("localhost", "root", "","testcocos");if($conn){//echo "hello";}$conn->set_charset("UTF-8");//2.打开数据库//mysqli_select_db($conn,"test");//3.新建查询//$sql = 'select * from 123 where "username"='.$us.'';#39;.$us.'and upass = '. $ps .';; //4.执行这个查询//$sql="SELECT * FROM abcd";$result = mysqli_query($conn,"SELECT * FROM User WHERE username='".$us."'");if($result){//echo "true";}else{die("false".mysqli_error($conn));}$n = mysqli_num_rows($result); //返回查到的结果个数//5. 关闭数据库mysqli_close($conn); if($n-->0) //如果查到结果个数大于0,即有用户名和密码与传进来的参数一至{    session_start();    $row = mysqli_fetch_array($result);  //取得查询结果那一行    $_SESSION['uid'] = $row["username"];   //返回数据库中的id    $usepass=$row["password"];    if($ps==$usepass)    {    echo "status:ok";    //echo 1;    //服务器返回客户端一个1    }    else    echo "status:failed";    //echo 10;}else{echo "status:failed";    //echo 0;  //没查到结果,返回0}?>


0 0
原创粉丝点击