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";}}?>
<?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
- Cocos2dx实现注册和登录功能
- php实现登录和注册功能
- rails 实现登录和注册功能
- ios 实现注册 登录功能
- Android 实现登录注册功能
- php实现登录注册功能
- 表单实现登录注册功能
- Android 实现登录注册功能
- MVP实现登录注册功能
- JSP 实现登录注册功能
- 实现登录注册验证功能
- 使用PHP实现用户登录和注册的功能
- 第4章 实现用户登录和注册功能
- PHP实现用户登录和注册的功能
- PHP实现用户登录和注册的功能
- 关于账号的注册和登录功能的实现
- 用php实现简单的登录和注册功能
- 使用PHP实现用户登录和注册的功能
- LeetCode-Easy部分标签为LinkedList 141Linked List Cycle
- [LeetCode]7. Reverse Integer
- 大话设计模式-----(十一)享元模式、解释器模式、访问者模式
- golang学习笔记之赋值
- Terminal折腾记
- Cocos2dx实现注册和登录功能
- AVL树C++实现(end)
- spring应用报415错误的问题
- Spring学习之第一个AOP程序
- caffe源码深入学习5:超级详细的caffe卷积层代码解析
- nlp研究领域与方法的知识体系
- Java Web之会话技术
- 【POJ1204】Word Puzzles-AC自动机
- linux网络编程之实现跨平台PC之间进行文件传输