React

PHP 的 GET & POST请求|数据库的写入和线上

2019-03-28  本文已影响92人  CondorHero

写在前面: JS 与用户进行通讯的时候,可以用 prompt 和 alert 。我们的服务器上面的 PHP 程序是如何得到用户的数据呢?用户的数据要干预程序的运行。就得通过 get 和 post 方法。

一、GET方法

有时候在浏览器的地址栏观察网址,发现网络的地址是这样的http://lixin/com?k=v&k=v
? 后面的部分,不会影响我们访问哪个网页,这后面的 k=v 的数据,就是给后台语言看的。对于前台意义不大。
借用实例来讲解:

<?php
        $b = $_GET["name"];
        echo $b;
    ?>

请求结果:

GET请求
get:参数都体现在url上,可以用于跳转网页、翻页,简单查询,get 只能接收 2M 以下的内容,所以有只能输入 2048k 字节, 有局限性,另外由于内容是可见的,安全性就下降了,

form表单有两个重要的属性:
● method属性:提交表单的方法,是get还是post。如果写了get的话,那么提交表单的时候,就会通过URL地址的?来传递参数。
● action属性:处理表单的php程序
● name属性:获取ID用的。

二、数据库写入

昨天学习的 SQL 语句中的查询,检索所有数据库条目
SELECT * FROM xuesheng;
如果想检索某一条条目用WHERE子句:
SELECT * FROM xuesheng WHERE xingming = “小明”;

今天要学习的是写入,就是“增”
INSERT INTO xuesheng(xingming,nianling,qqhao) VALUES ('考拉',20,2435345)
公式:
INSERT INTO 表名(字段1,字段2,字段3) VALUES (值1,值2,值3)

三、模拟表单接收和数据库的写入

  1. 空白数据库


    创建数据库

    创建完成不进行内容填写。

2.HTML页面和填写内容

页面和填写内容
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单提交和数据库写入模拟</title>
    
</head>
<body>
    <div>
        <form action="index.php" method="get">
            学习进度: 
            <label><input type="radio" name="name1" value="非常快">非常快</label>
            <label><input type="radio" name="name1" value="一般">一般</label>
            <label><input type="radio" name="name1" value="很慢">很慢</label>
            <br>
            学习状态: 
            <label><input type="radio" name="name2" value="非常好">非常好</label>
            <label><input type="radio" name="name2" value="很好">很好</label>
            <label><input type="radio" name="name2" value="很差">很差</label>
            <br>
            课程进度: 
            <label><input type="radio" name="name3" value="太快了">太快了</label>
            <label><input type="radio" name="name3" value="正好">正好</label>
            <label><input type="radio" name="name3" value="太慢了">太慢了</label>
            <br>
            课堂建议:
            <br>
            <textarea name="name4" id="" cols="35" rows="5"></textarea>
            <br>
            <input type="submit" value="提交">
        </form>
    </div>
</body>
</html>
  1. 连接数据库,使用GET方法,获取填写内容,进行数据库写入
<?php
    //通过GET请求获取填写内容
    $name1 = $_GET["name1"];
    $name3 = $_GET["name3"];
    $name2 = $_GET["name2"];
    $name4 = $_GET["name4"];

    //数据库的连接
    $ccon = mysql_connect("localhost","root","root");

    mysql_select_db("students class info",$ccon);
    //数据库的写入  其中mysql_query是执行的意思!
    $result = mysql_query("INSERT INTO students(xuexijingdu,xuexichuantai,kechengjindu,jianyi) VALUES('{$name1}','{$name2}','{$name3}','{$name4}')");

    if($result ==1){
        echo "表单成功接收!";
    }else{
        echo "错误提交请重试!";
    }
    //关闭数据库
    mysql_close($ccon);


?>
  1. 实验结果
    页面内容填写完成点击提交。


    提交完成

    数据库信息:


    接收到内容

四、数据库的线上部署

数据库的创建和表单的创建类似 sql_yog 本地的部署。
本次演示使用的我的百度云主机,因为只有一个数据库,无法另外创建一个数据库进行演示。只能从表的创建开始。

  1. 登陆到主机后台,进入数据库管理页面。这里的数据库管理软件是 phpMyAdmin。点击操作,开始创建表。
    如下;
    创建表
  2. 代码上传到服务器:
    一共两个文件HTML的和PHP的。
    超级无敌大坑:使用前面PHP代码上传到服务器,更改完连接数据库的地址密码等。错误!!!显示http 500 无法完成请求,加入显示具体错误的代码进行查找的!
    原因:连接PHP的方法只支持到PHP5.5以下的,尴尬!!!
    只能使用新方法PDO和mysqli,使用后者。
    参考连接:MySQL 插入数据 | 菜鸟教程 http://www.runoob.com/mysql/mysql-insert-query.html
<?php
    //通过GET请求获取填写内容
    $name1 = $_GET["name1"];
    $name3 = $_GET["name3"];
    $name2 = $_GET["name2"];
    $name4 = $_GET["name4"];

    //这两行代码扔出错误的提示信息,要不然新手的我找不到原因!!!
    ini_set("display_errors","On");  
    error_reporting(E_ALL);
    //数据库的连接
    $ccon = mysqli_connect("localhost","root","root");

    mysqli_select_db( $ccon,"DfvhWrXgzUsreEsAbSNI");
    //数据库的写入,两个参数
    $result = mysqli_query($ccon,"INSERT INTO students(xuexijingdu,xuexichuantai,kechengjindu,jianyi) VALUES('{$name1}','{$name2}','{$name3}','{$name4}')");

    if($result ==1){
        echo "表单成功接收!";
    }else{
        echo "错误提交请重试!";
    }
    //关闭数据库
    mysqli_close($ccon);


?>

就这个破玩意耽误我一下午。麻蛋!

  1. 访问域名:
访问服务器页面
  1. 点击提交会显示提交成功。数据录入成功


    数据成功显示

五、POST请求

POST请求是让用户的数据传输到服务器上,而不是利用URL,而是利用HTTP request报文头。
HTTP是报文,requst、response都是以报文的形式传输的。报文的内容就是<html><body></body></html>就是页面的内容,而报文的头部携带有很多信息。

GET请求非常好产生,我们每一次输入网址打开网站都是一次GET请求,GET请求利用的是URL。
POST请求非常难于自己产生,必须借助表单。

POSt请求的好处:

POST请求的缺点:

鉴于GET/POST的优点、缺点对比明显,工程上:

上一篇下一篇

猜你喜欢

热点阅读