PHP课程整理

PHP培训课程

一.环境搭建(phpstudy)

1.必要套件
(1)Apache/Nginx(web服务器)

​ 运行PHP时一定要启动

(2)MySQL(数据库管理系统)

​ 统一使用5.7版本,如果网页用到了数据库需要启动

2.网站创建
(1)PHP版本

​ 统一使用5.6版本,可在管理处修改

(2)网站根目录

​ 域名即相当于取代了网站根目录的路径,有时也会默认跳转到index.php,一般指向www这个目录。通过在域名后面加文件路径打开相应文件

(3)phpstrom环境搭建
3.数据库创建
(1)创建数据库
(2)Navicat数据库管理工具

​ 安装:https://springboot.io/t/topic/1314

​ 连接上本地数据库

​ 主机填写:localhost(本地)

二.PHP与表单

------login.html------
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="login.php" method="post">
    <input type="text" name="name">
    <input type="password" name="password">
    <input type="email" name="email">
    <button type="submit">提交</button>
</form>

</body>
</html>
------login.php------
<?php

$name = $_POST["name"];
$email = $_POST["email"];
$password = $_POST["password"];
if (isset($name)) {
    $pic = "1.jpg";
    // 三种插入变量的方式
    echo "我的名字是$name";
    echo "<br>";
    echo "我的邮箱是".$email;
    echo "<br>";
    echo "我的密码是{$password}";
    echo "<br>";
    // 多个引号的情况
    echo "<img src='1.jpg'/>";
    echo "<br>";
    echo "<img src='$pic' />";
      // 通过url传递数据
    echo "<a href='get.php?name=233&uid=1111'>链接</a>";
}

------get.php------
    
<?php
$name = $_GET['name'];
echo $name;

(1)PHP语言特性,和html混合起来用

(2)表单如何和PHP联系起来

(3)PHP可以打印html标签但是看不到源码的

(4)PHP弱类型语言,和JavaScript一样不需要声明数据类型,而是编译器自行判断

<?php
$obj = 123;
print_r(gettype($obj));
echo "<br>";
$obj = '1233';
print_r(gettype($obj));
echo "<br>";
$obj = array('v',1);
print_r(gettype($obj));

(4)PHP打印字符串中插入变量的方法

(5)用到多个引号的情况

(6)请求方式get和post

  • 观察get情况下的url
  • get获取资源(如网页,图片,查询数据库这些都是用get请求),post传输数据(用get虽然也能传输数据,但是数据大小相对较小,而且安全性不好)
  • get可以通过url传递数据
  • 其他http请求方式,暂时还用不上

三.PHP与Ajax

表单中,我们用post向php发送数据,页面会刷新。有些地方是静态的但是也跟着刷新了,有没有什么办法让页面不刷新获取数据(异步请求)呢?你们应该已经在js中学过了,用ajax来实现

—————login.html————— 
<h1>动态输入框</h1>
    <input type="text" name="username" id="btname">
    <script>
      //   当输入框失去焦点时触发事件
      document.querySelector('#btname').onblur=function(){
          // 发送ajax请求
          // 1.创建异步对象
          var ajax = new XMLHttpRequest();
          // 2.设置请求方式和对象
          ajax.open('post','get.php');
          /*如果需要像 HTML 表单那样 POST 数据,请使用 setRequestHeader() 来添加 HTTP 头。然后在 send() 方法中规定您希望发送的数据:*/
          ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
          // 3.发送请求,数据用js获得的输入框里面的内容
          ajax.send('name='+ document.querySelector("#btname").value);
          ajax.onreadystatechange = function (){
              if(ajax.readyState==4&&ajax.status==200){
                  alert(ajax.responseText);
              }
          }
      }
—————login.php————— 
<?php
$name = $_POST['name'];
echo '我的名字是'.$name;
?>

三.PHP与cookie,seesion

------login.php------
$add_name = md5($name);
setcookie("name",$add_name,time()+3600);

$add_name = base64_encode($name);
setcookie("name",$add_name,time()+3600);
------get.php------
<?php
$name = $_COOKIE['name'];
echo $name;
echo base64_decode($name);

(1)由get引入:除了通过get的这种方式,其它页面如何获得一些共用的信息呢?我们有个想法,把这个信息存起来如何?

(2)把信息存在客户端中,这里指浏览器

(3)时限如果没设计过期时间,默认为关闭浏览器清除(记得清理缓存)

(4)cookie存在的问题,可以在客户端修改,特别是明文的情况下,很容易被修改。我们可以进行加密(md5是单向加密不可逆,base64_decode双向加密,可以解密,但是可以构建自己的加密算法让客户端难以解密),客户端看不懂是什么,但是服务端知道加密算法可以解密

(5)把信息存在cookie里面会有很多安全问题(例如:cookie可能被解密了,cookie劫持等等),那我们可以选择把信息存在服务端中,再随机生成一个钥匙给客户端(即sessionid,保存在cookie中),那么客户端只能通过这个钥匙发给服务器进行匹配,校验通过才能获得信息

// 开启seesion会话
session_start();
// 设置session
$_SESSION["name"] = $name;
// 开启session会话
session_start();
// 取回session
$name = $_SESSION["name"];
echo $name;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值