用PHP进行Web编程

1、PHP的web编程基础

1.1HTTP协议原理

172847_H3Jl_1998430.png

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

172847_nZ4l_1998430.png

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项,修改为其他路径;

172847_Mw6H_1998430.png

要记住在服务器网站根目录下面新建一个文件夹命名为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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值