照着老师写的,出现一些问题
来源:1-3 用户注册数据入库
Wjkawen
2017-07-03 18:24:57
<?php
//表单进行了提交处理
if(!empty($_POST['username']))
{
include_once './lib/fun.php';
$username = trim($_POST['username']);//mysql_real_escape_string()进行过滤
$password = trim($_POST['password']);
$repassword = trim($_POST['repassword']);
//判断用户名不能为空
if(!$username)
{
echo '用户名不能为空';
exit;
}
if(!$password)
{
echo '密码不能为空';
exit;
}
if(!$repassword)
{
echo '确认密码不能为空';
exit;
}
if($password !== $repassword)
{
echo '两次输入的密码不一致,请重新输入';
exit;
}
//数据库连接
$con = mysqlInit('localhost', 'root', 'root', 'mall');
if(!$con)
{
echo mysql_errno();
exit;
}
//判断用户是否在数据表存在
$sql = "SELECT COUNT( `id` ) as total FROM `mall_user` WHERE `username` = '{$username}'";
$obj = mysql_query($sql);
$result = mysql_fetch_assoc($obj);
//验证用户名是否存在
if(isset($result['total']) && $result['total'] > 0)
{
echo '用户名已存在,请重新输入';
}
//密码加密处理
$password = createPassword($password);
unset($obj, $result, $sql);
//插入数据
$sql = "INSERT `mall_user`(`username`,`password`,`create_time`) values('{$username}','{$password}','{$_SERVER['REQUEST_TIME']}')";
$obj = mysql_query($sql);
if($obj)
{
$userId = mysql_insert_id();//插入成功的主键id
echo sprintf('恭喜您注册成功,用户名是:%s,用户id:%s', $username, $userId);
exit;
}
else
{
echo mysql_error();
exit;
}
}
?>上面是register.php文件的php部分
<?php
//连接数据库
function mysqlInit($host,$username,$password,$dbName)
{
$con=mysql_connect($host,$username,$password);
if(!$con){
return false;
}
mysql_select_db($dbName);
mysql_set_charset('utf8');
return $con;
}
//密码加密
function createPassword($password){
if(!$password){
return false;
}
return md5(md5($password).'HELLO');
}这是fun.php文件
问题一:乱码
突然就乱了,找不到原因
问题二:
刷新register.php文件会自动添加一行与之前相同的数据,id加1,名称重复了
怎么回事?
php版本是5.4.45
数据表设置了编码 utf8_general_ci
1回答
好帮手慕查理
2017-07-04
您好:
问题一解答:请您检测您的编码是否为utf8,为否时请按照下列语句更改:
查看数据库的编码格式:show variables like 'character_set_database';
修改数据库的编码格式:alter database '数据库名' character set utf8;
查看表的编码格式:show create table '表名';
修改表的编码方式:alter table '表名' default character set utf8;
修改字段的编码方式:alter table '表名' change '字段名' '字段名' 类型 character set utf8;
问题二解答:刷新register.php文件会自动添加一行与之前相同数据是因为由于您从其它页面将数据提交给register.php页面后,register.php页面中的变量会存在数值,而您进行数据写入操作之后,没有进行清空变量的值或者跳转至其它页面,所以数据会依然保存在变量当中,导致您刷新页面时会再次写入之前的数据。id加1是您设置了主键自增。
如果解决了您的问题,请采纳,祝学习愉快!
相似问题