Liny_@NotePad

沉迷ACG中

PHP Hello World!

YOYO posted @ 2010年6月05日 11:31 in 【PHP】 , 5172 阅读

刚看了下W3CSchool的PHP教程,感觉比较好上手,于是写了个留言本HelloWorld巩固巩固。

功能很简单:安装、发表留言、管理登陆、管理员删除,没做什么安全处理,也没怎么美化,但既然是第一个php程序就蛮留念一下 :)。 

这个本子一共有8个页面,分别是:

【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), "&nbsp;", $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;
}
  • 无匹配

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter