php学习--留言页面

<form action="doAction.php" method="get">
    <input type="hidden" name = "act" id="add">
    <label for="username">昵称</label>
    <input type="text" name="username" id="username" placholder="请输入你的昵称"><br/>
    <label for="title">标题</label>
    <input type="text" name="title" id="title" placholder="请输入你的标题"><br/>
    <label>留言</label>
    <textarea cols="50" rows="5" name="content" id="content"></textarea><br/>
    <label>表情</label>
    <input type="radio" name="biaoqing" value="1.jpg" checked><img width="50px" height="50px" src="img/1.jpg">
    <input type="radio" name="biaoqing" value="2.jpg" ><img width="50px" height="50px" src="img/2.jpg">
    <input type="radio" name="biaoqing" value="3.jpg" ><img width="50px" height="50px" src="img/3.jpg">
    <input type="radio" name="biaoqing" value="4.jpg" ><img width="50px" height="50px" src="img/4.jpg"><br/>
    <input type="submit" value="submit">

header("content-type:text/html;charset=utf-8;");  设置页面内容是html;编码格式是utf-8;

isset() 函数— 检测变量是否设置。

语法:bool isset ( mixed $var [, mixed $... ] )

返回值:
若变量不存在则返回 FALSE 
若变量存在且其值为NULL,也返回 FALSE 
若变量存在且值不为NULL,则返回 TURE 
同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE
如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("\0")并不等同于 PHP 的 NULL 常数。
注意: isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined() 函数。

file_exists() 函数检查文件或目录是否存在。
如果指定的文件或目录存在则返回 true,否则返回 false。
语法:file_exists(path)
filesize() 函数返回指定文件的大小。
若成功,则返回文件大小的字节数。若失败,则返回 false 并生成一条 E_WARNING 级的错误。
语法:filesize(filename) 

<?php
    header("content-type:text/html;charset=utf-8;");
    $username = isset($_GET['username'])?$_GET['username']:'';
    $title = isset($_GET['title'])?$_GET['title']:'';
    $content = isset($_GET['content'])?$_GET['content']:'';
    $biaoqing = isset($_GET['biaoqing'])?$_GET['biaoqing']:'';
    $time = date('y-m-d h:i:s');
    $act = isset($_GET['act'])?$_GET['act']:'';
    $filename = "text.txt";
    if(file_exists($filename)&&filesize($filename)>0){
    		//提取数据;
    		$str = file_get_contents($filename);
    		//反序列化把字符转化为二维数组
    		$arr = unserialize($str);
    	};

    if($act ='add'){
         $arr[] = array(
                'username'=>$username,
                'title'=>$title,
                'content'=>$content,
                 'biaoqing'=>$biaoqing,
                 'time'=>$time
                 );
         $arr = serialize($arr);
             	if(file_put_contents($filename,$arr)){
             		echo '添加成功<br/><a href = "doMesh.php">继续添加</a>|<a href = "mesh.php">查看留言</a>';
             	}else{
             		echo '添加失败';
             	};
    }

?>

 file_get_contents() 函数把整个文件读入一个字符串中。

语法:file_get_contents(path,include_path,context,start,max_length)

serialize() 将变量序列化 — 产生一个可存储的值的表示
说明
serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。
这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。
想要将已序列化的字符串变回 PHP 的值,可使用 unserialize()。serialize() 可处理除了 resource 之外的任何类型。
unserialize — 反序列化 — 从已存储的表示中创建 PHP 的值
说明
mixed unserialize ( string $str )
unserialize() 对单一的已序列化的变量进行操作,将其转换回 PHP 的值。
如果传递的字符串不可解序列化,则返回 FALSE,并产生一个 E_NOTICE。

file_put_contents() 函数把一个字符串写入文件中。
与依次调用 fopen(),fwrite() 以及 fclose() 功能一样。
语法:file_put_contents(file,data,mode,context)

<?php
   $filename = "text.txt";
   if(file_exists($filename)&&filesize($filename)>0){
		//提取数据;
		$str = file_get_contents($filename);

		//反序列化把字符转化为二维数组
		$userInfo = unserialize($str);
	};
?>
<?php
     $filename = "text.txt";
     if(file_exists($filename)&&filesize($filename)>0){
          $str = file_get_contents($filename);
          $userInfo = unserialize($str);
     }

?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<h3>留言列表页---<a href = "doMesh.php">添加留言</a></h3>
<table border="1">
    <tr>
        <td>编号 </td>
        <td>标题</td>
        <td>内容</td>
        <td>用户名</td>
        <td>发布时间</td>
        <td>心情</td>
    </tr>
    <?php foreach( $userInfo as $key=>$val){
    ?>
    <tr>
        <td><?php echo $key+1; ?></td>
        <td><?php echo $val['title']; ?></td>
        <td><?php echo $val['content']; ?></td>
        <td><?php echo $val['username']; ?></td>
        <td><?php echo $val['time']; ?></td>
        <td><img style="width:50px;heigh:50px;" src="img/<?php echo $val['biaoqing']; ?>"></td>
    </tr>
    <?php
    }
    ?>
</table>
</body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值