记录一下我在学习《十天学会 PHP》(第六版)的过程中的遇到的重难点,该课程是学习制作一个简单的留言板。

准备工作

  • XAMPP(Apache + MySQL + PHP + PERL) 是一个功能强大的建站集成软件包。现在 XAMPP 的官方版本使用的数据库是 MariaDB,但是国内使用 MySQL 数据库较多,视频里 XAMPP 的站点似乎也没了,反正我是没找到,后来在 php 中文网找到了和视频里一样的 XAMPP 版本,这个版本使用的是 MySQL 数据库,同时php中文网也是学习学习 PHP 等不错的网站。下载地址
  • PHP手册 一定要有,直接百度 php 手册就可以找到下载了。
  • Navicat 是一个数据库管理工具,破解版的安装方法在这篇博客( Navicat Premium 12 安装与破解),方便简单快捷,不需要任何花里胡哨的操作。
  • HTML 手册是学习 HTML 的很好的工具。

Navicat 的使用

  • 建立如下图所示的数据库,主要是我目前不知道不同字符集和排列规则会对数据造成什么样的影响,所以只能照搬视频里的样式建立数据库。


    image

代码

  • 把代码都放在 \xampp\htdocs 文件夹下面,其它具体的细节,现在有些遗忘了,通过代码回忆。
  • 先是一个 gbook.php 文件
<?php
include('connect.php');

$sql = "SELECT * FROM msg ORDER BY id DESC";
$mysqli_result = $db->query($sql);
if ($mysqli_result === false) {
    echo "SQL错误";
    exit;
}
while ($row = $mysqli_result->fetch_array(MYSQL_ASSOC)) {
    $rows[] = $row;
}
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>留言本</title>
        <style>
            .wrap{
                width: 600px;
                margin: 0px auto;
            }
            .add{
                overflow: hidden;
            }
            .add .content{
                width: 598px;
                margin: 0;
                padding: 0;
            }
            .add .user{
                float: left;
            }
            .add .btn{
                float: right;
            }
            .msg{
                margin: 20px 0px;
                background: #ccc;
                padding: 5px;
            }
            .msg .info{
                overflow: hidden;
            }
            .msg .user{
                float: left;
                color: blue;
            }
            .msg .time{
                float: right;
                color: #999;
            }
            .msg .content{
                width: 100%;
            }
        </style>
    </head>
    <body>
        <div class="wrap">
            <!-- 发表留言 -->
            <div class="add">
                <form action="save.php" method="post">
                    <textarea name="content" class="content" cols="50" rows="5"></textarea>
                    <input name="user" class="user" type="text" />
                    <input class="btn" type="submit" value="发表留言" />
                </form>
            </div>

            <?php
            foreach ($rows as $row) {
            ?>
                <!-- 查看留言 -->
                <div class="msg">
                    <div class="info">
                        <span class="user"><?php echo $row['user'];?></span>
                        <span class="time"><?php echo date("Y-m-d H:i:s", $row['intime']);?></span>
                    </div>
                    <div class="content">
                        <?php echo $row['content'];?>
                    </div>
                </div>
            <?php
            }
            ?>
        </div>
    </body>
</html>
  • 然后是 connect.php 文件
<?php
//预先定义数据库链接参数
$host = '127.0.0.1';
$dbuser = 'root';
$password = '123456';
$dbname = 'php10';

$db = new mysqli($host, $dbuser, $password, $dbname);

if ($db->connect_errno <> 0) {
    die('链接数据库失败');
}
//设定数据库数据传输䣌编码
$db->query("SET NAME UTF8");
?>
  • 接着是 input.php 文件
<?php
class input{
    function post($content) {
        if ($content == '') {
            return false;
        }
        //禁止使用的用户名
        $n = ['张三','李四','王五'];
        foreach ($n as $name) {
            if ($content == $name) {
                return false;
            }
        }
        return true;
    }
}
?>
  • 最后是 sava.php 文件
<?php
include('input.php');
include('connect.php');

$content = $_POST['content'];
$user = $_POST['user'];

$input = new input();

//调用函数,检查留言内容
$is = $input->post($content);
if ($is == false) {
    die('留言内容的数据不正确');
}

//调用函数,检查留言人
$is = $input->post($user);
if ($is == false) {
    die('留言人的数据不正确');
}

//数据入库
$time = time();
$sql = "INSERT INTO msg(content, user, intime) VALUES ('{$content}', '{$user}', '{$time}')";
$is = $db->query($sql);
header("location: gbook.php");
?>

《十天学会 PHP》的重难点的更多相关文章

  1. 李洪强漫谈iOS开发[C语言-008]- C语言重难点

      C语言学习的重难点 写程序的三个境界: 照抄的境界,翻译的境界,创新的境界 1  伪代码: 描述C语言的编程范式 范式: 规范的一种表示 对于C的范式学会的话,C, C++ Java 都会了 2 ...

  2. 标准之路网站上一篇文章《十天学会web标准(div+css)》的营养精华

    以下精华出自如下链接,“http://www.aa25.cn/special/10day/index.shtml”,<十天学会web标准(DIV+CSS)>. 这个内容不要删掉:“< ...

  3. 十年学会编程 著者: Peter Norvig 翻译: Dai Yuwen

    为何人人都这么着急? 信步走进任何一家书店,你会看到名为<如何在7天内学会Java>的书,还有各 种各样类似的书: 在几天内或几小时内学会Visual Basic, Windows, In ...

  4. PHP学习过程_Symfony_(3)_整理_十分钟学会Symfony

    这篇文章主要介绍了Symfony学习十分钟入门教程,详细介绍了Symfony的安装配置,项目初始化,建立Bundle,设计实体,添加约束,增删改查等基本操作技巧,需要的朋友可以参考下 (此文章已被多人 ...

  5. 《十天学会单片机和C语言编程》

    <十天学会单片机和C语言编程> 大家注意了这个文件只有最新版迅雷可以下载,下面的lesson几就是第几课.点击右键使用迅雷下载. ed2k://|file|[十天学会单片机和C语言编程]. ...

  6. “全栈2019”Java多线程第二十九章:可重入锁与不可重入锁详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  7. DIV+CSS专题:十天学会DIV+CSS

    DIV+CSS专题:十天学会DIV+CSS,在网上看到的.感觉蛮好,推荐一下. 十天学会DIV+CSS(WEB标准)CHM格式文件下载 第十天 div+css网页标准布局实例教程(三) 第十天 div ...

  8. English--音标重难点

    English|音标重难点 在拥有了,音标的元音与辅音的基础之后,需要对于这些音标进行加以区分,毕竟方言对于口型的影响非常的大. 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点 ...

  9. 这是一份非常适合收藏的Android进阶/面试重难点整理

    写在前面 记得我大二时“不务正业”地自学Android并跟了老师做项目,到大三开始在目前的公司实习,至今毕业已有几年多,学习Android已经6.7年多了!但总感觉知识点很零散,并且不够深入,遇到瓶颈 ...

随机推荐

  1. PHP——file_put_contents()函数

    前言 作为PHP的一个内置函数,他的作用就是将一个字符串写入文件 简介 使用 换行和追加写入 file_put_contents('./relation/bind.txt', $val['id'].' ...

  2. Fiddler抓包工具使用指南|手机安装Fiddler的安全证书

    Fiddler 4 1.设置: Tools ->  Telerik Fiddler Options 勾选远程 手机安装证书 ->使用Android手机的浏览器打开:http://10.2. ...

  3. 求x,y中的最大值

    分析: 输入——变量x,y存放输入的两个整数: 输出——变量m存放输入的两个整数的最大值,m为输出: 算法——如果x比y大,x赋给m,否则y赋给m. #include<stdio.h>vo ...

  4. 洛谷 题解 P2731 【骑马修栅栏 Riding the Fences】

    简单的开始 完美の开始 这里数组什么的用来干什么后面标注的清楚了 #include<iostream> #include<cstdio> #include<cmath&g ...

  5. SP19997 MOON2 - Moon Safari (Hard) 【数论,多项式】

    题目描述:求 \[ \sum_{i=1}^ni^kr^i \] 对某个质数取模.\(T\)组数据. 数据范围:\(n,r\le 10^{18},\sum k\le 2.56\times 10^6\) ...

  6. 3D数据采集和重建

    3D数据采集和重建是从传感器数据生成三维或时空模型.一般而言,这些技术和理论适用于大多数或所有传感器类型,包括光学,声学,激光扫描,[1]雷达,热学,[2]地震.[3][4] 内容 ·        ...

  7. 记一次CDH集群日志数据清理

    背景 集群运行一段时间(大概一月多)后,cloudera manager管理界面出现爆红,爆红的组件有hdfs.zookeeper. 发现问题 点击详细内容查看,报日志空间不够的错误.初步判断是各个组 ...

  8. Evaluation of Sampling and Cross-Validation Tuning Strategies for Regional-Scale Machine Learning Classification

    比较了不同抽样方法(随机,分层等比随机,分层不等比随机,人为),不同交叉验证方法(k折,留一法,蒙特卡洛),不同样本范围大小的效果,最后都是用SVM分类 结果是k折验证最好,人为选择样本最差.小范围小 ...

  9. python3 Paramiko模块学习

    简介 ssh是一个协议,OpenSSH是其中一个开源实现,paramiko是Python的一个库,实现了SSHv2协议(底层使用cryptography). 有了Paramiko以后,我们就可以在Py ...

  10. vCenter线上操作磁盘扩容

    以下截图是生产机器,目前是有一块盘,且根分区是/dev/sda3,因为磁盘不足,需要备份的数据要远远超过此时的空间大小:正常情况下,是可以新增硬盘硬盘作为备份 但是作为宿主机下的虚机,因为一些不规范的 ...