if(@$_GET["id"])
{
$id = $_GET["id"];
$sql="SELECT * FROM news WHERE id=$id";
$res = mysql_query($sql);
$row=fetch_assoc($res);
$edit = "<form method=post action=takeedit.php>";
$edit .= "<table width=800 cellpadding=0 cellspacing=0 border=1>";
$edit .= "<tr& gt;<td width=150><font> 第 $id 条新闻 </font></td>& lt;td><font> 标题 : <input type=text name=title value=".$row["title"]." size=80></font></td></tr>";
$edit .= "<tr><td valign=top width=150 border=0><font> 作者 <input type=text name=author value=".$row["author"]."><br> 日期 :<br>".$row["date"]."</font></td><td><font size=-2><textarea cols=90 rows=10 name=content >".$row["content"]."</textarea></font></td></tr></table>";
$edit .= "<input type=hidden name=id value=$id>";
$edit .= "<input type=submit name=edit value= 修改 >";
$edit .= "<input type=submit name=delete value= 删除 >";
$edit .= "</form>";
echo $edit;
}
上面“ if(@$_GET["id"]) ”中的“ @ ”意思是说禁止函数返回出错提示。这样当程序出现异常时,不至于让普通用户看见那莫名其妙的出错信息。
值得一说的是,偶们把可以修改的内容放在属性 value 中,既“ value=".$row["title"]." ”等。
在 <form> 标签中把 action 属性设为“ action=takeedit.php ”,当偶们提交表单后,由 takeedit.php 对数据库进行操作。
这其中的语句都是偶们在前面提到的,偶就不信你看不懂!!!程序如下:
if(@$_POST["edit"])
{
$author = $_POST["author"];
$title = $_POST["title"];
$content = $_POST["content"];
$source =$_POST["source "];
$date = date("y-m-d H:i");
mysql_query("UPDATE news SET author='$author',title='$title',content='$content', source =' source',date='$date' WHERE id=$id");
}
if(@$_POST["delete"])
{
mysql_query("DELETE FROM news WHERE id=$id LIMIT 1");
}
芽雨原创php新闻系统教程(第一版) 第六讲:用户管理
在这一部分,偶们来看看如何限制管理新闻程序只让管理员来操作。这包括让管理员注册(这个操作最好用 phpmyadmin 进行,毕竟不能随便让人当管理员嘛)、登陆、保存管理员的信息以便让系统识别他并让他对新闻进行操作、注销。
在这一讲中偶用给程序做注解来介绍相关的知识。
下面请看注册的程序 :
这个程序分为两部分,前面是 MYSQL 部分,后面的是 HTML 部分(提交表单)。两部分连接起来的方式是在提交表单是在 <input> 标签设置 action="https://www.jb51.net/register.php" 。把 MYSQL 放在前面是为了避免有的 PHP 函数不允许前面有 HTML 输出的缘故。
<?
if(@$_POST["submit"])
{
if (empty ($name) || empty ($password)|| empty ($repassword))
//(empty () 函数是用来判断里面的字符是否为空的。
{
echo " 填写有错误,请 <a href='https://www.jb51.net/register.php'> 重新填写 </a>";
}
if($password!=$repassword)
{
echo " 两次密码输入不同,请 <a href='https://www.jb51.net/register.php'> 重新填写 </a>";
}
// 经上面的判断就可以去数据库进行操作了,这样做的目的是为了减轻服务器的负担。
$link=mysql_connect("localhost","root","");
mysql_select_db("yayu",$link);
$sql="SELECT id FROM users WHERE";
$result=mysql_fetch_row(mysql_query($sql));
// mysql_fetch_row() 函数把得到的所有数据存到一个数组中去,这个数组是以数字为
// 引的。在这里,当返回有数据时, $result 相当于逻辑量 1 了。
// 检测用户提交的用户名是否被注册
if($result)
{
echo " 已经有相同的用户名存在,请 <a href='https://www.jb51.net/register.php'> 重新填写 </a>";
}else{
// 如果一切正常,将数据加到数据库中
$sql="insert into users(name,password) values('$name','$password')";
// 检测用户注册是否成功
if(mysql_query($sql,$link))
{
echo " 注册成功,请立即 <a href='https://www.jb51.net/admin.php'> 登陆 </a>";
}
else
{
echo " 注册失败,请 <a href='https://www.jb51.net/register.php'> 重试 </a>";
}
}
}else{
?>
<center>
<h1> 注册 </h1>
<form action="https://www.jb51.net/register.php" method="OST">// 值传递的方式为 POST
<p> 代号 :
<input type="text" value="" size="15">
<br>
<br>
密码 :
<input type="password" size="15" maxlength="50">
</p>
<p> 重新输入密码:
<input type="password" size="15" maxlength="50">
<br>
<br>
<input type="submit" value=" 注册 ">
<input type="reset" value=" 重写 ">
</p></form>
</center>
</body>
</html>
<?
}
?>
再来看登陆和注销的程序