好了现在我们来看login.php文件的程序代码吗.
<?php
session_start();
include("global.php");
if(isset($_POST['username']) && isset($_POST['pwd']))
{
$result = mysql_query("SELECT * FROM xx_admin");
if($info = mysql_fetch_array($result))
{
if($_POST['username'] == $info['username'] && $info['password'] == md5($_POST['pwd']))
{
$_SESSION[user] = $info['username'];
echo("login OK!");
die("<script>window.location.href='index.php';</script>");
}
else echo("<script>window.alert('登陆失败!');window.location.href='".$_SERVER['PHP_SELF']."';</script>");
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>管理员登陆</title>
<style type="text/css">
<!--
body {
background: #EAF4FF;
font-size: 12px;
}
-->
</style>
</head>
<body>
<table width="240" border="0" cellspacing="0" cellpadding="0" align="center">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="login" id="login">
<tr>
<td height="25"></td>
<td height="25"><strong>管理登录</strong></td>
</tr>
<tr>
<td width="59" height="25" align="right">用户名: </td>
<td width="181" height="25"><label>
<input name="username" type="text" class="loginput" id="username" value="" />
</label></td>
</tr>
<tr>
<td height="25" align="right">密 码: </td>
<td height="25"><label>
<input name="pwd" type="password" class="loginput" id="pwd" />
</label></td>
</tr>
<tr>
<td height="25"> </td>
<td height="25"><label>
<input name="Submit" type="submit" class="botton" value="登 录" />
</label></td>
</tr>
</form>
</table>
</body>
</html>
登陆后就可以看到留言的了就会用mreplay.php进行回答网友的问题.代码如下.
<?php
session_start();
include("global.php");
if(!$_SESSION[user])
die("<script>window.alert('请先登陆!');window.location.href='login.php';</script>");
if(isset($_GET['act']) && $_GET['act']=='reply')
{
$content = $_POST['reply'];
$content = str_replace(""," ",$content);
$content = str_replace(" "," ",$content);
$content = str_replace("\n","<br />",$content);
$sql = "UPDATE xx_guestbook SET reply = '{$content}',replytime = '".date('Y-m-d H:i:s')."' WHERE mid = ".intval($_GET['mid']);
//echo $sql;
$row=mysql_query($sql);
if($row)
{
echo("reply OK!");
die("<script>window.location.href='lyb.php';</script>");
}
else echo("false");
}else
if(isset($_GET['act']) && $_GET['act'] == 'edit')
{
if(isset($_GET['mid']))
{
$mid = intval($_GET['mid']);
$row=mysql_query("SELECT * FROM xx_guestbook WHERE mid = {$mid}");
if($row)
{
$rs=mysql_fetch_array($row);
//print_r($rs); DEBUG
//echo "<meta http-equiv=\"refresh\" content=\"1; url=index2.php\">";
$reply = $rs['reply'];
$reply = str_replace("<br />","\n",$reply);
//$reply = str_replace(" ","",$reply);
//$reply = str_replace(" ","",$content);
//$reply = str_replace("<br />","",$reply);
}
else echo("false");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>编辑回复留言</title>
</head>
<body>
<table width="500" border="0" cellspacing="0" cellpadding="0" align="center">
<form action="<?php $_SERVER['PHP_SELF']; ?>?act=reply&mid=<?php echo("{$rs['mid']}");?>" method="post" name="message" id="message">
<tr>
<td height="25" align="center"><strong>回复留言<?php echo $_GET['mid']; ?></strong></td>
</tr>
<tr>
<td height="25" align="center"><label>
<textarea name="reply" cols="70" rows="15" class="input" id="reply"><?php echo $reply; ?></textarea>
</label></td>
</tr>
<tr>
<td height="25" align="center"><label>
<input name="Submit" type="submit" class="botton" value="回复留言" />
</label></td>
</tr>
</form>
</table>
</body>
</html>
<?php
}
?>
好了,其它的都快完了我们就来看看index.php文件显示留方的页面吧.
<?php
@session_start();
include("global.php");
if(isset($_GET['act']) && $_GET['act'] == 'del')
{
if(isset($_GET['mid']))
{
$mid = intval($_GET['mid']);
if(mysql_query("DELETE FROM xx_guestbook WHERE mid={$mid}"))
{
echo("delete OK!");
die("<script>window.location.href='{$_SERVER['PHP_SELF']}';</script>");
//echo "<meta http-equiv=\"refresh\" content=\"1; url=index.php\">";
}
else echo("false");
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>求职留言本</title>
<style type="text/css">
<!--
body {
background: #C7EDDD;
text-align: center;
margin: 0px;
padding: 0px;
font-size: 12px;
}
a {
text-decoration: none;
margin: 0px;
padding: 0px;
}
.messagebox img {
margin: 0px;
padding: 0px;
}
.all {
margin: 0px auto;
padding: 0px 0px 10px;
width: 780px;
background: #C7EDCC;
text-align: left;
}
.header {
margin: 0px;
padding: 0px;
height: 90px;
background: #DDDDDD;
border-top: 5px solid #660066;
border-right: 1px solid #660066;
border-bottom: 1px solid #660066;
border-left: 1px solid #660066;
}
.header h1 {
font-size: 36px;
font-weight: bold;
margin: 0px;
padding: 5px 10px 0px;
}
.header #menu {
margin: 0px;
padding: 25px 10px 0px;
height: 20px;
font-size: 14px;
font-weight: bold;
text-align: right;
}
.messagebox {
margin: 20px 10px 0px;
padding: 0px 0px 5px;
width: 760px;
border: 1px solid #33FFFF;
background: #C7EDCC;
}
.messagebox a {
text-decoration: none;
margin: 0px;
padding: 0px;
}
.messagebox-top {
border-bottom: 1px dashed #00FFFF;
margin: 0px;
padding: 3px 0px 0px;
height: 20px;
background: #CCFFFF;
}
.messagebox-topl {
margin: 0px 0px 0px 10px;
padding: 0px;
float: left;
}
.messagebox-topr {
margin: 0px 5px 0px 0px;
padding: 0px;
float: right;
}
.messagebox-topc {
margin: 1px;
padding: 0px 20px;
}
.messagebox-show {
margin: 5px 10px 0px;
padding: 3px 3px 5px;
overflow: hidden;
border: 1px solid #00FFCC;
}
.messagebox-reply {
border-top: 1px dashed #00FFCC;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
border-right-style: dashed;
border-bottom-style: dashed;
border-left-style: dashed;
margin: 2px 10px 0px;
padding: 2px 2px 5px;
background: #E0EDDC;
}
.messagebox-replyt {
font-weight: bold;
color: #0000FF;
margin: 0px 0px 5px;
padding: 0px;
}
.pages {
background: #00FFFF;
margin: 5px 20px 0px;
padding: 0px 0px 5px;
}
.foot {
background: #E0EDDC;
margin: 5px 0px 0px;
padding: 5px;
text-align: center;
}
-->
</style>
</head>
<body>
<div class="all">
<div class="header">
<h1>求职留言本</h1>
<div id="menu"><a href="index.php">首页</a> <a href="madd.php">发表留言</a><?php
if(!$_SESSION[user])
echo "<a href=\"login.php\">登陆</a>";
if($_SESSION[user])
echo "<a href=\"logout.php\">退出</a>";
?>
</div>
<!-- menu -->
</div><!-- header -->
<?php
$page = isset($_GET['page'])?intval($_GET['page']):1;
$num=10;
$total=mysql_num_rows(mysql_query("select * from xx_guestbook"));
$pagenum=ceil($total/$num);
if($page>$pagenum || $page<=0 || empty($page))
{
//header("location:index.php?page=1"); DEBUG
$page = 1;
}
$offset=($page-1)*$num;
$sql = "SELECT * FROM xx_guestbook ORDER BY posttime DESC LIMIT {$offset},{$num}";
$query = mysql_query($sql);
while($info = mysql_fetch_array($query))
{
?>
<div class="messagebox">
<div class="messagebox-top"><span class="messagebox-topl"><strong><a href="#"><a href="#"><?php echo("{$info['username']}"); ?> </a></strong>发表于 <?php echo("{$info['posttime']}"); ?></span> <span class="messagebox-topr"><a href="#"><img" width=100% src="images/city.gif" alt="IP:<?php echo("{$info['ip']}"); ?>" /></a> <a href="mailto:<?php echo("{$info['email']}"); ?>"><img" width=100% src="images/email2.gif" alt="给TA发email:<?php echo("{$info['email']}"); ?>" /></a> <a href="tencent://message/?uin=<?php echo("{$info['oicq']}"); ?>&Site=web&Menu=yes"><img" width=100% src="images/qq.gif" alt="QQ:<?php echo("{$info['oicq']}"); ?>" /></a> <a href="<?php echo("{$info['weburl']}"); ?>" target="_blank"><img" width=100% src="images/web.gif" alt="主页:<?php echo("{$info['weburl']}"); ?>" /></a></span>
<?php
if($_SESSION[user])
{
?>
<span class="messagebox-topc"><strong><a href="mreply.php?act=edit&mid=<?php echo("{$info['mid']}"); ?>">编辑回复</a> <a onclick="var r=confirm("确认删除吗?")
if (r==true)
{
window.location.href='<?php $_SERVER['PHP_SELF']; ?>?act=del&mid=<?php echo("{$info['mid']}"); ?>';
}
else
{
window.location.href='<?php $_SERVER['PHP_SELF']; ?>';
}" href="#">删除</a></strong></span>
<?php
}
?>
</div>
<!-- messagebox-top -->
<div class="messagebox-show"><?php echo("{$info['content']}"); ?></div>
<!-- messagebox-show -->
<?php
if(!empty($info['reply']))
{
?>
<div class="messagebox-reply">
<div class="messagebox-replyt">admin回复于:<?php echo("{$info['replytime']}"); ?></div>
<?php echo("{$info['reply']}"); ?></div>
<?php
}
?>
<!-- messagebox-reply -->
</div>
<!-- messagebox -->
<?php
}
$prepage = $page - 1;
$nextpage = $page + 1;
?>
<div class="pages">共 <strong><?php echo("$pagenum"); ?></strong> 页 当前第 <strong><?php echo("$page"); ?></strong> 页 <a href="index.php?page=1">第一页</a> <a href="index.php?page=<?php echo("$prepage"); ?>">上一页</a> <a href="index.php?page=<?php echo("$nextpage"); ?>">下一页</a> <a href="index.php?page=<?php echo("$pagenum"); ?>">最后一页</a> </div><!-- pages -->
<div class="foot">
菜根 <br />
Copyright © 菜根 xanxin <a href="http://phpvc.com">http://phpvc.com</a> </div>
<!-- foot -->
</div>
<!-- all -->
</body>
</html>
显示了当然会有留言页面喽,如下.
<?php
@session_start();
include("global.php");
//获得IP地址 来自sablogX 1.6
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
$onlineip = getenv('REMOTE_ADDR');
} elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
$onlineip = $_SERVER['REMOTE_ADDR'];
}
$onlineip = addslashes($onlineip);
if($_POST['add'] == 'add')
{
$username = $_POST['username'];
$username = htmlspecialchars($username);
$username = trim($username);
$qq = $_POST['qq'];
$email = $_POST['email'];
$email = htmlspecialchars($email);
$weburl = $_POST['weburl'];
$weburl = htmlspecialchars($weburl);
$content = $_POST['content'];
$ip = $onlineip;//$_SERVER['REMOTE_ADDR'];
$posttime = date('Y-m-d H:i:s');
$content = htmlspecialchars($content);
$content = str_replace(""," ",$content);
$content = str_replace(" "," ",$content);
$content = str_replace("\n","<br />",$content);
$sql = "INSERT INTO xx_guestbook(username,email,weburl,oicq,content,posttime,ip) VALUES('$username','$email','$weburl','$qq','$content','$posttime','$ip')";
if(mysql_query($sql))
{
echo("post OK!");
die("<script>window.location.href='lyb.php';</script>");
//echo "<meta http-equiv=\"refresh\" content=\"1; url=index2.php\">";
}
else
{
echo"false!";
}
}
else
{
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>发表留言</title>
<style type="text/css">
<!--
body {
font-size: 12px;
background: #FAFCFF;
}
-->
</style>
<script language=JavaScript>
function FrontPage_Form1_Validator(theForm)
{
if (theForm.username.value == "")
{
alert("请填写昵称!");
history.back();
theForm.username.focus();
return (false);
}
if (theForm.username.value.length<3)
{
alert("昵称至少应为3个字符!");
theForm.username.focus();
return (false);
}
if (theForm.username.value.length>15)
{
alert("昵称不能大于15个字符!");
theForm.username.focus();
return (false);
}
if(theForm.email.value!=""){
var email1 = theForm.email.value;
var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
flag = pattern.test(email1);
if(!flag){
alert("邮件地址格式不对!");
theForm.email.focus();
return false;
}
}
if(theForm.qq.value!="")
{
for (i=1;i<theForm.qq.value.length;i++){
ct=theForm.qq.value.charAt(i);
if (!(ct>='0'&&ct<='9'))
{
alert("QQ号码只允许输入0-9数字");
theForm.qq.focus();
return(false);
}
}
}
if (theForm.content.value == "")
{
alert("留言内容不能空!");
theForm.content.focus();
return (false);
}
if (theForm.content.value.length<5)
{
alert("留言内容最少5个字符!");
theForm.content.focus();
return (false);
}
if (theForm.weburl.value != "")
{
var weburl = theForm.weburl.value;
var Expression = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?/;
var objExp = new RegExp(Expression);
if(objExp.test(weburl) != true)
{
alert("url地址格式不对!");
theForm.weburl.focus();
return false;
}
}
return (true);
}
</script>
</head>
<body>
<table width="681" border="0" cellspacing="0" cellpadding="0" align="center">
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="message" id="message" onsubmit="return FrontPage_Form1_Validator(this)">
<tr>
<td height="25" colspan="2" align="center"><strong>发表留言(带*为必填)</strong></td>
</tr>
<tr>
<td width="109" height="25" align="right">呢称: </td>
<td width="572" height="25"><label>
<input name="username" type="text" class="input" id="username" value="<?php
if($_SESSION[user])
echo "{$_SESSION[user]}";
?>" />
<font color="#000000">*</font>(<font color="#ff6600">*</font>为必填项)</label></td>
</tr>
<tr>
<td height="25" align="right">QQ: </td>
<td height="25"><label>
<input name="qq" type="text" class="input" id="qq" />
(纯数字)</label></td>
</tr>
<tr>
<td height="25" align="right">E-mail: </td>
<td height="25"><label>
<input name="email" type="text" class="input" id="email" size="30" />
(必须含有@)</label></td>
</tr>
<tr>
<td height="25" align="right">个人主页(blog): </td>
<td height="25"><label>
<input name="weburl" type="text" class="input" id="weburl" size="30" />
(以http://开关)</label></td>
</tr>
<tr>
<td height="25" align="right">内容: </td>
<td height="25"><label>
<textarea name="content" cols="70" rows="15" class="input" id="content"></textarea>
<font color="#000000">*</font></label></td>
</tr>
<tr>
<td height="25"> </td>
<td height="25"><label>
<input name="submit" type="submit" class="botton" id="submit" value="发表留言" />
<input name="reset" type="reset" class="botton" value="重新填写" id="reset" />
<input name="add" type="hidden" id="add" value="add" />
</label></td>
</tr>
</form>
</table>
</body>
</html>
<?php
}
?>
OK了简单的留言系统就OK了.
作留言板我们来看看下面图片上的文件是指那些吧,
global.php是全局文件有数据链接代码.index.php是显示文件不用多说了下面有讲解的,login.php登录文件,logout.php退出登录,madd.php 增加留言,mreplay.php回答留言,好了我们先来看看global.php文件的代码吧.
<?php
@header("content-Type: text/html; charset=UTF-8");
$dbhost = 'localhost';//数据库服务器
$dbuser ='root';//数据库用户名
$dbpwd = '';//数据库密码
$dbname = 'demo_gb';//数据库名
$db=mysql_connect($dbhost,$dbuser,$dbpwd) or die('为能连接数据库。');
mysql_select_db($dbname,$db) or die('不能连接数据库。');
mysql_query("set names 'utf8'");
?>
这全是数据库连接函数哦.
现在看logout.php这里把sesson删除就OK了.代码如下.
<?php
@header("content-Type: text/html; charset=UTF-8");
session_start();
if(session_destroy())
{
echo("out OK!");
//window.alert('退出成功!')
die("<script>;window.location.href='index.php';</script>");
}
else echo "out false please go back";
//header("location:index2.php");
?>
我刚才仔细看了下上面的代码,发现了一个错误,我把性别判断写到循环之外去了。在这里跟大家道歉了,现在已经及时更正。呵呵,低级错误。但发现错误是好事哦,可以总结经验教训……好了好了,不找借口了,低头认错,呵呵。
OK,我们开始写编辑和删除功能吧。我们先来改一下show.php页面,让它有个操作区,并且添加[编辑]和[删除]的连接。让用户去操作,具体代码我帖出来先,我已经把格式尽量弄得方便看了,如何各位还看不明白的话,可以对比上面的show.php看哦。
input.php 文件代码:(更新版)
代码:
[<a href="input.php">继续添加</a>]
<?php
//这里是PHP代码
$sql = "SELECT * FROM `addr_list`";//需要执行的SQL语句(这里是浏览数据功能)
require('conn.php'); //调用conn.php文件,执行数据库操作
?>
<!---这里HTML代码,创建一个表格--->
<table width="100%" border="1">
<tr>
<th width="13%" bgcolor="#CCCCCC" scope="col">姓名</th>
<th width="13%" bgcolor="#CCCCCC" scope="col">性别</th>
<th width="13%" bgcolor="#CCCCCC" scope="col">手机</th>
<th width="13%" bgcolor="#CCCCCC" scope="col">邮箱</th>
<th width="29%" bgcolor="#CCCCCC" scope="col">地址</th>
<th width="19%" bgcolor="#CCCCCC" scope="col">操作</th>
</tr>
<?php
//这里是PHP代码
//判断性别
while($row = mysql_fetch_row($result)) //循环开始
{
if($row[2]==0)
{
$sex = '女士';
}
else
{
$sex = '先生';
}
?>
<!---被循环的HTML表格中带有PHP代码--->
<tr>
<td><?php echo $row[1]; ?></td>
<td><?php echo $sex; ?></td>
<td><?php echo $row[3]; ?></td>
<td><?php echo $row[4]; ?></td>
<td><?php echo $row[5]; ?></td>
<td><div align="center">
[<a href="edit.php?id=<?php echo $row[0]; ?>">编辑</a>]
[<a href="del.php?id=<?php echo $row[0]; ?>">删除</a>]
</div></td>
</tr>
<?php
}
?>
</table>
说明:我们的两个链接[编辑]和[删除]指向的 edit.php 和 del.php 页面,现在这两个页还没做,我们先来搞清楚为什么要这样写它。我们可以看到它的形式为:edit.php?id=xxx,那么xxx是什么?前面讲过,不能忘记哦,$row[0]代表调用id嘛,我们用PHP语句写到链接里,所以它就长成那样子了,呵呵。转换出来后,它应该会在地址栏里显示类似 edit.php?id=1 的地址,这是一种传值方式,如果你要研究下,呵呵,google咯,我这里就不多讲了。好,那么我们试看它们到底有没有把值传到 edit.php 和 del.php 页面了,所以我们先来写这两个页面测试,记得是测试哦,所以不是完整版了,呵呵。
edit.php 文件代码:(不完整)
代码:
<?php
echo $id;
?>
del.php 文件代码:(不完整)
代码:
<?php
echo $id;
?>
说明:两个双胞胎长一模一样,呵呵。好,大家可以测试一下了,运行show.php,点[编辑]或[删除],看看$id的值是否能显示或变换,如果成功的话,我们就可以继续咯。
OK,现在我们来正式写edit.php和del.php,如果前面你已经搞清楚post.php和show.php怎么写,那么这两个也就不成问题了,大同小异,所以不要太紧张。先来写edit.php吧。
edit.php 文件代码:(完整版)
代码:
<?php
$sql = "SELECT * FROM `addr_list`
WHERE `id`='$id'"; //需要执行的SQL语句(这里是浏览数据功能)
//要注意ID哦,这个语句和show.php有些不同
require('conn.php'); //调用conn.php文件,执行数据库操作
$row = mysql_fetch_row($result); //将SQL执行语句的结果集保存为数组(排队咯)
?>
<!---我们把input.php的表单扣来加入PHP代码就可以了,只有性别部分要做特殊处理--->
<form id="form1" name="form1" method="post" action="edited.php">
<p>姓名:<input name="name" type="text" id="name" value="<?php echo $row[1]; ?>" /></p>
<p>
<?php
//特殊处理性别,如果是0就选中女士,否则选种先生,checked="checked"就是选中哦
if($row[2]==0)
{
echo '性别:<input type="radio" name="sex" value="0" checked="checked" />女士
<input type="radio" name="sex" value="1" />先生';
}
else
{
echo '性别:<input type="radio" name="sex" value="0" />女士
<input type="radio" name="sex" value="1" checked="checked" />先生';
}
?>
</p>
<p>手机:<input name="mobi" type="text" id="mobi" value="<?php echo $row[3]; ?>" /></p>
<p>邮箱:<input name="email" type="text" id="email" value="<?php echo $row[4]; ?>" /></p>
<p>地址:<input name="addr" type="text" id="addr" value="<?php echo $row[5]; ?>" /></p>
<p>
<input type="submit" name="Submit" value="添加" />
<input type="reset" name="Submit2" value="重写" />
</p>
</form>
说明:其实就是把input.php复制过来修改一下了,呵呵,这里要注意的就是$sql语句,这里有个SQL的条件句,用来识别ID的,还有就是性别处理部分。checked="checked"表示单选按钮已被选中,知道这些,这部分就搞顶了。我们还要做一个edited.php页面用来发送处理修改的数据,它的功能跟post.php差不多了。呵呵,我们抓紧做吧,就快完工咯!
edited.php 文件代码:
代码:
<?php
//需要执行的SQL语句(这里是修改数据功能)
$sql = "UPDATE `addr_list` SET
`name` = '$name',
`sex` = '$sex',
`mobi` = '$mobi',
`email` = '$email',
`addr` = '$addr'
WHERE `addr_list`.`id` =12 ";
//调用conn.php文件,执行数据库操作
require('conn.php');
//显示操作提示,注意$result也是conn.php里的哦
if($result)
{
echo '恭喜,修改成功!<p>';
}
?>
[<a href="show.php">查看通讯录</a>] [<a href="input.php">继续添加</a>]
说明:这里要注意的也是$sql的SQL语句,我这里缩进处理了,方便大家看清楚,大家自己写的时候没有必要这么写了,呵呵。跟post.php八九不离十了,所以也不用多讲咯,大家测试一下吧。最后剩下del.php了,胜利就在眼前!呵呵。
del.php 文件代码:(完整版)
代码:
<?php
//需要执行的SQL语句(这里是删除数据功能)
$sql = "DELETE FROM `addr_list` WHERE `id`='$id'";
//调用conn.php文件,执行数据库操作
require('conn.php');
//显示操作提示,注意$result也是conn.php里的哦
if($result)
{
echo '恭喜,删除成功!<p>';
}
?>
[<a href="show.php">查看通讯录</a>] [<a href="input.php">继续添加</a>]
说明:这个也是一个模子里造出来的,呵呵,很简单,就是$sql的SQL删除语句有点不同,不管怎么说,还是建议大家去学一下SQL语法,很有用处的,因为它运用的很广泛嘛。
好了,到这里,这篇文章就全部结束啦。我就不上传源代码让大家下载咯,免得某些人跟我一样喜欢偷懒,呵呵,这招比较绝,逼着想学的人去看,有好处的了。
那么,还是用老的闭幕式来结束吧,呵呵:
重要说明,一定要看哦,这个只是最简单、最基础的东西,只是用来学习的,不能投入使用哦,不然出什么问题可不要怪我啊,呵呵。如果你要自己用的话,还要进行大量完善,比如加入些验证功能、优化代码之类的,还是那句话:有什么不足的地方,欢迎各位指正,让大家见笑了。
写这篇文章最根本的目的:希望能给需要的人一些微薄的帮助。我PHP也是自学的,知道其中的辛苦,所以自己虽然很菜菜,但是也要懂得去分享,也希望每个人都能这样:共同学习、共同进步
革命尚未胜利~我们接着来。需要对上面进行点补充:要先创建一个数据库才能导入哦!
为了区分和方便讲解,我把数据库命名为list,把数据表命名为addr_list,还是把完整的SQL语句写出来吧。
首先创建数据库 list:
代码:
CREATE DATABASE `list` ;
然后创建数据表 addr_list:
代码:
CREATE TABLE `addr_list` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` varchar(10) NOT NULL,
`sex` tinyint(1) NOT NULL,
`mobi` varchar(11) NOT NULL,
`email` varchar(50) NOT NULL,
`addr` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
好,我们现在来做网页+写程序吧:
input.php 文件代码:
代码:
<form id="form1" name="form1" method="post" action="post.php">
<p>姓名:<input name="name" type="text" id="name" /></p>
<p>
性别:<input type="radio" name="sex" value="0" />女士
<input type="radio" name="sex" value="1" />先生
</p>
<p>手机:<input name="mobi" type="text" id="mobi" /></p>
<p>邮箱:<input name="email" type="text" id="email" /></p>
<p>地址:<input name="addr" type="text" id="addr" /></p>
<p>
<input type="submit" name="Submit" value="添加" />
<input type="reset" name="Submit2" value="重写" />
</p>
</form>
说明:因为只有HTML代码,所以你要存成html格式的话也是可以的。不要被那些乱七八糟的<p></p>迷惑哦,我们要看的关键字是form还 有input。form主要看method和action,method是方法,有post和get等,关于这个你可以自己去了解一下;action是动作,也就是传送值得的目标页。通俗一点就是点按钮会跑到的页面。那么,input要注意的是name和id,要定义一些好记的名字。为了方便记忆,我把表单名和数据库的字段名定义成一样的了,这并不是必须的,但还是很有必要的。最后注意的是sex,别想歪了,我说的是性别了。一定要注意它的name是一样的,但是value不同哦。我们前面已经说过,用0表示女,用1表示男。这个表单建议用些工具去做,比如DW等,几秒种就可以搞定了。用手写的话,需要有一定的html语言基础。如果使用utf8,一定要记得用工具把所有网页都另存为utf8的哦。
post.php 文件代码:(不完整)
代码:
<?php
//设置表单变量
$name = $_POST['name'];
$sex = $_POST['sex'];
$mobi = $_POST['mobi'];
$email = $_POST['email'];
$addr = $_POST['addr'];
//测试是否传值
echo $name . '<br>';
echo $sex . '<br>';
echo $mobi . '<br>';
echo $email . '<br>';
echo $addr . '<br>';
?>
说明:这是一个不完整的post.php代码,我们先写一些简单的脚本来测试input.php的值是否成功的传到post.php页。“设置表单变量”不是必须的,但也是很有必要的,以免发生意外状况,呵呵。你现在所看到的变量,如$name,就是前面input.php里的name了。比如说:<input name="mobi" type="text" id="mobi" /> (input.php页),里面的name="mobi", 就是这里的$mobi (post.php页 )这个应该没什么问题吧?那么就运行input.php页,随便填写些信息,然后按“添加”,如果按了“添加”之后,转到了post.php页,并且正确的显示了你所填写的内容,那么就表示传值就成功了,我们就可以接着网下做了。小提示:echo为打印输出,类似$name以$开头的都是变量,<br>换行。echo是一个语言结构,并非函数,这点要记得哦。
OK,传值成功了,那么我们要做的就把值写进数据库吧。在改进post.php之前,我们的先写一个conn.php文件,并且调用它进行数据库的一些操作。那么我们来看看这段简陋的代码吧:
conn.php 文件代码:
代码:
<?php
//设置数据库变量
$db_host = 'localhost'; //数据库主机名称,一般都为localhost
$db_user = 'root'; //数据库用户帐号,根据个人情况而定
$db_passw = '123456'; //数据库用户密码,根据个人情况而定
$db_name = 'list'; //数据库具体名称,以刚才创建的数据库为准
//连接数据库
$conn = mysql_connect($db_host,$db_user,$db_passw) or die ('数据库连接失败!');
//设置字符集,如utf8和gbk等,根据数据库的字符集而定
mysql_query("set names 'utf8'");
//选定数据库
mysql_select_db($db_name,$conn) or die('数据库选定失败!');
//执行SQL语句(查询)
$result = mysql_query($sql) or die('数据库查询失败!');
?>
说明:这段代码本身并没有什么作用,因为它要经常用到,所以只是为了减少工作量不必重复写它,所以把它专门放在一个文件里,这样就可以随时调用了。这里并不需要多讲解什么,你只需要根据个人情况改一下“设置数据库变量”和“设置字符集”的部分就可以了。不要尝试单独的运行conn.php这个脚本,肯定会出错的,因为我们还没开始设置$sql呢
OK,数据库的基本操作搞定了。我们来开始写完整版的post.php吧,呵呵。
post.php 文件代码:(完整版)
代码:
<?php
//设置表单变量
$name = $_POST['name'];
$sex = $_POST['sex'];
$mobi = $_POST['mobi'];
$email = $_POST['email'];
$addr = $_POST['addr'];
//需要执行的SQL语句(这里是插入数据功能)
$sql = "INSERT INTO `addr_list`
( `id` , `name` , `sex` , `mobi` , `email` , `addr` )
VALUES
(NULL , '$name', '$sex', '$mobi', '$email', '$addr')";
//调用conn.php文件进行数据库操作
require('conn.php');
//提示操作成功信息,注意:$result存在于conn.php文件中,被调用出来
if($result)
{
echo '恭喜,操作成功!<p>';
}
?>
[<a href="show.php">查看通讯录</a>] [<a href="input.php">继续添加</a>]
说明:终于见到post.php的完整版了,够简陋了吧?呵呵。这里需要注意的是$sql中的SQL语句,如果不会SQL语句的话,可以用phpMyadmin去扣,具体怎么扣,就请各位自己google一下咯,有时间的话再另写了。建议还是学学SQL语法比较好一些。接着看$sql,id对应NULL,前面说过,id建立以后就不用管了,所以可以留空值,接下,数据库的name字段对应$name变量,以此类推就可以咯。写出你需要执行的语句,然后调用conn.php执行就可以了。就这么简单。为了使界面人性化一点,我们应该加些操作提示和相关链接。这样我们的post.php就算完成了,呵呵,超简陋。不过用来学习,应该追求简陋比较好,呵呵。
OK,现在我们就来做show.php,显示页吧。已经完成奖将近一半的工作咯,再坚持下就大功告成了。
show.php 文件代码:
代码:
[<a href="input.php">继续添加</a>]
<?php
//这里是PHP代码
$sql = "SELECT * FROM `addr_list`";//需要执行的SQL语句(这里是浏览数据功能)
require('conn.php'); //调用conn.php文件,执行数据库操作
?>
<!---这里HTML代码,创建一个表格--->
<table width="100%" border="1">
<tr>
<th bgcolor="#CCCCCC" scope="col">姓名</th>
<th bgcolor="#CCCCCC" scope="col">性别</th>
<th bgcolor="#CCCCCC" scope="col">手机</th>
<th bgcolor="#CCCCCC" scope="col">邮箱</th>
<th bgcolor="#CCCCCC" scope="col">地址</th>
</tr>
<?php
//这里是PHP代码
while($row = mysql_fetch_row($result)) //循环开始
{
//判断性别
if($row[2]==0)
{
$sex = '女士';
}
else
{
$sex = '先生';
}
?>
<!---被循环的HTML表格中带有PHP代码--->
<tr>
<td><?php echo $row[1]; ?></td>
<td><?php echo $sex; ?></td>
<td><?php echo $row[3]; ?></td>
<td><?php echo $row[4]; ?></td>
<td><?php echo $row[5]; ?></td>
</tr>
<?php
}
?>
</table>
说明:这段代码就极度扯蛋了,因为这里我们不可能讲到诸如Smarty和PHPlib之类的模板引擎,所以只能是PHP夹着HTML丢在同一个文件里面了,但是真正开发的时候可千万不能这么干啊,不然我就成千古罪人了。形势所迫,形势所迫,大家将就一下吧。也不是很难看懂,抓住一个原则 <?php 这里里面的就是PHP代码 ?>,反之,外面的就是HTML代码咯。着重讲一下while($row = mysql_fetch_row($result)) 吧,在这里mysql_fetch_row($result)将我们执行SQL语句获得结果集保存为数组。当然你不需要急着去了解什么叫做数组,你只需要知道,它帮我们的字段排好队了,记得从0开始排的哦:0->id; 1->name; 2->sex; 3->mobi; 4->email; 5->addr 这样一目了然了,我们需要调用的时候就用$row[X]来调用,X就是队列号,比如调用name,就是$row[1],因为我们不要求显示id,所以上面的代码中没有$row[0],那为什么多了$sex呢?因为我们不能用数字来显示性别吧,所以加了个条件句:如果$row[2]等于0,那么就显示"女士",否则就显示"先生"。当然你可以随便改这个性别的称呼了,比如0显示夏娃,1显示亚当,呵呵。
OK,那么就先到这里吧。还剩下两部分:修改和删除,我们下次搞定它们。看起来快,写起来就不是那么容易了,我手都快脱臼了,呵呵。