记录一下我在学习《十天学会 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 文件
  1. <?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 文件
  1. <?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 文件
  1. <?php
    class input{
        function post($content) {
            if ($content == '') {
                return false;
            }
            //禁止使用的用户名
            $n = ['张三','李四','王五'];
            foreach ($n as $name) {
                if ($content == $name) {
                    return false;
                }
            }
            return true;
        }
    }
    ?>
  • 最后是 sava.php 文件
  1. <?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. css 的弱化与 js 的强化(转)

    web 的三要素 html, css, js 在前端组件化的过程中,比如 react.vue 等组件化框架的运用,使 html 的弱化与 js 的强化 成为了一种趋势,而在这个过程中,其实还有另一种趋 ...

  2. hibernate笔记

    1.hibernate中的list()遍历方法和iterator()遍历方法之间的区别 1:返回的类型不一样,list()返回List, iterate()返回Iterator,2: 获取数据的方式不 ...

  3. Win如何查看某个端口被谁占用并停掉

    第一步在我们的电脑上按win+R键打开运行,输入cmd, 第二步进去命令提示符之后,输入“netstat -ano”,按回车键,查出所有端口,如下图所示: 第三步如果我们想找8089端口,输入nets ...

  4. LeetCode 1143. Longest Common Subsequence

    原题链接在这里:https://leetcode.com/problems/longest-common-subsequence/ 题目: Given two strings text1 and te ...

  5. 题目一:编写一个类Computer,类中含有一个求n的阶乘的方法

    作业:编写一个类Computer,类中含有一个求n的阶乘的方法.将该类打包,并在另一包中的Java文件App.java中引入包,在主类中定义Computer类的对象,调用求n的阶乘的方法(n值由参数决 ...

  6. 深入解析pure virtual function call

    在本文中,我们将不解释为什么会提示“纯虚拟函数调用”和如何提示“纯虚拟函数调用”,而是详细解释在win32平台的构造函数/析构函数中直接/间接调用纯虚拟函数时程序本身.在开始时,将显示一个经典示例,在 ...

  7. [RN] React Native 下列表 FlatList 和 SectionList

    1.FlatList FlatList组件用于显示一个垂直的滚动列表,其中的元素之间结构近似而仅数据不同. FlatList更适于长列表数据,且元素个数可以增删.和ScrollView不同的是,Fla ...

  8. 自助法(Bootstraping)

    自助法(Bootstraping)是另一种模型验证(评估)的方法(之前已经介绍过单次验证和交叉验证:验证和交叉验证(Validation & Cross Validation)).其以自助采样 ...

  9. C博客作业00——我的第一篇博客

    1.你对网络专业或计算机专业了解是怎样? 初看字眼,便觉得是理工性很强的专业,所以需要较强的开拓思维,创新精神,探索未知事物的勇气,才能掌握并且熟练应用相关知识.计算机类专业都需要学习计算机语言,而计 ...

  10. 菜鸟学IT之Hadoop综合大作业

    Hadoop综合大作业 作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/3363 1.将爬虫大作业产生的csv文件上传到HDF ...