php写一个登陆注册代码,求大神解答。 200

数据库服务器:localhost;用户名:root;密码:123456;数据库:bbs。用户表包括:自增id(id),用户账号(usercode),密码(pwd),性别(... 数据库服务器:localhost;用户名:root;密码:123456;数据库:bbs。
用户表包括:自增id(id),用户账号(usercode),密码(pwd),性别(sex),角色(role 0,1,2分别代表不同权限),E-mail地址(email),昵称(nickname),头像(image)。
展开
 我来答
dksnear
2015-05-04 · TA获得超过1211个赞
知道小有建树答主
回答量:399
采纳率:0%
帮助的人:614万
展开全部

index.html 包含注册和登录

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
<style>
.x-stage {

margin:50px auto auto;
width:400px;
font-size:12px;
}

.x-head{

font-size:0;
}

.x-tag{

display:inline-block;
vertical-align:middle;
font-size:12px;
font-weight:bold;
color:white;
background-color:gray;
height:30px;
line-height:30px;
text-align:center;
width:200px;
cursor:default;
}

.x-tag.x-active{

background-color:orange;
}

.x-body{

padding:15px 0 0 60px;

}

.x-panel{

display:none;
}

.x-panel.x-active{

display:block;
}

.x-panel label{

display:block;
line-height:30px;
}

.x-panel input{

vertical-align:middle;
}

</style>
<script>

window.onload = function(){

var tags = document.getElementsByClassName('x-tag');
var panels = document.getElementsByClassName('x-panel');
var head = document.getElementsByClassName('x-head')[0];
var lastIdx = 0;
var idx = /(?:^\?|&)idx(?:\=)(.*?)(?=&|$)/.exec(location.search);
var msg = /(?:^\?|&)msg(?:\=)(.*?)(?=&|$)/.exec(location.search);

idx = idx && idx[1] || 0;
msg = msg && msg[1] || '';

var active = function(idx){

if(idx == lastIdx)
return;

tags[lastIdx].className = tags[lastIdx].className.replace(/\sx-active/,'');
panels[lastIdx].className = panels[lastIdx].className.replace(/\sx-active/,'');

tags[idx].className += ' x-active';
panels[idx].className += ' x-active';

lastIdx = idx;

};

head.onclick = function(e){

var el = e.target;

if(!/x-tag/.test(el.className)) return;

for(var i=0,len=tags.length;i<len;i++){
if(el === tags[i]){
active(i);
break;
}
}
};

active(idx);

if(msg) alert(decodeURI(msg));

};

</script>
</head>
<body>
<div class="x-stage">
<div class="x-head">
<div class="x-tag x-active">登录</div>
<div class="x-tag">注册</div>
</div>
<div class="x-body">
<div class="x-panel x-active">
<form name ="login" action="response.php" method="post">
<label>帐号:</label>
<input type="text" name="usercode" required>
<label>密码:</label>
<input type="password" name="pwd" required>
<input type="submit">
<input type="hidden" name="req-type" value="login">
</form>
</div>
<div class="x-panel">
<form name = "regist" action="response.php" method="post">
<label>帐号:</label>
<input type="text" name="usercode" required>
<label>密码:</label>
<input type="password" name="pwd" required>
<label>性别:</label>
<input type="radio" name="sex" value="0" checked>男</input>
<input type="radio" name="sex" value="1">女</input>
<label>角色:</label>
<input type="checkbox" name="role" value="0" checked>角色1</input>
<input type="checkbox" name="role" value="1">角色2</input>
<input type="checkbox" name="role" value="2">角色3</input>
<label>E-Mail:</label>
<input type="text" name="email" required>
<label>昵称:</label>
<input type="text" name="nickname" required>
<label>头像:</label>
<input type="text" name="image" required>
<input type="submit">
<input type="hidden" name="req-type" value="regist">
</form>
</div>
</div>
</div>
</body>
</html>


response.php 包含注册和登录

<?php


$dsn = array('127.0.0.1', 'root', '123456', 'bbs',3306);

// 这里假设表名为user描述里没有说
$query_sql = 'select `usercode`,`id` from `user` where `usercode` = ? and `pwd` = ?';
$query_param_types = 'ss';
// 这里假设 sex role 是int类型 image是连接地址 也就是varchar类型
$insert_sql = 'insert into `user`(`usercode`,`pwd`,`sex`,`role`,`email`,`nickname`,`image`) values(?,?,?,?,?,?,?)';
$insert_param_types ='ssddsss';

function get_request(){

$params = array();
$type;
$i = 0;
foreach($_REQUEST as $key=>$param)
if($key!='req-type')
$params[$i++] = $param;
else $type = $param;

return array(

'params'=>$params,
'type'=>$type
);
}

function query($dsn,$sql,$param_types,$params,$fetch = true,$char_set='UTF8'){

$client = mysqli_init();
call_user_func_array(array($client,'real_connect'),$dsn);

if($char_set) $client->set_charset($char_set);

$stmt = $client->prepare($sql);

foreach($params as $pk=>$pv)
$params[$pk] = &$params[$pk];

array_unshift($params,$param_types);

$c_stmt = new ReflectionClass('mysqli_stmt');
$cm_stmt = $c_stmt->getMethod('bind_param');
$cm_stmt->invokeArgs($stmt,$params);
$stmt->execute();

if(!$fetch){

$affected_rows = $stmt->affected_rows;
$client->close();
return $affected_rows;
}

$result = $stmt->get_result();
$set = array();

while($row = $result->fetch_array(MYSQL_ASSOC))
$set[]=$row;
$result->free();
$client->close();

return $set;
}


$request = get_request();

$msg = '请求类别错误!';
$idx = 0;
$result = null;

if($request['type'] == 'login'){

$idx = 0;
$result = query($dsn,$query_sql,$query_param_types,$request['params']);
$msg = empty($result) ? '用户名或密码错误!' : '登录成功!';

}

if($request['type'] == 'regist'){

$idx =1;
$result = query($dsn,$insert_sql,$insert_param_types,$request['params'],false);

if(empty($result)){

$msg = '注册失败!';
$idx = 1;

}else {

$msg = '注册成功!';
$idx = 0;
}

}

header('location:index.html?msg='.$msg.'&idx='.$idx);
九日不谢
2015-05-04 · 超过72用户采纳过TA的回答
知道小有建树答主
回答量:132
采纳率:100%
帮助的人:101万
展开全部

以前仿aws社区做了一个网站, 实现了完整的注册登录,文章发布及列表。。等等

需要的话 可以发源码给你,我用的是ci框架,比较简单

截图

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
野野雄狮2
2015-05-04 · 超过23用户采纳过TA的回答
知道答主
回答量:69
采纳率:0%
帮助的人:38万
展开全部
  1. 建立数据库连接

  2. 获取前端提交过来的账号,查看该账号是否注册过

  3. 确定账号未注册过后把前端传过来其它信息写入数据库

搞定!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
胡哥有话说
2015-05-04 · TA获得超过291个赞
知道小有建树答主
回答量:501
采纳率:0%
帮助的人:317万
展开全部
稍等,我先站位!马上给你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式