文章教程

3.2.4服务器端用PHP处理请求

9/17/2020 9:26:54 PM 人评论 次浏览

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-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所示。

图 3-16 案例输出结果

教程类别