• 留言本小实验


    实验目的:

    利用PHP实现发布留言,并存在txt文本文件中,还可以从文本文件中读取留言,并显示在网页上。

    实验代码:

    先要用个表单提交留言,写一个简单的html如下:

     1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     2 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
     3 <head>
     4     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
     5     <title>表单提交</title>
     6 </head>
     7 <body>
     8 <form action="postMsg.php" method="post">
     9     <p>留言标题:<input type="text" name="title" /></p>
    10     <p>留言内容:<textarea name="content" id="" cols="30" rows="10"></textarea></p>
    11     <p><input type="submit" value="提交" /></p>
    12 </form>
    13     
    14 </body>
    15 
    16 </html>
    postMsg.html

    然后提交的数据到哪里呢,action="postMsg.php"表明提交给postMsg.php,然后再处理提交过来的数据,处理过程如下代码注释部分:

     1 <?php 
     2 header("Content-Type:text/html; charset=utf-8");//设置页面内容是html编码格式是utf-8
     3 
     4 // print_r($_POST);
     5 
     6 //开始留言
     7 //定义存储格式,以字符串“title,content”形式存储在文本文档上
     8 $str = $_POST['title'] . "," . $_POST['content'] . "\n";
     9 
    10 //php打开文件
    11 //fh是一个变量,为资源类型的变量
    12 $fh = fopen('./msg.txt', 'a');
    13 
    14 //往文件里写东西,沿着管子(资源)写
    15 fwrite($fh,$str);
    16 
    17 //关闭资源
    18 fclose($fh);
    19 
    20 //提示留言成功,并有个返回按钮
    21 echo "留言成功" ,"\n" , '<input type="button"  value="返回"  onclick="JavaScript:history.go(-1)" >';
    22 
    23  ?>
    postMsg.php

    这样就能在当前文件下的msg.txt文本文件下看到留言。

    接下来就是如何读取留言了,在msg.php中遍历整个留言本,并显示出来,最好都加上链接,点进去直接进入留言查看留言内容:

     1 <?php 
     2 header("Content-Type:text/html; charset=utf-8");//设置页面内容是html编码格式是utf-8
     3 
     4 //定义变量tid,表示留言的序号
     5 $tid = $_GET['tid'];
     6 
     7 // echo '你想看第' ,$tid,'行留言';
     8 
     9 //打开得到文件
    10 $fh = fopen('./msg.txt' , 'r');
    11 
    12 $i = 1;
    13 //以列表形式遍历,并显示留言标题
    14 echo '<ol>';
    15 while(($row=fgetcsv($fh)) != false) {
    16 
    17     echo '<li><a href="readMsg.php?tid=' , $i ,'">' , $row[0] , '</li>';
    18     $i ++; 
    19 }
    20 echo '</ol>';
    21 
    22  ?>
    msg.php

    最后是读取留言了:

     1 <?php 
     2 header("Content-Type:text/html; charset=utf-8");
     3 
     4 $tid = $_GET['tid'];
     5 
     6 // echo '你想看第' ,$tid,'行留言';
     7 
     8 //打开得到文件
     9 $fh = fopen('./msg.txt' , 'r');
    10 
    11 $i = 1;
    12 
    13 while(($row=fgetcsv($fh)) != false) {
    14 
    15     if($i == $tid){
    16         echo '<h1>' , $row[0] , '</h1>';
    17         echo '<p>' , $row[1] , '</p>';
    18     }
    19     $i ++;
    20 }
    21 
    22  ?>
    readMsg.php

    实验总结:

    1. 关于$_POST和$_GET区别:

      $_GET
      就是地址传值,用 '?' 开始传值,多个值间用 '&' 号分隔,多用于简单的传值,比如说看新闻需要新闻id一般就会用地址传值,$_GET的好处是传值可见,也就是只要一个地址就ok了,容易分享,缺点是不安全,而且有限制字节数.

      $_POST
      这种提交方式不可见,也就是传的值不会出现在URL地址中,一般用于注册和登录,这种方式因为要安全要高一点,一般会用POST方式,而且POST方式没有限制字节数,填写文章,需要提交大数据的,表单中含有上传文件的,都会使用POST.

    2. fopen(),fwrite()和fclose()函数:

      fopen()函数打开文件或者URL.如果打开失败,本函数返回FALSE.语法为:fopen(filename,mode,include_path,context),具体参见PHP fopen() 函数

      fwrite()函数写入文件(可安全用于二进制文件).语法为:fwrite(file,string,length),具体参见PHP fwrite() 函数

      fclose()函数关闭一个打开文件.语法为:fclose(file),具体参见PHP fclose() 函数

    3. fgetcsv()函数

      fgetcsv()函数从文件指针中读入一行并解析 CSV 字段。与 fgets() 类似,不同的是 fgetcsv() 解析读入的行并找出 CSV 格式的字段,然后返回一个包含这些字段的数组。 fgetcsv() 出错时返回 FALSE,包括碰到文件结束时。语法为:fgetcsv(file,length,separator,enclosure),具体参见PHP fgetcsv() 函数

    4. 这个实验还存在很多bug,功能也不是很完善,只是PHP入门的小实验,谨以此作为自己学习的轨迹。
    谨以此记录自己学习的轨迹,沉淀积累知识的笔记。
  • 相关阅读:
    计算机注销、热启动、冷启动
    从高处理解android与服务器交互(看懂了做开发就会非常的容易)
    Android—Work—1day
    软件需求分析方法
    Android 常用控件的介绍
    android中Json的一些应用
    java数据传递例子+内存分析
    android中MVP模式
    android的四层体系结构,基于mvc三层结构浅析
    java
  • 原文地址:https://www.cnblogs.com/Jackie0714/p/4880886.html
Copyright © 2020-2023  润新知