$sql="SELECT * FROM new WHERE login_name='$login_name'"; $sql=@mysql_query($sql); if($rs=@mysql_fetch_array($sql)) { echo '<script>alert("用户名已存在!"); location.replace ("admin_useradd.php")</script>'; }
$sql="select login_name from new where login_name='$login_name'"; $res=mysql_query($sql); if(mysql_fetch_row($res)){ echo "您输入的用户名存在,请返回重新输入!";}else{//插入操作 }
修改你的,但是只用一条不能同时提示错误又提示存在:<?php include("../conn_inc_php/conn_inc.php"); $database->connect(); $login_name=$_REQUEST['login_name']; $password=$_REQUEST['password']; $select="insert into new (login_name,password)values('$login_name','$password')"; $query=@mysql_query($select); if ($query) { echo "插入成功"; } else { echo "您输入的用户名存在,请返回重新输入!!"; } ?> 所以在插入之前先判断是比较好的选择,要不你写个存储过程也行。
<?php //你代码有问题,这样写好些 //MAIN 逻辑 如MVC中的C include("../conn_inc_php/conn_inc.php"); //最最简单判断,不然每次都得插入数据库 if($_POST ){//从POST里得到数据不要从$_REQUEST来,$_REQUEST包含$_COOKIE,$_GET,安全问题 $database->connect(); $error = verfy($_POST);//验证用户提交数据 if(!$error){ $uid=adduser(); }else{ //在这里显示错误信息 } }die;//终止 //FUNCTION 自己定义函数 如MVC中的M function verfy(){ $return=''; if(user_exit()){ $return.='<li>用户名已存在</li>'; }elseif(empty($_POST['login_name'])){ $return.='<li>用户名不为空</li>'; } //同样.... return $return; }function user_exit(){ $loginname=addslashes ($_POST['login_name']);//防止注入 $sql="select 1 from new where usename like '$loginname'"; $query=mysql_query($sql); return mysql_fetch_array($query); } function adduser(){ $loginname=addslashes ($_POST['login_name']);//防止注入 $password=md5 ($_POST['password']);//防止密码泄漏 //$password=同样处理 $sql="insert into new set login_name='$loginname',password="; mysql_query($sql ); return mysql_insert_id();//这个函数是不是这样记不得了 }
呵呵。用ajax方式来做把,比较友好。
$sql="select login_name from new where login_name='$login_name'"; $rs=mysql_query($sql); $count=mysql_num_rows($rs);if($count>0) { echo "<script>alert('己有此記錄,請重新填寫!');</script>";
}else { $select="insert into new (login_name,password) value('$login_name','$password')"; $query=mysql_query($select); }
我这几天也在学做这个,可惜总是会警告Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in ....... 汗死,一直没弄成功,也来学习一下
$res=mysql_query($sql);
if(mysql_fetch_row($res)){
echo "您输入的用户名存在,请返回重新输入!";}else{//插入操作
}
include("../conn_inc_php/conn_inc.php");
$database->connect();
$login_name=$_REQUEST['login_name'];
$password=$_REQUEST['password'];
$select="insert into new (login_name,password)values('$login_name','$password')";
$query=@mysql_query($select);
if ($query) {
echo "插入成功";
}
else {
echo "您输入的用户名存在,请返回重新输入!!";
}
?>
所以在插入之前先判断是比较好的选择,要不你写个存储过程也行。
//MAIN 逻辑 如MVC中的C
include("../conn_inc_php/conn_inc.php"); //最最简单判断,不然每次都得插入数据库
if($_POST ){//从POST里得到数据不要从$_REQUEST来,$_REQUEST包含$_COOKIE,$_GET,安全问题
$database->connect();
$error = verfy($_POST);//验证用户提交数据
if(!$error){
$uid=adduser();
}else{
//在这里显示错误信息
}
}die;//终止
//FUNCTION 自己定义函数 如MVC中的M
function verfy(){
$return='';
if(user_exit()){
$return.='<li>用户名已存在</li>';
}elseif(empty($_POST['login_name'])){
$return.='<li>用户名不为空</li>';
}
//同样....
return $return;
}function user_exit(){
$loginname=addslashes ($_POST['login_name']);//防止注入
$sql="select 1 from new where usename like '$loginname'";
$query=mysql_query($sql);
return mysql_fetch_array($query);
}
function adduser(){ $loginname=addslashes ($_POST['login_name']);//防止注入
$password=md5 ($_POST['password']);//防止密码泄漏
//$password=同样处理
$sql="insert into new set login_name='$loginname',password=";
mysql_query($sql );
return mysql_insert_id();//这个函数是不是这样记不得了
}
$sql="select login_name from new where login_name='$login_name'";
$rs=mysql_query($sql);
$count=mysql_num_rows($rs);if($count>0)
{
echo "<script>alert('己有此記錄,請重新填寫!');</script>";
}else
{
$select="insert into new (login_name,password) value('$login_name','$password')";
$query=mysql_query($select);
}