PHP Hello World!
YOYO
posted @ 2010年6月05日 11:31
in 【PHP】
, 5219 阅读
刚看了下W3CSchool的PHP教程,感觉比较好上手,于是写了个留言本HelloWorld巩固巩固。
功能很简单:安装、发表留言、管理登陆、管理员删除,没做什么安全处理,也没怎么美化,但既然是第一个php程序就蛮留念一下 :)。
【config.php】参数配置文件
<?php // 数据库服务器 $db_server = "localhost:3306"; // 数据库用户名 $db_user = "root"; // 数据库用户密码 $db_password = "root"; ?>
【conn.php】连接文件
<?php // 开启Session session_start(); // 设置处理错误函数 set_error_handler("handleError"); // 导入参数配置文件 require("config.php"); // 连接数据库 $conn = mysql_connect($db_server, $db_user, $db_password); if (!$conn) { echo "Connect Database Error: ".mysql_error()."<br/>"; } // 检查程序是否安装 if (getFileName() != "install.php" && !isInstalled()) { jumpURL("install.php"); } /* * 处理错误函数 */ function handleError($error_level, $error_message, $error_file, $error_line) { echo "<hr/>".$error_message." In File: ".$error_file." Row: ".$error_line."<br/>"; die(); } /* * 获得当前页面文件名 */ function getFileName() { return substr(strrchr($_SERVER["SCRIPT_NAME"], "/"), 1)."<br/>"; } /* * 检查程序是否已经安装好 */ function isInstalled() { global $conn; return mysql_select_db("guestbook", $conn); } /* * 结束处理 */ function clear() { global $conn; mysql_close($conn); } /* * 判断是否管理员 */ function isAdmin() { return isset($_SESSION["admin_flag"]) && $_SESSION["admin_flag"]; } /* * 跳转到首页 */ function jumpHome() { jumpURL("index.php"); } /* * 跳转到页面 */ function jumpURL($url) { if ($url == '') $url = "index.php"; header("Location:".$url); } ?>
【install.php】安装文件
<?php require("conn.php"); ?> <?php echo "开始安装"."<br/>"; // 创建数据库 $sql = "DROP DATABASE IF EXISTS guestbook"; mysql_query($sql, $conn); echo mysql_error(); $sql = "CREATE DATABASE guestbook"; mysql_query($sql, $conn); echo "创建数据库guestbook"."<br/>"; // 选择数据库 mysql_select_db("guestbook"); // 创建信息表 $sql = "CREATE TABLE message ( id INT PRIMARY KEY AUTO_INCREMENT, author VARCHAR(20), content TEXT, publishTime DATETIME )"; mysql_query($sql, $conn); echo "创建表message"."<br/>"; // 创建管理员表 $sql = "CREATE TABLE admin ( name VARCHAR(20) PRIMARY KEY, password VARCHAR(20) )"; mysql_query($sql, $conn); echo "创建表admin"."<br/>"; // 插入管理员数据 $sql = "INSERT INTO admin VALUES ('admin', 'admin')"; mysql_query($sql, $conn); echo "初始化管理员账号admin,密码admin"."<br/>"; // 结束处理 clear(); // 提示信息 echo "安装完成"."<br/>"; // 删除安装文件 unlink("install.php"); // 跳转到首页 jumpHome(); ?>
【index.php】留言本主界面,展示记录
<?php require("conn.php"); ?> <html> <head> <title>GuestBook</title> <link href="style.css" rel="stylesheet" type="text/css" /> <body> <h3>Messages</h3> <hr/> <table width="100%" cellpadding="3" cellspacing="0" border="0"> <?php // 显示留言 $sql = "SELECT * FROM message ORDER BY id DESC"; $rs = mysql_query ($sql, $conn); $i = 0; while ($record = @mysql_fetch_array($rs)) { echo "<tr><td".($i==0?"":" style='border-top: 1px dashed #cccccc;'")."> ".$record["author"]." in [".$record["publishTime"]."] <ul>".$record["content"]."</ul>"; // 管理员可以删除 if (isAdmin()) { echo "<a href='delete.php?id=".$record["id"]."'>Delete</a>"; } echo "</td></tr>"; $i ++; } ?> </table> <hr/> <h3>Post Your Message:</h3> <form action="save.php" method="post"> Name: <input type="text" name="author" size="10" maxlength="20" /><br/> <textarea rows="3" cols="30" name="content"></textarea> <br/> <input type="submit" value="submit" /> <?php if (isAdmin()) { echo "<input type='button' value='exit' onclick='window.location=(\"login.php?act=exit\")' />"; } else { echo "<input type='button' value='admin' onclick='window.location=(\"login.php?act=login\")' />"; } ?> </form> </body> </html> <?php clear(); ?>
【save.php】发表记录处理界面
<?php require("conn.php"); ?> <?php // 获得变量 $author = $_POST["author"]; $content = $_POST["content"]; // 处理回车和空格 $content = str_replace(chr(13), "<br/>", $content); $content = str_replace(chr(32), " ", $content); // 保存数据 $sql = "INSERT INTO message(author, content, publishTime) VALUES ('".$author."', '".$content."', now())"; if(!mysql_query($sql, $conn)) { // 结束处理 clear(); // 错误提示 echo "Error Insert: ".mysql_error()."<br/>"; } else { // 结束处理 clear(); // 返回页面 jumpHome(); } ?>
【login.php】管理员登陆及处理界面
<?php require("conn.php"); ?> <?php // 根据参数act判断行为 if (!isset($_GET["act"])) { // 未设置时进行登陆 // 获得表单数据 $admin_name = $_POST["admin_name"]; $admin_password = $_POST["admin_password"]; // 查询数据库 $sql = "SELECT * FROM admin WHERE name = '".$admin_name."' AND password = '".$admin_password."'"; $result = mysql_query($sql, $conn); // 无数据则显示表单重新输入并提示错误信息 if (!mysql_fetch_array($result)) { // 结束处理 clear(); // 销毁session session_destroy(); // 显示表单 printForm(); // 打印错误信息 echo "<hr/>Login Failed!"; } else { // 否则记录session $_SESSION["admin_flag"] = TRUE; // 结束处理 clear(); // 跳转到首页 jumpHome(); } } elseif ($_GET["act"] == "exit") { // 退出 // 销毁session session_destroy(); // 跳转到首页 jumpHome(); } else { printForm(); } // 展示界面 function printForm() { echo "<html> <head> <title>GuestBook</title> <link href='style.css' rel='stylesheet' type='text/css' /> </head> <body> <h3>Administrator Login</h3> <hr/> <form action='login.php' method='POST'> Administrator Account: <input type='text' name='admin_name' /><br/> Administrator Password: <input type='password' name='admin_password' /><br/> <input type='submit' value='Login'> </form> </body> </html>"; } ?>
【delete.php】管理员删除记录处理界面
<?php require("conn.php"); ?> <?php // 判断是否管理员 if (isAdmin()) { // 获得ID $id = $_GET["id"]; // 删除记录 $sql = "DELETE FROM message WHERE id = ".$id; mysql_query ($sql, $conn); // 结束处理 clear(); // 返回页面 jumpHome(); } else { // 管理员登陆 jumpURL("login.php?act=login"); } ?>
【style.css】样式表
body, td { color: black; font-size: 13px; } a { color: black; text-decoration: none; } a:hover { text-decoration: underline; } input { color: black; font-size: 12px; background: transparent; border: 1px #cccccc solid; } textarea { color: black; font-size: 12px; background: transparent; border: 1px #cccccc solid; }
- 无匹配