PHP程序设计第二次实验表单报告

  • 表单

阐述表单的概念,主要列举表单及表单元素。

表单Web网页在的表单一般用来做网络调查、用户在线注册、信息检索及网站服务提供商向用户采集信息等。表单是较为复杂的HTML元素,经常与脚本、动态网页、后台数据处理等结合在一起使用,是设计动态网页的必备元素。利用表单可以在HTML页面中插入一些表单控件(元素),如文本框、提交按钮、重置按钮、单选按钮、复选框、下拉列表框等,完成各类信息的采集。

表单标记form标记,以<form>开始,以</form>结束。
表单定义了采集数据的范围,其所包含的数据内容将被完整地提交给服务器。

常见的表单元素:

  1. form: 定义供用户输入的表单。
  2. fieldset: 定义域。即输入区加有文字的边框。
  3. legend:定义域的标题,即边框上的文字。
  4. label:定义一个控制的标签。如输入框前的文字,用以关联用户的选择。
  5. input: 定义输入域,常用。可设置type属性,从而具有不同功能。
  6. textarea: 定义文本域(一个多行的输入控件),默认可通过鼠标拖动调整大小。
  7. button: 定义一个按钮。
  8. select: 定义一个选择列表,即下拉列表。
  9. option: 定义下拉列表中的选项。
  • 获取表单数据的两种方法

使用POST和GET方式的不同提交方式分别是什么?两种提交方式的区别是什么?

<form action=”” method=”post”></form>

<form action=”” method=”get”></form>

http://url?name1=value1

POST和GET是HTTP协议中用于向服务器提交数据的两种常见方式。迁移性非常强在大三同一学期中代码审计和网络渗透都有用到,可见php设计课程的重要性!!!
GET方式是通过URL参数将数据附加在URL的末尾,以键值对的形式提交给服务器。例如:`http://example.com?name=John&age=25`。GET请求会将数据以明文形式暴露在URL中,因此不适合用于传输敏感信息。GET请求通常用于向服务器请求数据,而不会对服务器的状态进行任何修改。
POST方式是通过请求体将数据提交给服务器,在请求的头部通过Content-Type来指定数据的格式,如application/x-www-form-urlencoded或multipart/form-data。POST请求会将数据封装在请求体中,不会暴露在URL中。POST请求适合用于传输敏感信息和对服务器状态进行修改。
区别:
1. 数据位置:GET方式将数据附加在URL中,而POST方式将数据封装在请求体中。
2. 数据长度限制:GET请求对URL长度有限制,不同浏览器和服务器有不同的限制,一般在2KB到8KB之间;而POST请求没有固定的长度限制,一般受到服务器和网络的限制。
3. 数据安全性:由于GET请求将数据明文暴露在URL中,所以安全性较低,不适合传输敏感信息;而POST请求将数据封装在请求体中,相对安全性较高。
4. 缓存处理:GET请求可以被浏览器缓存,可以被收藏为书签,可以被浏览器历史记录记录下来;而POST请求不会被缓存,不能被收藏为书签,也不会在浏览器历史记录中留下痕迹。
5. 可见性:GET请求的参数会显示在URL中,用户可以看到参数值;而POST请求的参数不会显示在URL中,用户无法直接看到参数值。
根据具体的应用场景和需求,选择适合的方式来提交数据。如果是传输敏感信息或修改服务器状态,一般建议使用POST方式。如果是获取数据或进行简单的查询操作,可以使用GET方式。

  • 正则表达式

   正则表达式组成,使用

正则表达式是一种用于匹配和处理字符串的强大工具,它由一系列字符和特殊字符组成。
正则表达式的基本组成包括以下几个部分:
字符:除了一些特殊字符外,正则表达式可以直接使用普通字符,如字母、数字、空格等。这些字符在正则表达式中表示它们自身。
元字符:元字符是正则表达式中特殊含义的字符。例如,"."(点号)表示任意单个字符,"|"(竖线)表示或逻辑。常见的元字符还有"*"、"+"、"?"、"()"等。
字符类:字符类用于表示一组字符中的任一个字符。使用方括号"[]"来定义字符类,方括号内部可以放置单个字符或范围。例如,"[a-z]"表示小写字母的范围。
量词:量词用于指定匹配字符或字符类的数量。常见的量词有"*"(零个或多个)、"+"(一个或多个)、"?"(零个或一个)等。

锚点:锚点用于指定字符串的位置。常见的锚点有"^"(匹配字符串的起始位置)、"$"(匹配字符串的结束位置)等。
转义字符:在正则表达式中,有些字符具有特殊含义,如果要匹配这些字符本身,需要使用反斜杠""进行转义。例如,"+"可以匹配加号字符。
正则表达式的具体使用方法因编程语言和工具而异。在使用正则表达式时,可以根据具体需求构建匹配模式,并通过正则表达式引擎进行匹配、替换、提取等操作。
请注意,正则表达式的语法和规则非常灵活复杂,需要仔细学习和理解。对于复杂的模式,可能需要更深入的正则表达式知识。

  • 实例练习

核心代码和代码注释,效果截图

Login_html.php

<html>

<head>

<meta charset="utf-8">

<title>欢迎登录</title>

<style>

body{background-color:#eee;margin:0;padding:0;}

.reg{width:400px;margin:15px;padding:20px;border:1px solid #ccc;background-color:#fff;}

.reg .title{text-align:center;padding-bottom:10px;}

.reg th{font-weight:normal;text-align:right;}

.reg input{width:180px;border:1px solid #ccc;height:20px;padding-left:4px;}

.reg .button{background-color:#0099ff;border:1px solid #0099ff;color:#fff;width:80px;height:25px;margin:0 5px;cursor:pointer;}

.reg .td-btn{text-align:center;padding-top:10px;}

.error-box{width:378px;margin:15px;padding:10px;background:#FFF0F2;border:1px dotted #ff0099;font-size:14px;color:#ff0000;}

.error-box ul{margin:10px;padding-left:25px;}

</style>

</head>

<body>

<form method="post">

<table class="reg">

    <tr><td class="title" colspan="2">欢迎登录</td></tr>

    <tr><th>用户名:</th><td><input type="text" name="username" /></td></tr>

    <tr><th>密码:</th><td><input type="password" name="password" /></td></tr>

    <tr><td colspan="2" class="td-btn">

    <input type="submit" value="登录" class="button" />

    <input type="reset" value="重新填写" class="button" />

    </td></tr>

</table>

</form>

//在课堂实验中由于忘记!导致逻辑出错。

<?php if(!empty($error)): ?>

    <div class="error-box">登录失败,错误信息如下:

        <ul><?php foreach($error as $v) echo "<li>$v</li>"; ?></ul>

    </div>

<?php endIf ; ?>

</body>

</html>

Login.php

<?php

$error = array() ;

if(!empty($_POST)) {

$username = $_POST['username'];

$password = $_POST['password'];

include   'check.php' ;

if( ($result = checkUsername ($username)) !== true)

$error[] = $result;

if(($result = checkPassword ($password)) !== true)

$error[] = $result;

if (empty ($error)) {

   if ($username!="admin" || $password!="123456")

      $error[] = '用户名不存在或密码错误。' ;

   else

header ('Location:user_html.php?login=1') ;

}

}

include 'login_html.php';

?>

Check.php

<?php

function checkUsername($username){

    if(!preg_match('/^[\w\x{4e00}-\x{9fa5}]{2,10}$/u',$username)){

return '用户格式不符合要求';

}

return true;

}

function checkPassword($password){

    if(!preg_match('/^\w{6,16}$/',$password)){

    return '密码格式不符合要求';

    }

    return true;

}

User_html.php

  <html>

<head>

<meta charset="utf-8">

<title>会员中心</title>

<style>

body{background-color:#eee;margin:0;padding:0;}

.box{width:400px;margin:15px;padding:20px;border:1px solid #ccc;background-color:#fff;}

.error-box{text-align:center;margin:15px;padding:10px;background:#FFF0F2;border:1px dotted #ff0099;font-size:14px;color:#ff0000;}

.error-box a{color:#0066ff;}

.box .title{font-size:20px;text-align:center;margin-bottom:20px;}

.box .welcome{text-align:center;}

.box .welcome a{color:#0066ff;}

.box .welcome span{color:#ff0000;}

</style>

</head>

<body>

<div class="box">

    <div class="title">会员中心</div>

    <?php if(isset($_GET['login'])) : ?>

            <div class="welcome">您好,欢迎来到会员中心。<a href="login_html.php">退出</a></div>

    <?php else : ?>

            <div class="error-box">您还未登录,请先 <a href="#">登录</a> 或 <a href="#">注册新用户</a> 。</div>

            <?php endif; ?>

    </div>

</body>

</html>

效果图

输入错误信息,会有如上提示

输入正确密码会进入页面

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向前进.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值