GVKun编程网logo

php – 如何在codeigniter中进行否定表单验证?(php表单提交输入判断)

15

在这篇文章中,我们将带领您了解php–如何在codeigniter中进行否定表单验证?的全貌,包括php表单提交输入判断的相关情况。同时,我们还将为您介绍有关CodeIgniter如何解决URL含有中

在这篇文章中,我们将带领您了解php – 如何在codeigniter中进行否定表单验证?的全貌,包括php表单提交输入判断的相关情况。同时,我们还将为您介绍有关CodeIgniter 如何解决URL含有中文字符串 codeigniter thinkphp codeigniter 3.0 codeigniter session、CodeIgniter中间件:简化表单验证和数据过滤、CodeIgniter表单验证方法实例详解_PHP、CodeIgniter表单验证方法实例详解,codeigniter表单的知识,以帮助您更好地理解这个主题。

本文目录一览:

php – 如何在codeigniter中进行否定表单验证?(php表单提交输入判断)

php – 如何在codeigniter中进行否定表单验证?(php表单提交输入判断)

is_unique是表单验证,不允许数据库中存在该值.
但是,我可以做相反的事吗?例如,我想要存在的值
在数据库中,所以,我制定如下规则:

$this->form_validation->set_rules('email','Email','required|max_length[32]|valid_email|(!(is_unique[users.email]))');

但似乎没有像我预期的那样成功,任何建议?谢谢.

解决方法

你可以这样做

$this->form_validation->set_rules('email','required|max_length[32]|valid_email|callback_email_available');

控制器方法

public function email_available($str)
{
    // You can access $_POST variable
    $this->load->model('mymodel');
    $result =   $this->mymodel->emailAvailability($_POST['email']);
    if ($result)
    {
        $this->form_validation->set_message('email_available','The %s already exists');
        return FALSE;
    }else{
        return TRUE;
    }
}

模型mymodel.PHP

public function emailAvailability($email)
{
    $this->db->where('email',$email);
    $query  =   $this->db->get('tablename');
    return $query->row();
}

CodeIgniter 如何解决URL含有中文字符串 codeigniter thinkphp codeigniter 3.0 codeigniter session

CodeIgniter 如何解决URL含有中文字符串 codeigniter thinkphp codeigniter 3.0 codeigniter session

CodeIgniter中间件:简化表单验证和数据过滤

CodeIgniter中间件:简化表单验证和数据过滤

codeigniter中间件:简化表单验证和数据过滤

在开发Web应用程序时,表单验证和数据过滤是必不可少的一步。CodeIgniter作为一款流行的PHP框架,提供了一套灵活的验证工具,让开发者可以轻松地处理表单验证和数据过滤的任务。而通过使用中间件,我们可以进一步简化和优化这些任务。

中间件是CodeIgniter框架的一个强大功能,它可以在控制器方法之前或之后执行一定的代码。这使得我们可以在中间件中处理一些通用的任务,而不用在每个控制器方法中都进行重复的验证和过滤。

下面,我们将介绍如何使用中间件来简化表单验证和数据过滤。

首先,我们需要创建一个自定义的中间件类。在CodeIgniter中,中间件类可以放在application/Middleware目录下。我们创建一个名为FormValidationMiddleware.php的文件,并编写以下代码:

<?php
// application/Middleware/FormValidationMiddleware.php

namespace AppMiddleware;

use CodeIgniterExceptionsPageNotFoundException;
use ConfigServices;

class FormValidationMiddleware
{
    public function before(RequestInterface $request, $arguments = null)
    {
        $config = config(''Validation'');

        $validation = Services::validation($config);

        if (!$validation->run($request->getPost())) {
            throw PageNotFoundException::forInvalidRequest();
        }

        // 可以在这里进行数据过滤

        return $request;
    }

    public function after(RequestInterface $request, ResponseInterface $response, $arguments = null)
    {
        return $response;
    }
}
登录后复制

上述代码中,我们使用了CodeIgniter的Validation类来进行表单验证。首先,我们加载了配置文件Validation,并根据配置文件创建了一个验证实例。然后,我们使用验证实例对POST请求数据进行验证。如果验证失败,我们可以选择抛出一个PageNotFoundException异常,表示请求无效。如果验证通过,我们可以在before方法中添加数据过滤的代码。

接下来,我们需要在config/Events.php文件中注册中间件类。找到以下代码:

$events->on(''pre_system'', function () {
    // Code...
});
登录后复制

在此代码块中,我们可以开始注册中间件类。代码如下:

$events->on(''pre_system'', function () {
    // 注册表单验证中间件
    $middlewares = [
        AppMiddlewareFormValidationMiddleware::class,
    ];

    Services::middlewares()
        ->attach($middlewares)
        ->setPriority(0)
        ->setAsGlobal();
});
登录后复制

上述代码中,我们创建了一个$middlewares数组,并将中间件类FormValidationMiddleware添加到数组中。然后,我们使用CodeIgniter的Services类来注册中间件。我们设置了中间件的优先级为0,这意味着该中间件将在所有其他中间件之前执行。最后,使用setAsGlobal()方法将中间件设置为全局,使其在整个应用程序的请求中都生效。

现在,我们已经成功地创建了一个中间件类,并注册了它。下面,我们将演示如何在控制器中使用中间件进行表单验证和数据过滤。

假设我们有一个名为UserController的控制器,其中有一个名为register()的方法,用于处理用户注册的表单提交。我们在该方法上添加了中间件注解@middleware来引用我们刚刚创建的中间件:

<?php
// application/Controllers/UserController.php

namespace AppControllers;

use CodeIgniterController;
use CodeIgniterValidationRules;

class UserController extends Controller
{
    /**
     * @middleware(AppMiddlewareFormValidationMiddleware)
     */
    public function register()
    {
        // 其他处理逻辑...

        // 如果代码执行到这里,说明表单验证和数据过滤已经完成
    }
}
登录后复制

如上所示,通过在方法上添加@middleware注解,并指定中间件类的完整命名空间,我们可以将中间件应用于特定的方法。

在上述示例中,我们只使用了表单验证功能,但根据自己的需求,你可以在中间件的before方法中添加其他需要的数据过滤逻辑。

使用中间件来进行表单验证和数据过滤可以极大地简化开发任务。它帮助我们减少了在每个控制器方法中的重复代码,使代码更加精简和可读。同时,中间件也提供了一种解耦的方式来处理请求,使我们的应用程序更加模块化和可维护。

希望这篇文章能帮助你更好地理解和使用CodeIgniter中间件来简化表单验证和数据过滤的任务。

以上就是CodeIgniter中间件:简化表单验证和数据过滤的详细内容,更多请关注php中文网其它相关文章!

CodeIgniter表单验证方法实例详解_PHP

CodeIgniter表单验证方法实例详解_PHP

本文实例讲述了codeigniter表单验证方法。分享给大家供大家参考,具体如下:

1.在D:\CodeIgniter\system\application\views目录下写一个视图文件myform.php

<html>
<head>
<title>My Form</title>
</head>
<body>
<&#63;php echo $this->validation->error_string;&#63;>
<&#63;php echo form_open(''form/index'');&#63;>
<h5>Username</h5>
<input type="text" name="username" value="" size="50" />
<h5>Password</h5>
<input type="text" name="password" value="" size="50" />
<h5>Password Confirm</h5>
<input type="text" name="passconf" value="" size="50" />
<h5>Email Address</h5>
<input type="text" name="email" value="" size="50" />
<div><input type="submit" value="Submit" /></div>
</form>
</body>
</html>

登录后复制

然后再写一个视图文件formsuccess.php

<html>
<head>
<title>My Form</title>
</head>
<body>
<h3>Your form was successfully submitted!</h3>
<p><&#63;=anchor(''form'', ''Try it again!''); &#63;></p>
</body>
</html>

登录后复制

2.在D:\CodeIgniter\system\application\controllers目录下写一个控制器文件form.php

立即学习“PHP免费学习笔记(深入)”;

<&#63;php
class Form extends Controller{
 function index(){
 $this->load->helper(array(''form'',''url''));
 $this->load->library(''validation'');
   $rules[''username''] = "required";
    $rules[''password''] = "required";
    $rules[''passconf''] = "required";
    $rules[''email''] = "required";
    $this->validation->set_rules($rules);
 //    $this->validation->set_error_delimiters(''<div>'',''</div>'');
 $fields[''username''] = ''Username'';
 $fields[''password''] = ''Password'';
 $fields[''passconf''] = ''Password Confirmation'';
 $fields[''email''] = ''Email Address'';
 $this->validation->set_fields($fields);
   if ($this->validation->run()==false) {
   $this->load->view(''MyView/myform'');
   }else {
   $this->load->view(''MyView/formsuccess.php'');
   }
 }
}
&#63;>

登录后复制

3.http://localhost:8888/index.php/form/index访问一下

Ok,结果都出来了

更多关于PHP相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

CodeIgniter表单验证方法实例详解,codeigniter表单

CodeIgniter表单验证方法实例详解,codeigniter表单

codeigniter表单验证方法实例详解,codeigniter表单

本文实例讲述了codeigniter表单验证方法。分享给大家供大家参考,具体如下:

1.在D:\CodeIgniter\system\application\views目录下写一个视图文件myform.php

<html>
<head>
<title>My Form</title>
</head>
<body>
<&#63;php echo $this->validation->error_string;&#63;>
<&#63;php echo form_open(''form/index'');&#63;>
<h5>Username</h5>
<input type="text" name="username" value="" size="50" />
<h5>Password</h5>
<input type="text" name="password" value="" size="50" />
<h5>Password Confirm</h5>
<input type="text" name="passconf" value="" size="50" />
<h5>Email Address</h5>
<input type="text" name="email" value="" size="50" />
<div><input type="submit" value="Submit" /></div>
</form>
</body>
</html>

登录后复制

然后再写一个视图文件formsuccess.php

<html>
<head>
<title>My Form</title>
</head>
<body>
<h3>Your form was successfully submitted!</h3>
<p><&#63;=anchor(''form'', ''Try it again!''); &#63;></p>
</body>
</html>

登录后复制

2.在D:\CodeIgniter\system\application\controllers目录下写一个控制器文件form.php

<&#63;php
class Form extends Controller{
 function index(){
 $this->load->helper(array(''form'',''url''));
 $this->load->library(''validation'');
   $rules[''username''] = "required";
    $rules[''password''] = "required";
    $rules[''passconf''] = "required";
    $rules[''email''] = "required";
    $this->validation->set_rules($rules);
 //    $this->validation->set_error_delimiters(''<div>'',''</div>'');
 $fields[''username''] = ''Username'';
 $fields[''password''] = ''Password'';
 $fields[''passconf''] = ''Password Confirmation'';
 $fields[''email''] = ''Email Address'';
 $this->validation->set_fields($fields);
   if ($this->validation->run()==false) {
   $this->load->view(''MyView/myform'');
   }else {
   $this->load->view(''MyView/formsuccess.php'');
   }
 }
}
&#63;>

登录后复制

3.http://localhost:8888/index.php/form/index访问一下

Ok,结果都出来了

更多关于PHP相关内容感兴趣的读者可查看本站专题:《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:

  • Codeigniter检测表单post数据的方法
  • Codeigniter实现处理用户登录验证后的URL跳转
  • CodeIgniter配置之autoload.php自动加载用法分析
  • CodeIgniter控制器之业务逻辑实例分析
  • CodeIgniter自定义控制器MY_Controller用法分析
  • CodeIgniter钩子用法实例详解
  • CodeIgniter配置之database.php用法实例分析
  • CodeIgniter多语言实现方法详解
  • CI(CodeIgniter)模型用法实例分析
  • CodeIgniter辅助之第三方类库third_party用法分析
  • CodeIgniter扩展核心类实例详解
  • CodeIgniter视图使用注意事项
  • CodeIgniter读写分离实现方法详解

今天关于php – 如何在codeigniter中进行否定表单验证?php表单提交输入判断的介绍到此结束,谢谢您的阅读,有关CodeIgniter 如何解决URL含有中文字符串 codeigniter thinkphp codeigniter 3.0 codeigniter session、CodeIgniter中间件:简化表单验证和数据过滤、CodeIgniter表单验证方法实例详解_PHP、CodeIgniter表单验证方法实例详解,codeigniter表单等更多相关知识的信息可以在本站进行查询。

本文标签: