项目名称:php连接数据库实现表单注册
1.PHP连接数据库的三种方式
a.Mysql扩展 (版本相对较老,现在一般做学习使用,其它地方不建议使用)
b.Mysql I 扩展 (推荐使用)
c.pbo扩展 (推荐使用,版本较新)
2.今天给大家讲的是Mysql扩展,做学习使用
3.不哆嗦了,天儿也不早了,干点正事吧!
注册页面的流程
第一步,服务器提供一个表单静态页
第二步,用户点击注册按钮 提交数据到服务器(PHP)C
第三步,PHP接收数据并验证
第四步,把数据插入到数据库中,保存起来
第五步,数据库返回给PHP一个信息(成功或者失败),PHP再返回给用户一个页面
实际操作
1.建立表格,静态表单
2.建立数据库会员表
3.编写PHP脚本
需要用到的工具:
Dreamweaver(经典的编写网页工具),Wamp (全称:Apache+Mysql/MariaDB+Perl/PHP/Python)使用十分方便
当然也有其他编写的工具,同志们看着办
第一步:建立一个网页静态表单(为了节省时间,做一个相对简单的)
//提交给reg.php这个网页 提交方式:post
用户名:
//用户名
密码:
//密码
请确认密码:
//确认密码
//提交按钮
第二步:建立数据库,在数据库中建立会员表
1.首先,打开Wamp,开启所有服务,电脑状态栏显示绿色为开启正常
2.点击Wamp图标,找到Mysql这一项,鼠标悬浮上面会出现新的选项,找到MySQL控制台,打开
3.进入控制台之后,会显示Enter password: 让你输入密码,无需理会,2.5版本以上都取消了密码,直接回车,会显示welcome...之类的,表示可以正常使用
4.开始写数据库代码
create database demo; //建立数据库demo
use demo; //使用数据库demo
create table member(username vachar(20),password vachar(32)); //建表member,两列,(用户名,密码)
先做好这些,暂时不要往里面添加数据
第三步 编写PHP脚本(关键)
1.接收表单里用户填写的数据
$_POST:用来接收数据
2.判断
if($_POST['loginid']==""){ //判断用户名是否为空
exit(" 用户名不能为空!"); //exit()方法:结束脚本
}else if($_POST['loginpass']==""){//判断密码是否为空
exit("密码不能为空!");
}else if($_POST['loginpass']!=$_POST['newloginpass']){//判断两次密码输入是否一致
exit("两次密码输入不一致!");
}
注意:前面的验证无需连接服务器,仅是脚本验证,可以缓解服务器压力,当通过验证才进入下一步
3.连接服务器
$con=mysql_connect("localhost","root"," ");
// 连接数据库 localhost:本地 root: 默认服务器用户名 " ":服务器密码,这里没有密码,不需要填
mysql_select_db("demo",$con); //选择数据库
mysql_query('set names utf8'); //选择字符编码
$sql="select* from member where username='$_POST[loginid]'"; //检查这个用户名在数据库里是否已经有了
$rs=mysql_query($sql); //定义一个变量接收查找返回的资源
if($mysql_fetch_assoc($rs)){ //判断用户名是否重复,不重复的话进入下一步,否则结束脚本
exit("此用户名已经被注册,请换一个!");
};
/
$password=md5($_POST['loginpass']); //md5()方法,加密,加密完成后字符串一定是32位的
mysql_query("insert into member(username,password)values('$_POST[loginid]','$password')");
exit("注册成功!"); //这时候就可以把新的用户名插入到数据库的会员表里面
这就大功告成了!
不过在实现过程可以出现的问题有以下几点,并附有解决办法
1.网页出现乱码 解决方法:header('Content-Type:text/html;charest=utf-8'); 此方法可以加在代码最前面
2.与数据库连接出现错误,测试的方法:
if(!$con){
die("数据库出错!".mysql_error());
}else{
echo "连接成功!";
}
解决方法,不用理会,它的意思是:Mysql这种扩展版本过旧,建议用别的扩展版本代替
4.如果不想要它出现这种错误:加error_reporting(0);
希望对大家有帮助,各位觉得帮到大家的顺便顶一下,有错误或不足的地方,请多多指教