首頁 >後端開發 >php教程 >如何透過html+css+mysql+php來快速的製作動態網頁

如何透過html+css+mysql+php來快速的製作動態網頁

慕斯
慕斯轉載
2021-05-26 14:29:0413997瀏覽

跟大家介紹如何透過html css mysql php來快速的製作動態網頁,讓我們一起出發探索未知的奧秘吧! ! !

如何透過html+css+mysql+php來快速的製作動態網頁

一、開發環境的搭建

#   1)apache php mysql環境搭建

   因為要用apache來做伺服器,mysql作為資料庫來儲存數據,php來寫程式碼以此實現網頁與資料庫的交互數據,所以需要下載上述軟體,但上述軟體的安裝環境、設定很麻煩,所以在這裡使用了一個功能強大的網站整合軟體包---XAMPP,

        

   ##2)資料庫客戶端軟體navigat

   直接在cmd指令控制台操作資料庫並不方便,不夠直白,當然也可以直接用phpmyadmin來操作(上述xampp軟體包安裝之後在遊覽器輸入127.0 .0.1/phpmyadmin即可打開),但是phpmyadmin來操作也不方便,這裡便採用Oracle公司出品的資料庫客戶端Navicat

       點擊連接,輸入連接名,(這裡我直接取了IP位址的名字127.0.0.1),主機名稱和連接埠號碼都不用變,這裡的使用者名稱和密碼。如果是你用的是xampp,那麼用戶名是root,密碼為空;如果不是用的是xampp安裝的,按照你設定的用戶名和密碼登入即可。填寫完畢之後點選連線測試,沒有問題直接確定即可連接資料庫。

                            地

  刪改查。

    ①增:寫入資料

    語句:insert into users (`username`,`password`) values ('name','passwd')

# (ps新手一定要注意這離users這個資料表後面的``這個符號是在tab鍵上方的引號,而values後面的就是個單引號)

    ②刪:刪除已有資料

    語句:delete from users WHERE id='3'

    ③改:修改資料

##    語句:update set users username='新值', password='新值' WHERE id=3

    ④查:從資料庫讀取資料

    語句:select * from users where id>1 order by id desc limit 0,2

##  

  

  

      

  

  

  

    

  

  

  

  

  

          

  

 #(3)html網頁的編寫工具sublime text   Sublime Text 是一個程式碼編輯器(Sublime Text 2是收費軟體,但可以無限期試用),也是HTML和散文先進的文字編輯器。 Sublime text具有漂亮的使用者介面和強大的功能,非常適合編寫程式碼的程式猿。          

   用sublime text寫網頁程式碼,可以掌握這樣一個小技巧,先新建一個文件,格式儲存為html網頁格式,然後在sublime text中打開,輸入html:4s 然後按下tab鍵即可產生大體框架。當然這個快捷鍵要想使用是要按照我上述給的鏈接,按照步驟安裝好Emmet這個插件,才能使用。  
4)網站網域的設定

######   大致上講,你在導覽器開啟127.0.0.1這個網址,會前往apache預設目錄下的一個網址,這裡我對其進行修改,修改為我做專案的目錄,E:\##########PHP#########\xampp\apache\conf ,打開httpd.conf文件,將裡面的路徑修改為你儲存網站的目錄,在這裡我的修改為######    DocumentRoot "E:/#########php#### #####/xampp/workplace"###     3d28f3dcbad3afe1ed45355e5726ea0a###

   這裡要注意按照自己的下載按照路徑來修改為自己的目錄,其次我還對這個127.0.0.1這個網址再次做了修改,使其虛擬域名為blog.com,,修改完之後重啟之後,在遊覽器輸入blog.com,便會出現下述場景:

  

   在這裡我發現我修改的DNS配置,不知道何時再前面加了一條註釋,導致沒辦法打開,大家也要注意依照我給的連線配置好之後,如果打不開再看一下設定檔有無錯誤。

總之,配置環境和工具基本上也搭建成功了,接下來我就開始講解這個blog的專案。

   二、部落格網站的書寫

   1.整體架構

   首先在這裡我先介紹一下我的總體框架,講解一下,讓大家先熟悉一下。

             

#  blog是專案的名字,admin資料夾裡面儲存的是在後台登入檔案 core資料夾內儲存核心文件,theme upfiles資料夾是儲存從本地上傳到伺服器的圖片信息,之後config.php檔案是整個部落格網站的設定文件,header.inc.php是載入了一個頁面樣式信息,index.php檔案是網站的首頁,read.php文件是網站首頁文章的具體連結。

   資料庫表中的設計在這裡我給出,方便大家參考學習,這裡我主要建立了三個表,admin這個表示用來存儲後台管理員註冊和登入的數據,即帳戶和密碼:

    page這個表主要是用來存儲博客信息,在這裡也給圖片,方便安裝圖來建表:

   最後給出setting這個表,主要是用來儲存部落格的系統設定:

            

  2221 .網站後台admin的書寫

 #1)登入介面(login.php)

#   關於這個頁面我會在這裡給出源碼,登錄頁面其實也就是個從資料庫讀取的過程,這個登錄頁面的設計我主要是採用了bootstrap來設計的,不明白的可以百度一下bootstrap,

  在這裡面它包含了各式的樣式、元件和JavaScript插件,可以說得很好用。

        

   在這裡我的使用方法是將bootstrap下載下來,然後將檔案加壓,複製到theme這個資料夾下面,呼叫方法見下面的源碼,在原始碼中我都給了詳細的解釋。

   原始碼:

<?php
/*
后台管理员登录窗口
 */ 
    
    /*启动session服务,记录账号登录的cookies*/
	session_start();
	
	/*包含一个配置文件*/
	include(&#39;../config.php&#39;);
	

	 if($input->get(&#39;do&#39;)==&#39;check&#39;){
	 	/*获取页面提交的用户名和密码数据*/
	 	$ausername=$input->post(&#39;ausername&#39;);
	 	$apassword=$input->post(&#39;apassword&#39;);

	 	/*查询页面提交的数据是否在数据库提供的数据存在的sql语句*/
	 	 $sql="select * from admin where ausername=&#39;{$ausername}&#39; and apassword=&#39;{$apassword}&#39; ";
	 	 /*数据库查询语句返回结果*/
	 	 $mysqli_result=$db->query($sql);
	 	 /*以数组形式存储数据库查询语句的返回结果*/
	 	 $row=$mysqli_result->fetch_array( MYSQLI_ASSOC);
	 	 /*如果row确实返回了结果,则将结果的aid存储在session里,并转向home.php文件*/
	 	 if(is_array($row)){
	 	 	$_SESSION[&#39;aid&#39;]=$row[&#39;aid&#39;];
	 	 	header("location:home.php");
	 	 }else{
	 	 	echo("账户或密码错误");
	 	 }
	 }
?>

<!--后台管理员登录界面></!-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
	<title>管理员登录界面</title>
	<!--加载包含bootstrap里css和javascript里的文件></!-->
	<?php include(PATH . &#39;/header.inc.php&#39;);?>
	

</head>
<body>
	<!--最外面的container容器></!-->
	<p class="container">
		<!--bootstrap使用时建议使用一个row表格类,包含12个列></!-->
		<p class="row" style="margin-top:200px;">
			<!--距左边3个列></!-->
			<p class="col-md-3"></p>
			<!--中间部分占据6列></!-->
			<p class="col-md-6" ">
			 
			    <p class="panel panel-primary">
			    	<!--登录头部分></!-->
			  		<p class="panel-heading">管理员登录</p>
			  		<!--登录的身体部分></!-->
			  		<p class="panel-body">
			    		
			    		<form  class="form-horizontal" action="login.php?do=check" method="post">
							<!--登录的用户名那一行></!-->
							<p class="form-group">
						    	<label for="inputEmail3" class="col-sm-2 control-label">用户名</label>
						    <p class="col-sm-10">
						      	<input type="text" class="form-control" name="ausername" id="ausername" placeholder="请输入用户名" datatype="*3-10" errormsg="请输入长度 范围在3-10之间的昵称">
						    </p>
						    </p>
							
							<!--登录的密码那一行></!-->
						    <p class="form-group">
						    	<label for="inputEmail3" class="col-sm-2 control-label">密码</label>
						    <p class="col-sm-10">
						      	<input type="password" class="form-control" name="apassword" id="apassword" placeholder="请输入密码">
						    </p>
						    </p>
							
							<!--登录、注册那一行></!-->
						    <p class="form-group">
						    <p class="col-sm-3"></p>
						    <!--登录></!-->
						    <p class="col-sm-4">
						      	<input type="submit" value="登录" class=&#39;btn btn-primary&#39;>
						    </p>
						    <!--注册></!-->
							<p class="col-sm-4">
								<a href="register.php"><input type="button" value="注册" class="btn btn-primary"> </a>
							</p>
							</p>
			    		</form>

						

					</p>
					 <!--登录的尾部分></!-->
			  		 <p class="panel-footer text-right">版权所有,盗版必究</p>
			    </p>
			
			</p>
			<!--距离右边三列></!-->
			<p class="col-md-3"></p>
		</p>
	</p>
	<!--窗口背景的script加载></!-->
	<script type="text/javascript">
		window.onload = function() {
			var config = {
				vx : 4,
				vy : 4,
				height : 2,
				width : 2,
				count : 100,
				color : "121, 162, 185",
				stroke : "100, 200, 180",
				dist : 6000,
				e_dist : 20000,
				max_conn : 10
			}
			CanvasParticle(config);
		}
	</script>
	<script type="text/javascript" src="../theme/js/canvas-particle.js"></script>
	</script>
</body>
</html>

   (2)註冊介面(register.php)

   註冊介面其實也就是個往資料庫增加資料的過程。

   還是給原始碼,原始碼中我給了詳解。

<?php
	/*包含一个配置文件*/
	include(&#39;../config.php&#39;);
	
	if($input->get(&#39;do&#39;)==&#39;check&#39;){
		/*获取用户页面注册传来的用户名和密码数据*/
		$ausername=$input->post(&#39;ausername&#39;);
		$apassword=$input->post(&#39;apassword&#39;);
		$aconfirmpassword=$input->post(&#39;aconfirmpassword&#39;);
		/*注册时的处理*/
		if($apassword!=$aconfirmpassword){
			echo "前后两次输入的密码不一致";
			exit;
		}
		/*将用户填入的数据插入到数据库的sql语句*/
		$sql="INSERT INTO admin(`ausername`,`apassword`) values(&#39;$ausername&#39;,&#39;$apassword&#39;)";
		/*提交sql语句到数据库处理*/
		$is=$db->query($sql);
		/*判断是否注册成功*/
		if($is){
			echo "注册成功";
			header("Location:login.php");
		}else{
			echo "注册失败";
		}
	}


?>



<!--后台管理员登录界面></!-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
	<title>管理员注册界面</title>
	<!--加载包含bootstrap里css和javascript里的文件></!-->
	<?php include(PATH . &#39;/header.inc.php&#39;);?>
	
</head>
<body>
	<!--最外面的container容器></!-->
	<p class="container">
		<!--bootstrap使用时建议使用一个row表格类,包含12个列></!-->
		<p class="row" style="margin-top:200px;">
			<!--距左边3个列></!-->
			<p class="col-md-3"></p>
			<!--中间部分占据6列></!-->
			<p class="col-md-6" ">
			 
			    <p class="panel panel-primary">
			    	<!--注册头部分></!-->
			  		<p class="panel-heading">管理员注册</p>
			  		<!--注册的身体部分></!-->
			  		<p class="panel-body">
			    		
			    		<form  class="form-horizontal" action="register.php?do=check" method="post">
							<!--注册的用户名那一行></!-->
							<p class="form-group">
						    	<label for="inputEmail3" class="col-sm-2 control-label">用户名</label>
						    <p class="col-sm-10">
						      	<input type="text" class="form-control" name="ausername" id="ausername" placeholder="请输入用户名">
						    </p>
						    </p>
							
							<!--注册的密码那一行></!-->
						    <p class="form-group">
						    	<label for="inputEmail3" class="col-sm-2 control-label">密码</label>
						    <p class="col-sm-10">
						      	<input type="password" class="form-control" name="apassword" id="apassword" placeholder="请输入密码">
						    </p>
						    </p>
						    <!--注册的密码确定那一行></!-->
						    <p class="form-group">
						    	<label for="inputEmail3" class="col-sm-2 control-label">确认密码</label>
						    <p class="col-sm-10">
						      	<input type="password" class="form-control" name="aconfirmpassword" id="aconfirmpassword" placeholder="请再次输入密码">
						    </p>
						    </p>
							
							<!--提交注册那一行></!-->
						    <p class="form-group">
						    <p class="col-sm-4"></p>
						    <p class="col-sm-6">
						      	<input type="submit" value="注册" class=&#39;btn btn-primary btn-lg btn-block&#39;>
						    </p>
						    </p>
			    		</form>

						

					</p>
					 <!--登录的尾部分></!-->
			  		 <p class="panel-footer text-right">版权所有,盗版必究</p>
			    </p>
			
			</p>
			<!--距离右边三列></!-->
			<p class="col-md-3"></p>
		</p>
	</p>
	<!--窗口背景的script加载></!-->
	<script type="text/javascript">
		window.onload = function() {
			var config = {
				vx : 4,
				vy : 4,
				height : 2,
				width : 2,
				count : 100,
				color : "121, 162, 185",
				stroke : "100, 200, 180",
				dist : 6000,
				e_dist : 20000,
				max_conn : 10
			}
			CanvasParticle(config);
		}
	</script>
	<script type="text/javascript" src="../theme/js/canvas-particle.js"></script>
	</script>
</body>
</html>

   3)後台管理頁面(home.php)

 在原始碼中將上述網站的標題那部分單獨給拿出來做了一個文件(nav.inc.php),這裡也是給出源碼,供大家學習參考。

 home.php原始碼

<?php
/*
后台管理员登录之后php控制端
 */ 	
	include (&#39;check.php&#39;);
?>

<!--后台管理员登录之后的界面<>/!-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 
	<title>管理员登录</title>
	<?php include(PATH . &#39;/header.inc.php&#39;);?>  <!--所有的页面都需加载这个文件></!-->
</head>
<body>
	<?php include(&#39;nav.inc.php&#39;);?>  <!--管理员登录页面的标题部分></!-->
</body>
</html>

 nav.inc.php

<!--后台管理界面的上方标题></!-->
<nav class="navbar navbar-default" role="navigation">
	  <p class="container-fluid">
	    <!-- Brand and toggle get grouped for better mobile display -->
	    <p class="navbar-header">
	      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
	        <span class="sr-only">Toggle navigation</span>
	        <span class="icon-bar"></span>
	        <span class="icon-bar"></span>
	        <span class="icon-bar"></span>
	      </button>
	      <a class="navbar-brand" href="home.php">ADMIN</a>
	    </p>

	    <!-- Collect the nav links, forms, and other content for toggling -->
	    <p class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
	      <ul class="nav navbar-nav">
	        <li ><a href="blog.php">博客管理 <span class="sr-only">(current)</span></a></li>
	        <li><a href="auser.php">管理员管理</a></li>
	         <li><a href="setting.php">系统管理</a></li>
	      </ul>
	     
	      <ul class="nav navbar-nav navbar-right">
	       
	        <li class="dropdown">
	          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> <?php echo $session_user[&#39;ausername&#39;];?> <span class="caret"></span></a>  <!--输出此时登录的账户名></!-->
	          <ul class="dropdown-menu">
	            <li><a href="logout.php">退出</a></li>
	           
	          </ul>
	        </li>
	      </ul>
	    </p><!-- /.navbar-collapse -->
	  </p><!-- /.container-fluid -->
	</nav>				

  4)部落格管理介面(blog.php)

  這裡有三個功能,修改、刪除、新增部落格介面,以下我將單獨列出新增部落格這個介面

  ( 5)新增部落格介面(blog_add.php)

 在这里这个编辑器如果需要图片上传功能的话,需要在文件中设置,这个文件设置为(blog_uopload.php)

   blog_add.php源码

<?php
	/*后台除去管理员登录界面,均需加载这个文件,来验证该页面管理员是否登录*/ 
	include (&#39;check.php&#39;);
	/*取出传来的pid从而判断是添加还是修改操作*/
	$pid=$input->get(&#39;pid&#39;);
	/*初始化page,为了区别添加还是修改操作*/
	$page=array(
			&#39;title&#39;   => &#39;&#39;,
			&#39;author&#39;  => &#39;&#39;,
			&#39;content&#39; => &#39;&#39;,
		);
	/*如果pid大于0,可以得出并不是添加操作,而是修改操作*/
	 if($pid>0){
	 	$sql="select * from page where pid =&#39;{$pid}&#39; ";
	 	$res=$db->query($sql);
	 	$page=$res->fetch_array(MYSQLI_ASSOC);
	 }



	 /*对于添加操作操作而言,账户或密码不能为空*/
	if($input->get(&#39;do&#39;)==&#39;add&#39;){
		$title=$input->post(&#39;title&#39;);
		$author=$input->post(&#39;author&#39;);
		$content=$input->post(&#39;content&#39;);
		if(empty($title)||empty($author)||empty($content)){
			echo("数据不能为空");
		}
		/*如果aid大于1,则得出更新操作,否则执行添加操作*/
		if($pid>0){
			$uptime=time();
			$sqlTpl="UPDATE page set title=&#39;%s&#39;,author=&#39;%s&#39;,content=&#39;%s&#39;,uptime=&#39;%d&#39; where pid=&#39;%d&#39; ";
			$sql=sprintf($sqlTpl,$title,$author,$content,$uptime,$pid);
		}
		else{
			$intime=time();
			$sqlTpl="INSERT INTO page(`title`,`author`,`content`,`intime`,`uptime`) values(&#39;%s&#39;,&#39;%s&#39;,&#39;%s&#39;,&#39;%d&#39;,&#39;%d&#39;)";
			$sql=sprintf($sqlTpl,$title,$author,$content,$intime,0);
			
		}			
		/*判断是否有结果*/
		$is=$db->query($sql);
		if($is){
			header("location:blog.php");
		}else{
			echo "执行失败";
		}
	}
?>

<!--管理员添加博客或修改博客的界面<>/!-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
	<title>添加博客</title>
	<?php include(PATH . &#39;/header.inc.php&#39;);?>

	<!--加载simiditor编辑器的文件></!-->
	<link rel="stylesheet" type="text/css" href="../theme/simditor/styles/simditor.css" />
	<script type="text/javascript" src="../theme/simditor/scripts/module.js"></script>
	<script type="text/javascript" src="../theme/simditor/scripts/hotkeys.js"></script>
	<script type="text/javascript" src="../theme/simditor/scripts/uploader.js"></script>
	<script type="text/javascript" src="../theme/simditor/scripts/simditor.js"></script>

</head>
<body>
	<?php include(&#39;nav.inc.php&#39;);?>
	<p class="container">
	<h2> 博客管理 <small class="pull-right"><a class=&#39;btn btn-default&#39; href="blog.php">返回</a></small></h2>
	<hr/>
		<p class="rows">
			<form class="form-horizontal" role="form" action="blog_add.php?do=add&pid=<?php echo $pid;?>" method="post">
			  <p class="form-group">
			    <label for="inputEmail3" class="col-sm-2 control-label">标题</label>
			    <p class="col-sm-6">
			      <input type="text" class="form-control" name="title" placeholder="请输入标题" value=&#39;<?php echo $page[&#39;title&#39;];?>&#39;>
			    </p>
			  </p>
			  <p class="form-group">
			    <label for="inputPassword3" class="col-sm-2 control-label">作者</label>
			    <p class="col-sm-4">
			      <input type="text" class="form-control" name="author" placeholder="请输入作者" value=&#39;<?php echo $page[&#39;author&#39;];?>&#39; >
			    </p>
			  </p>

			  <p class="form-group">
			    <label for="inputPassword3" class="col-sm-2 control-label">正文</label>
			    <p class="col-sm-8">
			     	<textarea id="content" name="content" class="form-control"><?php echo $page[&#39;content&#39;];?></textarea>
			     	<!--在script中初始化编辑器,在这里注意script里加载的textarea的ID要与上方textarea的id号一致></!-->
					<script>
						var editor = new Simditor({
						  textarea: $(&#39;#content&#39;),
						  upload:{
						  	url:&#39;blog_upload.php&#39;,
						  	fileKey:&#39;file1&#39;
						  }
						  //optional options
						});
					</script>			     	
			    </p>
			  </p>
			  
			  <p class="form-group">
			    <p class="col-sm-offset-2 col-sm-6">
			      <button type="submit" class="btn btn-default">提交</button>
			    </p>
			  </p>
			</form>
			
		</p>
	</p>
</body>
</html>

  blog_upload.php源码

<?php
	/*后台除去管理员登录界面,均需加载这个文件,来验证该页面管理员是否登录*/ 
	include(&#39;check.php&#39;);
	/*将文件上传到服务器的目录里*/
	$key=&#39;file1&#39;;
	$dir=&#39;../upfiles/&#39;;
	if(isset($_FILES[$key])){
		$file=$_FILES[$key];
		if($file[&#39;error&#39;]==0){
			/*文件所处服务器的目录*/
			$pathName=$dir . $file[&#39;name&#39;];
			/*文件所在服务器的网址*/
			$urlName=&#39;http://blog.com/blog/upfiles&#39; . $file[&#39;name&#39;];
			$is=move_uploaded_file($file[&#39;tmp_name&#39;], $pathName);
			/*判断是否移动成功*/
			if(!$is){
				die("上传失败");
			}
			/*编辑器来判断是否成功上传图片*/
			$json=array(
				&#39;success&#39; => true,
				&#39;msg&#39;     => &#39;&#39;,
				&#39;file_path&#39;=>$urlName
				);
			echo json_encode($json);
		}
	}
?>

  6)管理员管理界面(auser.php)

  这里还是有三个功能,修改、删除和添加,这里我就不单独一一列出来了,具体可参考文末给出的源码

  7)系统管理界面

  系统管理可以在这里设置标题、介绍和博客每页的显示数量


  3.主界面(index.php)

  这里是游客访问的主界面,这里给出源码大家作为参考,

 

  阅读界面(read.php)

  当你想阅读该文章时,可点击标题进入阅读页,进行阅读,同样给出源码,作为参考

推荐学习:《PHP视频教程

以上是如何透過html+css+mysql+php來快速的製作動態網頁的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除