如何使用php

时间:2017-06-10 07:29:14

标签: php mysql forms

我想在数据库中保存带有验证规则的自定义html表单。

假设我有一个包含自定义字段和不同元素的表单,例如:select,checkbox,radio,text box。所有这些元素将作为表单保存到数据库中,因此我将能够轻松地将此表单集成到我的网站上的任何位置。

1 个答案:

答案 0 :(得分:0)

您可以将html代码保存在col中,而在另一个列中,您可以保存json数据以用于验证选项。 例如:

<input type="text" name="username" />
<input type="password" name="pass" />

验证:

$validation = array(
  'username' => array(
    'regex' => '/\w{6,12}/',
    'error' => 'Username must be 6 - 12 chars'
  ),
  'pass' => array(
    'func'  => 'validate_password',
    'error' => 'Week password'
  )
);

$validation_json_for_db = json_encode( $validation );

使用示例:

// may be need to receive from db and json_decode parse
$validation = array(
  'username' => array(
    'regex' => '/\w{6,12}/',
    'error' => 'Username must be 6 - 12 chars'
  ),
  'pass' => array(
    'func'  => 'validate_password',
    'error' => 'Week password'
  )
);

$valid_errors = array();
foreach( $validation as $key => $val ){
  if( isset( $_POST[$key] ) ){
    $isValid = false;
    if( isset( $val['func'] ) ){
      $isValid = call_user_func( $val['func'], $_POST[$key] );
    } elseif( isset( $val['regex'] ){
      $isValid = preg_match( $val['regex'], $_POST[$key] );
    }

    if( ! $isValid ){
      $valid_errors[$key] = $val['error'];
    }

  }
}