通过清心醉

PHP实例-编写自己的PHP通讯录7-多用户注册审核及权限设置

#先写个用户注册先. login登陆的时候根据yesno的值得来判断是否允许登陆.
#1为已允许注册可登陆,0为审核状态.用户登陆时返回审核状态.
#注册文件代码:registration.php
echo “</br></br></br></br></br>”;
echo ‘<html>’;
echo ‘<title>注册</title>’;
echo ‘<body>’;
echo ‘</br></br></br></br></br>’;
echo ‘<form method=”post” action=”registrationsql.php”>’;
echo ‘<table width=”400″ align=”center”>’;
echo ‘<tr>’;
echo ‘<td>注册帐号:</td>’;
echo ‘<td><input name=”userregistration” type=”text” size=”30″ maxlength=”500″></td>’;
echo ‘</tr>’;
echo ‘<tr>’;
echo ‘<td>注册密码:</td>’;
echo ‘<td><input name=”registrationpassword” type=”text” size=”30″ maxlength=”500″></td>’;
echo ‘</tr>’;
echo ‘<td>备注:</td>’;
echo ‘<td><input name=”text1″ type=”text” size=”30″ maxlength=”500″></td>’;
echo ‘</tr>’;
echo ‘</table>’;
echo ‘<div align=”center”><input type=”submit” value=”注册”></div>’;
echo ‘</form>’;
echo ‘</body>’;
echo ‘</html>’
#然后是注册registrationsql.php执行代码
if (is_array($_POST)&&count($_POST)>0)//先判断是否通过POST传值了
{
if(!empty($_POST[“userregistration”])&&!empty($_POST[“registrationpassword”]))//是否存在参数
{
$i=$_POST[“userregistration”];
$o=md5($_POST[“registrationpassword”]); //密码实现md5加密后在对比
$j=$_POST[“text1″];//备注信息
//数据库里获取出来的帐号密码
$sql=”select * from admin where user=’$i'”;
$rs=mysql_query($sql,$con);        //连接读取表并且执行$sql里的SQL语句.
if(mysql_num_rows($rs)!=0) //如果有相等的数据.
{
echo “帐号已存在</br>”;
echo “<script>setTimeout(\”this.location=’registration.php’\”,3000);</script>”;
}
else
{
$sql1 = mysql_query(“select max(userid) sqlmaxuserid from admin”);
//定义一个查询contacts表,列为id的变量,输入的名字为sqlmaxuserid;
while($sqlmaxid = mysql_fetch_object($sql1)) //循环读取
$tempmaxid = $sqlmaxid->sqlmaxuserid; //提取出sqlmaxuserid.即管理员ID主键的最大值
$insqlmaxid=$tempmaxid+1;//注册的用户id=最大的+1
mysql_query(“INSERT INTO admin(userid,user,password,competence,yesno,text)VALUES(‘$insqlmaxid’,’$i’,'”.md5($o).”‘,’100′,’0′,’$j’)”);
//执行插入语句,id为最大的id+1,最后一个yesno默认为0,即等审核状态.competence为100,默认非管理员,因为管理员是1,以后可以通过后台对该值进行修改.
echo “注册成功,等待管理员审核</br>”;
echo “<script>setTimeout(\”this.location=’index.php’\”,2000);</script>”;
}
}
else
{
echo “请填写完整数据”;
echo “<script>setTimeout(\”this.location=’registration.php’\”,3000);</script>”;
}
}
else
{
echo “非法访问”;
echo “<script>setTimeout(\”this.location=’index.php’\”,3000);</script>”;
exit;
}

#注册好了,在contacts.php显示页面里,增加个判断是否有用户注册的功能:
#找个合适的位置加上:
/************判断是否有等待审核的用户,适用于管理员权限************/
$sql=”select * from admin where yesno=’0′”; //sql读取admin表的yesno审核列
$rso=mysql_query($sql,$con);
if(mysql_num_rows($rso)!=0)
{
echo “<a href=’useryesno.php’>有需要审核的用户</a>”;
}
/************************/

#然后实现注册的表单useryesno.php:
$sql=”select * from admin where yesno=’0′”;  //SQL读遍admin表yesno列的值为0的所有数据
$rsosql=mysql_query($sql,$con);
echo ‘<link rel=”stylesheet” type=”text/css” href=”style.css” />’;
echo ‘<div>’;
echo “<table>”;
echo ‘<tr><td>姓名</td><td>备注</td><td>操作</td></tr>’;
while($row=mysql_fetch_object($rsosql))
{
echo “<tr><td>$row->user</td><td>$row->text</td>”;
echo “<td><a href=’useryessql.php?user=$row->user’>允许</a> / <a href=’usernosql.php?user=$row->user’>禁止并删除</a></td></tr>”;
}
//其实只传递ID值也可以,然后从新从SQL里获取数据显示在表里。
echo “</table>”; //输出表格结束
echo “</div>”;
echo “<a href=’index.php’>返回主页</a>”
#表单里循环读取admin表yesno列为0的数据并显示.
#并且允许的释放yesno值=1即可以登陆,禁止就删除掉当前数据.

#先来看看useryessql.php允许的实现代码.
$o=$_GET[“user”];
$sql=”UPDATE admin SET yesno=’1′ where user=’$o’ “;//update更新指定$o的用户名并将yesno的值=1即审核通过
$yessqluser=mysql_query($sql,$con);
if($yessqluser)
{
echo “用户:”.$o.”审核通过</br>”;
echo “正在为您返回用户管理页面,请稍后”;
echo “<script>setTimeout(\”this.location=’useryesno.php’\”,2000);</script>”;
}
else
{
echo “审核通过用户:”.$o.”失败”;
echo “<script>setTimeout(\”this.location=’useryesno.php’\”,2000);</script>”;
}
/*
如果需要修改用户权限,把compentence的值由100改为1即可.方法上面的即可实现
$sql=”UPDATE admin SET compentence=’1′ where user=’$o’ “;
*/

#再来看usernosql.php禁止并删除的代码.
$o=@$_GET[“user”];
$sql = “delete from admin where user = ‘$o’ “; //禁止通过审核并且删除当前GET过来的user在admin表user列
$delsqluser=mysql_query($sql,$con);
if($delsqluser)
{
echo “用户:”.$o.”审核禁止通过</br>”;
echo “删除用户:”.$o.”成功”;
echo “<script>setTimeout(\”this.location=’useryesno.php’\”,2000);</script>”;
}
else
{
echo “删除用户:”.$o.”失败”;
echo “<script>setTimeout(\”this.location=’useryesno.php’\”,2000);</script>”;
}
#这样 简单的注册,并且管理员审核的功能就已经实现
#接下来就是要实现用户在登陆的时候,如果登陆成功,判断是否具备管理权限及是否已注册.
#在loginsql.php文件里,如果帐号密码审核正确的话,再进行一次状态和权限的审核
#实现代码:

$sql2=”select * from admin where user=’$i’ and yesno=’1′”; //SQL语句查询登陆的用户是否审核通过并且值为1了。
$rs2=mysql_query($sql2,$con);
if(mysql_num_rows($rs2)==0)
{
echo “您的帐号还在审核中”;
exit;
echo “<script>setTimeout(\”this.location=’index.php’\”,2000);</script>”;
}
#同时因为有权限字段competence,1为管理员,100为普通用户,默认注册的全部为100;
$sql1=”select * from admin where user=’$i’ and competence=’1′”; //用户名字和权限参数
$rs1=mysql_query($sql1,$con);
if(mysql_num_rows($rs1)!=0)
{
echo “欢迎您,管理员</br>”;
$_SESSION[“compectece”]=$i;
/*
如果数据库里的compectece的为1表示管理员,创建$_SESSION
*/
}现在完整的数据包:需要的可以下载测试玩玩.

htdocs20141117

 

关于作者

清心醉 administrator

发表评论

请输入验证码: