随笔分类 -  PHP / 表单

摘要:问题 希望根据当前日期自动创建一系列下拉菜单 解决方案 创建一个DateTime对象,然后循环处理所关心的日期,并用modify()方法修改对象。 基于日期生成下拉菜单选项 $options = array(); $when = new DateTime(); for ($i = 0; $i < 7 阅读全文
posted @ 2025-01-19 20:39 kksllss 阅读(3) 评论(0) 推荐(0) 编辑
摘要:问题 一个表单元素允许用户选择多个选项,如下拉菜单或一组复选框,不过PHP只能看到其中一个提交值。 解决方案 表单元素名末尾加一对中括号([])。 命名一组复选框 <input type="checkbox"name="boroughs[]" value="bronx"> The Bronx Bro 阅读全文
posted @ 2025-01-19 17:22 kksllss 阅读(2) 评论(0) 推荐(0) 编辑
摘要:问题 你在使用一个老版本的PHP,希望访问表单输入变量,但不允许恶意用户在你的程序中设置任意的全局变量。 解决方案 最容易的解决方案是使用PHP5.4.0或以后版本。从这个版本开始,去除了register_globals配置指令,正是这个配置指令导致了全局变量注入问题。 如果使用较早版本的PHP,可 阅读全文
posted @ 2025-01-19 16:31 kksllss 阅读(3) 评论(0) 推荐(0) 编辑
摘要:问题 希望防止用户将同一个表单提交多次。 解决方案 在表单中包含一个隐藏域,并指定一个唯一的值。验证表单时,查看提交的表单是否已经有这个值。 如果有,则拒绝提交。如果还没有,则处理表单,并记录这个值以备以后使用。 另外,可以使用JavaScript,使得一旦表单提交就禁用表单Submit(提交)按钮 阅读全文
posted @ 2025-01-19 04:17 kksllss 阅读(4) 评论(0) 推荐(0) 编辑
摘要:问题 表单中输入的数据有问题时,希望在有问题的输入域旁边输出错误消息,而不是在表单最上面显示一个通用的错误消息。还希望保留用户在表单中输入的值,使他们不用再重新输入。 解决方案 验证时,将表单错误记录到一个数组中,以元素名为键。然后当显示表单时,在各个元素旁边输出适当的错误消息。为了保留用户输入,可 阅读全文
posted @ 2025-01-19 04:12 kksllss 阅读(4) 评论(0) 推荐(0) 编辑
摘要:问题 希望使用一个显示多页面的表单,而且从一个页面切换到下一个页面时要保留数据。例如,可能想建立表单做一个调查,由于问题太多,所以无法把所有问题都放在一个页面中。 解决方案 使用会话跟踪来存储各个阶段的表单信息,另外使用一个变量跟踪要显示哪个阶段。示例9-21展示了4个文件,这些文件对应一个两页面表 阅读全文
posted @ 2025-01-18 02:01 kksllss 阅读(5) 评论(0) 推荐(0) 编辑
摘要:问题 希望处理用户上传的一个文件。 解决方案 使用$FILES数组获得上传文件的有关信息。 // 检查请求方法是否为GET if($_SERVER['REQUEST_METHOD'] == 'GET'){ }else{ // 如果请求方法不是GET(即表单提交后),则处理文件上传 // 检查是否有名 阅读全文
posted @ 2025-01-18 00:46 kksllss 阅读(6) 评论(0) 推荐(0) 编辑
摘要:问题 希望在一个HTML页面上安全地显示用户输入的数据。例如,允许用户为一个博文增加评论,但不希望评论中的HTMIL或JavaScript带来问题。 解决方案 在显示用户输入之前,先将用户输入传入htmlentities()。**** 转义HTML print 'The comment was: ' 阅读全文
posted @ 2025-01-17 18:30 kksllss 阅读(2) 评论(0) 推荐(0) 编辑
摘要:问题 希望用户不要输入一个仿造的信用卡号。 解决方案 is_valid_credit_card()函数可以告诉你所提供的一个信用卡号在语法上是否合法。 验证信用卡号 function is_valid_credit_card($s){ // 删除非数字字符,并反向 $s = strrev(preg_ 阅读全文
posted @ 2025-01-17 03:56 kksllss 阅读(5) 评论(0) 推荐(0) 编辑
摘要:问题 希望确保用户输入的一个日期或时间是合法的。例如,希望确保用户不会试图计划在8月45日举办某个活动,也不会提供一个已经过期的信用卡。 解决方案 如果表单将月、日和年作为单独的元素,可以把这些值传入checkdate()。这会指出所提供的月、日和年是否合法。 检查一个特定的日期 if(! chec 阅读全文
posted @ 2025-01-17 03:54 kksllss 阅读(7) 评论(0) 推荐(0) 编辑
摘要:问题 希望确保只选中合法的复选框。 解决方案 对于单个复选框,确保如果提供一个值则应当是正确的值。如果未为复选框提供值,那么这个复选框不应选中。 验证单个复选框 //生成复选框 echo ""; $value ='yes'; echo " Subscribe?"; echo ""; echo ""; 阅读全文
posted @ 2025-01-17 00:02 kksllss 阅读(5) 评论(0) 推荐(0) 编辑
摘要:问题 希望确保从一组单选钮选择了一个合法的单选钮。 解决方案 使用一个值数组来生成菜单。然后验证这个输入,检查所提交的值在这个数组中。使用array_key_exists()来完成验证。 //生成单选钮 $choices = array('eggs' => 'Eggs', 'toast' => 'T 阅读全文
posted @ 2025-01-16 23:51 kksllss 阅读(2) 评论(0) 推荐(0) 编辑
摘要:问题 希望确保从select元素生成的一个下拉菜单中选择了一个合法的选项。 解决方案 使用一个值数组生成菜单。然后检查输入值是否在这个数组中来验证输入。使用in_array()来完成这个验证。 用in_array()验证下拉菜单 $choices = array('Eggs','Toast','Co 阅读全文
posted @ 2025-01-16 03:13 kksllss 阅读(3) 评论(0) 推荐(0) 编辑
摘要:问题 希望知道用户提供的一个email地址是否合法。 解决方案 使用FILTER_VALIDATE_EMAIL过滤器。它会(基本上)根据RFC5321中的规则指出一个email地址是否合法。 验证email地址 $email = filter_input(INPUT_POST, 'email', F 阅读全文
posted @ 2025-01-16 00:58 kksllss 阅读(2) 评论(0) 推荐(0) 编辑
摘要:问题 希望确保在一个表单输入框中输入了一个数。例如,不希望一个人说他的年龄oldenough(足够老)或者是tangerine(桔红色),而应当提供类似13或56的值。 解决方案 如果需要一个整数,可以使用FILTER_VALIDATE_INT过滤器: 用FILTER_VALIDATE_INT验证数 阅读全文
posted @ 2025-01-16 00:56 kksllss 阅读(3) 评论(0) 推荐(0) 编辑
摘要:问题 希望确保必须为一个表单元素提供一个值。例如,希望保证一个文本框不为空。 解决方案 使用filter_has_var()查看这个元素在相应的输入数组中是否存在。 严格表单验证 // 检查POST请求中是否存在'first_name'字段,并且这个字段的长度大于0 if(!(filter_has_ 阅读全文
posted @ 2025-01-14 03:51 kksllss 阅读(6) 评论(0) 推荐(0) 编辑
摘要:根据请求方法决定做什么 <!-- 如果请求方法是GET,显示表单 --> <form action="<?php echo htmlentities($_SERVER['SCRIPT_NAME']) ?>" method="post"> <!-- 表单的action属性设置为当前脚本的名称,确保表单 阅读全文
posted @ 2025-01-14 02:46 kksllss 阅读(3) 评论(0) 推荐(0) 编辑
摘要:PHP处理一个页面时,它会检查URL和表单变量、上传的文件、可应用的cookie,以及Web服务器变量和环境变量。 这些可以通过以下数组直接访问:$_GET、$_POST、$_FILES、$_COOKIE、$_SERVER和$_ENV。 它们分别包含查询字符串中设置的所有变量、post请求体中设置的 阅读全文
posted @ 2025-01-14 02:26 kksllss 阅读(2) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示