dw php如何传递id参数6,[php] 我的微型论坛的简单教程[已完成]第6/8页

现在数据库中还没有数据,所以,我们运行首页,只显示“对不起,论坛尚在建设中……”。既然我们很希望看到结果,就往数据库中加几条数据吧!!当然,直接在MySQL客户端运行查询语句"insert into forums (field1,field2,...fieldN) values (value1,value2,...valueN)"是可行的,但是,作为WEB程序,这样做显然没啥意义。我们靠表单来插入数据。

建立一个新文件:add_forum.php。首先说明的是,这个页面是管理员用来添加版块的,开始肯定要判断当前用户有没有管理权限。现在我们只为了首页显示数据而已,所以,可以先不加验证程序。我用DW做的添加论坛版块的表单如下图:

2007531195155262.gif

其中排序指论坛排列顺序,SQL语句"order by forum_list asc";完全开放的话游客可以发表、回复帖子,否则只注册会员才可以发帖。

表单的HTML部分如下:

论坛管理
论坛名称
论坛简介
论坛排序

完全开放

表单可以用JS或VBS进行验证,也可以提交到save_forum.php后进行必要的验证。我这里对字符串检验不多说了,只研究插入数据的部分。

首先接收表单的值,要区分POST和GET方式,分别使用$_POST["**"]和$_GET["**"]来接受数据。

$forum_name=$_POST["forum_name"];

$forum_description=$_POST["forum_description"];

$forum_order=$_POST["forum_order"];

$isguest=$_POST["isguest"];

//这里注意isguest是复选框,在MYSQL里用0和1来表示是否选中

$isguest=isset($isguest)?1:0;    //选中的话就是1,不选中的话就是0;

?>

写入数据库数据的SQL语句大家都很熟悉了,用insert来实现:

require_once("conn.php");

//刚才接收值的程序

$sql="insert into forums (forum_name,forum_description,forum_order,isguest)values('$forum_name','$forum_description','$forum_order','$isguest')";

mysql_query($sql);    //到这里,数据已经插入了数据库

header("location:index.php");    //执行完插入则跳转到首页

?>

看看我添加页面和显示页面吧:

2007531195155366.gif

最终显示效果:

2007531195156492.gif

OK,现在已经实现了基本的数据插入和读取了。嘿嘿……下一步,和上面道理一样,注册和登陆界面,同样是用DW做表单,HTML代码我不在赘述,抓个图吧!会员注册就填写四个条件可以了(现在都讲究用户体验,能少填就少填吧^@^必要的验证自己研究去)

2007531195156196.gif

会员登陆见图

2007531195156977.gif

先写处理注册信息的部分代码:

//reg.php

require_once "conn.php";$username=$_POST["username"];

$password=md5(trim($_POST["password"]));

$email=trim($_POST["email"]);$groupID=1;    //默认用户等级:1为注册会员,2为管理员

$real_name="未知";    //默认真实姓名,登陆后自己修改吧

$no_of_post=0;        //刚注册用户发贴量肯定为0

$headimg="head/0.gif";    //默认用户头像

$sign="Nothing...";    //默认用户的签名$num=mysql_result(mysql_query("select count(*) from member where username='$username'"),0);    //检查用户名是否已经被注册

/*上面程序其实就是:

$sql="select count(*) from member where username='$username'";

$result=mysql_query($sql);

$num=mysql_result($result,0);

*/

if($num){    //当用户名已经被注册时

echo "";

}else{

$sql="insert into member (groupID,username,password,real_name,jointime,no_of_post,headimg,

email,sign) values ('$groupID','$username','$password','$real_name',now(),'$no_of_post','$headimg','$email','$sign')";

$db->db_query($sql);

//注意插入当前时间,00:00:00 00:00:00格式时用now(),看起来和ASP一样哦……

//这里要特别注意了,注册后会员就会自动登陆,如下:

$_SESSION["username"]=$username;

$_SESSION["groupID"]='1';

$_SESSION["islogined"]="OK";    //我自己加的一个项目,可有可无

echo "";

}

这里出现了SESSION,用来标识用户是否登陆。在PHP中的SESSION是怎样用的呢?按照书上说的,注册SESSION时应该这样:

$username="abc";

session_register("username");

?>

实际上,我们可以这样来用(象ASP那样直接赋值给SESSION变量),使用SESSION时直接拿来用就可以了。

$username="abc";

$_SESSION["username"]=$username;

//下面查看SESSION是否已经生效

if(session_is_registered("username")

echo "SESSION变量已经生效";

//因为它是变量,同样也可以这样来判断

if(isset($_SESSION["username"]))

echo "SESSION变量已经生效";

?>

这里要说明的是,使用SESSION时,必须首先使用session_start()函数。所以,使用SESSION时的每个页面,头部都要有这个函数出现。

这个时候,注册用户已经登陆了,那么,在首页上应该体现出来吧,见下图:

2007531195156801.gif

比较一下没登陆前这个位置:

2007531195156342.gif

实现起来当然靠上面刚讲的SESSION啦。代码如下:

session_start(); if(!isset($_SESSION["username"])||!isset($_SESSION["islogined"])){

echo"登陆    注册";

}else{

echo $_SESSION["username"].",我的资料    注销";

if($_SESSION["groupID"]=="2") echo "    论坛管理";

}

?>

上面的代码应该很简单,相信大家一看就会懂。值的一提的是,我用SESSION["groupID"]来判断是否管理员,如果是,则出现”论坛管理“的连接。

退出的页面loginout.php,逻辑很简单,把所有SESSION释放掉就OK了,PHP中释放全部SESSION的方法是:

SESSION_DESTROY();//或者使用session_unregister()来注销SESSION

?>

然后登陆其实也很简单了(你明白了注册步骤,登陆就应该很容易了)。部分代码:

session_start();require_once("conn.php"); //先接收用户登陆表单传来的值,这里略去$sql="select * from member where username='$username'";

$result=mysql_query($sql);

$num=mysql_num_rows($result);    //得到记录的数量

if($num){  //如果用户存在,则检查密码是否正确

$rs=mysql_fetch_array($result);

if($rs["password"]!=md5($password)){

echo"";

}else{//用户名、密码都正确,注册SESSION变量,然后跳转到首页

$_SESSION["username"]=$username;

$_SESSION["groupID"]=$rs["groupID"];

$_SESSION["islogined"]="OK";

echo"";

}

}else{//如果没有这个用户

echo"";

}

?>

今天实现了添加论坛版块,用户注册、登陆的功能了,也知道了SESSION的基本用法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值