1、PHP的web编程基础

1.1HTTP协议原理

1.2创建一个表单

在我们的HTML中创建表单是通过<form>来完成的;在form标签里面有两个很重要的属性必须写对,action:表单提交的路径,method:一个get\post;以post方式提交表单的时候,表单数据随HTML正文一起发送,以get方式提交表单的时候,表单数据加到地址之后传递。

<form action="demo1.php" method="post">

<table align="center" border="1" cellpadding="5px" cellspacing="0px;">

<tr>

<td>用户名:</td>

<td><input type="text" name="username"></td>

</tr>

<tr>

<td>性别:</td>

<td><input type="radio" name="sex" value="man">男&nbsp;&nbsp;&nbsp;&nbsp;

<input type="radio" name="sex" value="women">女</td>

</tr>

<tr>

<td>爱好:</td>

<td><input type="checkbox" name="hobby" value="football">足球&nbsp;&nbsp;&nbsp;&nbsp;

<input type="checkbox" name="hobby" value="basketball">篮球&nbsp;&nbsp;&nbsp;&nbsp;

<input type="checkbox" name="hobby" value="yumao">羽毛球</td>

</tr>

<tr align="center">

<td colspan="2"><input type="submit" value="提交"></td>

</tr>

</table>

</form>

1.3.获取和访问HTML表单数据

$_GET:是由表单数据构成的数组;这个数组的索引是表单里面的name属性的值。获取到的值是$_GET[“sex”]

$_POST:

<?php

$username = $_POST["username"];

$sex = $_POST["sex"];

$hobby = $_POST["hobby"];

echo "我叫" . $username . "," . "性别是:" . $sex . "," . "爱好是:" . $hobby;

1.4表单数据的处理

刚刚发现,checkbox提交过来的数据里面,如果是多选的还是只显示一个,这个时候我们需要对其数据进行处理。

首先在html中将name属性中的hobby改为数组。代码:

<td><input type="checkbox" name="hobby[]" value="football">足球&nbsp;&nbsp;&nbsp;&nbsp;

<input type="checkbox" name="hobby[]" value="basketball">篮球&nbsp;&nbsp;&nbsp;&nbsp;

<input type="checkbox" name="hobby[]" value="yumao">羽毛球</td>

因为此处hobby是一个数组,所以我们在接受者个数据的时候,就得以数组的方式去处理数据。

$username = $_POST["username"];

$sex = $_POST["sex"];

$hobby = $_POST['hobby'][0].",".$_POST['hobby'][1].",".$_POST['hobby'][2];

echo "我叫" . $username . "," . "性别是:" . $sex . "," . "爱好是:" . $hobby;

运行之后报出Notice: Undefined offset: 2

两种方式:

  • 在php文件的第一行加入error_reporting(E_ALL^E_NOTICE);

  • 在php.ini中加入配置error_reporting = E_ALL^E_NOTICE

1.5验证表单数据

两种方式来验证,一种是同JavaScript方式,在head中插入script代码,另外一种是同提交后的路径中的php来验证。两种方式都可以。

  • Php验证

$username = $_POST["username"];

$sex = $_POST["sex"];

$hobby = $_POST['hobby'][0] . "," . $_POST['hobby'][1] . "," . $_POST['hobby'][2];

if ($username == "") {

echo "请输入用户名!";

} else {

echo "我叫" . $username . "," . "性别是:" . $sex . "," . "爱好是:" . $hobby;

}

  • JavaScript验证

<script type="text/javascript">

function checkName() {

if(document.getElementById("username").value == ""){

alert("用户名为空,请输入用户名!") ;

return false;

}else{

return true;

}

}

</script>

此外在form里面加入一个onsubmit事件

<form action="demo1.php" method="post" οnsubmit="return checkName()">

1.6php中的session

Session就是指用户进入到网站到浏览器关闭的这段时间,在php中使用session实际上就是通过注册一些session全局变量,然后呢在不同的页面中来使用这些变量。通过session的全局变量就可以完成用户身份验证、页面之间的数据传递等

所以我们要注册一些session变量

语法:

$_SESSION[‘session_name’] = session_value

此外,如果我们要在php中使用session,我们就必须得通过session_star();来表示或者返回一个已经存在的session。这个函数要在浏览器有任何的传出之前调用,也就是说,这个话样放在执行session程序的第一行;

demo_session1.php

<?php

session_start();

$_SESSION['username'] = "黄志鹏";

$_SESSION['hello'] = "demo_session1里的session";

echo "本页面已经保存了一些session变量!";

echo '<a href="demo_session2.php">进入下一个页面</a>查看这些变量值!';

demo_session2.php

<?php

session_start();

echo $_SESSION['username'];

echo $_SESSION['hello'];

echo '<a href="demo_session1.php">返回上一个页面</a>';

1.7php中的文件上传

在php中一旦要进行文件上传,就必须使用HTTP的POST方式提交数据;并且在表单定义的时候必须加入一个属性enctype=” multipart/form-data

<form enctype="multipart/form-data" action="demo_file2.php"

method="post">

上传文件:<input type="file" name="myfile">

<input type="submit" value="立即上传">

</form>

在php中要进行文件上传的话,要使用到全局变量$_FILES,是一个数组,里面包含了文件的信息:

$_FILES[‘myfile’][‘type’]:表示的上传文件的类型,比如“image/ gif/txt”

$_FILES[‘myfile’][‘size’]:表示上传文件的大小,单位是字节

$_FILES[‘myfile’][‘tmp_name]:表示文件上传后,在服务端上存储的临时文件名;

$_FILES[‘myfile’][‘error’]:表示的是和文件上传相关的错误信息

文件上传提交后,一般要被存储到服务器的默认的临时目录中,可以修改php.ini配置文件中的upload_tmp_dir项,修改为其他路径;

要记住在服务器网站根目录下面新建一个文件夹命名为upload

此时我们要通过move_uploaded_file()将上传的文件移动到指定的目录下;

move_uploaded_file(filename,destination)该函数的返回值是布尔类型。

其中filename指合法的上传文件

Destination移动后的目标文件

<?php

$upload_path = $_SERVER['DOCUMENT_ROOT'] . "/upload/";

$dest_file = $upload_path . basename($_FILES['myfile']['name']);

echo $_FILES['myfile']['name'];

echo "<br>";

echo "<br>";

echo $_FILES['myfile']['type'];

echo "<br>";

echo "<br>";

echo $_FILES['myfile']['size'];

echo "<br>";

echo "<br>";

echo $_FILES['myfile']['tmp_name'];

echo "<br>";

echo "<br>";

if (move_uploaded_file($_FILES['myfile']['tmp_name'], $dest_file)) {

echo "文件已经上传至服务器根目录下的upload文件夹中";

echo "<br>";

echo "<br>";

} else {

echo "文件上传中发生一个错误" . $_FILES['myfile']['error'];

echo "<br>";

echo "<br>";

}

2、实践,做一个极为简单的网站

做一个简单的数据录入系统

首先用户提供用户名登录,之后用session维护用户状态。进入系统后,用户可以录入一些个人信息。对应不同的用户有不同的显示效果。

根据要求有三个界面

  1. index.php 用户登录界面

  2. user.php用户录入信息界面

  3. my.php用户个人中心界面

转载于:https://my.oschina.net/hunk0503/blog/742671

用PHP进行Web编程相关推荐

  1. 《jQuery与JavaScript入门经典》——第 1 章 动态Web编程简介 1.1理解Web服务器浏览器范式...

    本节书摘来自异步社区<jQuery与JavaScript入门经典>一书中的第1章,第1.1节,作者:[美]Brad Dayley著,更多章节内容可以访问云栖社区"异步社区&quo ...

  2. 全部编程皆为Web编程

    原文作者:Jeff Atwood   原文链接:http://blog.codinghorror.com/all-programming-is-web-programming Michael Brau ...

  3. 所有编程皆为Web编程

    原文作者:Jeff Atwood   原文链接:http://blog.codinghorror.com/all-programming-is-web-programming Michael Brau ...

  4. 搞懂了这几点,你就学会了Web编程

    做了那么多年Web编程,仔细想想, 其实本质上就那点事儿, 你抓住了几个重点问题, 学起来一点都不难. 1.  理解浏览器/服务器结构 (B/S) B/S 是从 90年代的客户端/服务器端发展而来, ...

  5. 物联网网络编程和web编程

    本文是基于嵌入式物联网研发project师的视觉对网络编程和web编程进行阐述. 对于专注J2EE后端服务开发的同学来说,这篇文章可能略微简单.可是网络编程和web编程对于绝大部分嵌入式物联网proj ...

  6. Java Web 编程入门知识

    Java SE 的内容基本都讲完了. 但是 Java一般用于网络编程, 就是所谓的web编程. Java SE讲的基本上都是本地程序的内容. 而Java web编程需要在两个程序中传输数据, 以后就是 ...

  7. url能访问但new file()找不到文件_Go Web编程给自己写的服务器添加错误和访问日志...

    错误日志和访问日志是一个服务器必须支持的功能,我们教程里使用的服务器到目前为止还没有这两个功能.正好前两天也写了篇介绍logrus日志库的文章,那么今天的文章里就给我们自己写的服务器加上错误日志和访问 ...

  8. 用 Go 语言,做 Web 编程开发

    人民邮电出版社和实验楼合作的第 15 本书来了! Web 介绍 Web 应用在我们的生活中无处不在.看看我们日常使用的各个应用程序,它们要么是 Web 应用,要么是移动 App 这类 Web 应用的变 ...

  9. 2017年8个最流行的Web编程趋势

    互联网一直在不断的发展,这意味着开发人员必须及时了解当前的所有变化.人们在新闻.社交.购物到银行等各大方面都与互联网有着千丝万缕的联系.因此,为了满足全球数百万网络用户的需求,Web开发需求正在上升. ...

  10. css文件修改后没变化 static_Go Web编程使用Go语言创建静态文件服务器

    上篇关于Go模板库应用实践的文章最后我们留下一个问题,页面模板是通过 CDN引用的 BootStrap的 css, js文件.到目前位置我们的服务器还无法伺服客户端的静态文件请求把服务器磁盘上的文件响 ...

最新文章

  1. 安装SQL2000 提示 以前的某个程序安装已在安装计算机上创建挂起的文件
  2. 【转】判断五张牌是不是一个顺子
  3. php 获取上周日期_php 获取今日、昨日、上周、本月的起始时间戳和结束时间
  4. Forrester:工业4.0 中国制造企业用ICT换来改变
  5. js王者归来之正则表达式
  6. shark恒破解笔记6-摆脱NAG
  7. php微信 消息推送 配置,PHP微信公众号模板消息推送
  8. 扫码枪连接mysql教学_Android PDA扫描枪广播接搜条码并使用
  9. 【学点心理学】八本值得反复阅读的心理类书籍推荐
  10. 张家界和桂林的旅游纪实(避坑指南)
  11. 微信趣味地区一键设置,安排
  12. 介绍中国传统节日的网页html,介绍中国传统节日的作文4篇
  13. 计算机内存运算太低,内存频率低对电脑性能有影响吗
  14. 不能忘记陪我们长大的100部电影
  15. 微服务项目:尚融宝(42)(核心业务流程:借款额度审批(2))
  16. C语言dialog函数用法,DialogBox用法
  17. kafka cpu占用高
  18. 全民直播凉了,斗鱼、虎牙们会步其后尘吗?
  19. 联想笔记本Manjaro dde 18 安装疑难杂症解决
  20. DWG 是什么文件格式?如何打开?

热门文章

  1. 乐鑫Esp32学习之旅11 入门 乐鑫esp-adf 音频框架开发,造一个蓝牙耳机,实现切换歌曲,获取歌曲信息等功能。(附带Demo)
  2. 利器解读:Linux 内核调测中最最让开发者头疼的 bug 有解了|龙蜥技术
  3. linux mutt 收不到邮件,mutt 发邮件189邮件收不到邮件内容的解决办法
  4. 2023 年软件文档工具,这5款可以看看!
  5. 基于人脸识别的登录与注册(2)
  6. 快速以管理员运行cmd
  7. PCI设备初始化(一)
  8. H5新特性有哪些?怎么理解语义化
  9. 计算机毕业设计springboot基于VUE电脑城摊位出租系统
  10. SQL语句的基础教程(二)