3.2.4 服务器端用PHP处理请求
当用户输入了用户名后,该数据将提交至一个PHP程序做处理。服务器端的PHP处理程序需要显示用户刚刚输入的用户名,以及一个录入用户信息的界面。考虑到不同的用户录入的信息都是不同的,不同的用户只能看到自己的录入信息,所以要在程序中使用session维护不同用户的状态和数据。
(1)如代码3-9所示,用来处理用户输入的用户名,并且负责显示数据录入界面。代码3-9就是常见的在HTML文档中内嵌PHP代码的文件。
代码3-9 处理用户名并且显示信息录入界面3-9.php
01 <?php
02 session_start();//开始session
03
04 $user=$_POST['user_name'];//获取3-8.html传入的用户名
05 if(!empty($user))
06 {
07 $_SESSION['user']=$user;//将用户名注册到session变量中
08 $welcome="您好,".$user."!请录入以下信息后提交。<br/>";
09 }
10 ?>
11 <html>
12 <head>
13 <title>3-9.php用户信息录入</title>
14 </head>
15
16 <body>
17 <?php
18 echo$welcome;//显示一条欢迎信息
19 ?>
20 <form name="info"action=""method="POST">
21 <table border="0">
22 <tr><td>性别:</td><td><input name="gender"type="radio"value="男">男<input name="gender"
23 type="radio"value="女">女</td></tr>
24 <tr><td>年龄:</td><td><input name="age"type="input"size="3"></td></tr>
25 <tr>
26 <td>血型:</td>
27 <td>
28 <select name="blood_type">
29 <option value="A">A型</option>
30 <option value="B">B型</option>
31 <option value="O">O型</option>
32 <option value="AB">AB型</option>
33 <option value="其他">其他血型</option>
34 </select>
35 </td>
36 </tr>
37 <tr><td><input type="submit"value="提交"></td></tr>
38 </table>
39 </form>
40
41 </body>
42 </html>
【代码解析】第1~10行是一段PHP代码,其通过第4行的$_POST['user_name']来获取用户输入的姓名,然后通过第7行的$_SESSION['user']保存该用户名。
(2)当用户输入用户名并提交后,上述程序将会输出一句问候语,然后是用户信息的录入界面,如图3-15所示。
(3)接下来,还需要一个处理录入信息的PHP程序。事实上,这个程序可以在代码3-9中实现。在代码3-9的基础上,加入一些对3-9.php中表单数据是否提交的判断,就可以实现对录入信息的处理。如果用户没有提交数据,那么,仍然显示信息录入界面。代码3-10就是在代码3-9的基础上做一些修改,用来完成对用户录入信息的处理,并输出用户信息。
代码3-10 处理用户录入信息3-10.php
01 <?php
02 session_start();
03
04 $user=$_POST['user_name'];
05 if(!empty($user))
06 {
07 $_SESSION['user']=$user;
08 $welcome="您好,".$user."!请录入以下信息后提交。<br/>";
09 }
10
11 $gender=$_POST['gender'];
12 $age=$_POST['age'];
13 $blood=$_POST['blood_type'];
14
15 //如果当前用户提交了数据,则输出这些数据
16 if(!empty($gender)&&!empty($age)&&!empty($blood))
17 {
18 echo"性别:".$gender."<br/>";
19 echo"年龄:".$age."<br/>";
20 echo"血型:".$blood."<br/>";
21 }
22 //如果用户没有提交数据,则显示信息录入界面
23 else
24 {
25 ?>
26
27 <html>
28 <head>
29 <title>3-9.php用户信息录入</title>
30 </head>
31
32 <body>
33 <?php
34 echo$welcome;
35 ?>
36 <form name="info"action=""method="POST">
37 <table border="0">
38 <tr><td>性别:</td><td><input name="gender"type="radio"value="男">男<input name="gender"
39 type="radio"value="女">女</td></tr>
40 <tr><td>年龄:</td><td><input name="age"type="input"size="3"></td></tr>
41 <tr>
42 <td>血型:</td>
43 <td>
44 <select name="blood_type">
45 <option value="A">A型</option>
46 <option value="B">B型</option>
47 <option value="O">O型</option>
48 <option value="AB">AB型</option>
49 <option value="其他">其他血型</option>
50 </select>
51 </td>
52 </tr>
53 <tr><td><input type="submit"value="提交"></td></tr>
54 </table>
55 </form>
56
57 </body>
58 </html>
59 <?php
60 }
61 ?>
【代码解析】第16行语句就是通过if语句来判断用户的输入,其中读者要看清楚!empty($gender)&&!empty($age)&&!empty($blood)这个语句,首先是通过empty()函数判断值是否为空,然后通过!运算符取反,最后通过&&运算符将3个比较结果再进行比较。
(4)将3-8.html中表单提交后的处理程序改为3-10.php,即将表单的action属性改为“3-10.php”,输入用户名后提交至3-10.php。在3-10.php生成的页面中,录入用户信息后提交,此时3-10.php中的表单数据提交到自身(3-10.php)。然后再通过程序判断,输出用户所录入的信息。最后的输出效果如图3-16所示。