<?php 
 
require "../src/Validation.php"; 
 
use Hispanic\Validation; 
 
$validation = new Validation(); 
$attributes = array( 
    "repeat_password" => "Repeat Password", 
); 
 
$validation->attributes($attributes); 
$rules = array( 
    "name" => "required|min_length:2|max_length:50|name", 
    "file" => "file_required|mime:pdf|file_min_size:".(20)."|file_max_size:".(1024*1024), 
    "files" => "file_required|min_files:2|max_files:3|mime:png,jpg|file_min_size:1000|file_max_size:".(1024*1024), 
    "image" => "file_required|mime:png,jpg|img_max_width:140|img_max_height:140", 
    "check" => "checked", 
    "date" => "required|date:Y/m/d", 
    "time" => "required|time:H:i:s", 
    "datetime" => "required|datetime:Y/m/d H:i:s", 
    "ip" => "required|ip", 
    "email" => "required|email", 
    "url" => "required|url", 
    "regex" => "required|regex:/^[a-z]+$/", 
    "password" => "required|between:6-30", 
    "repeat_password" => "required|equalsTo:password", 
    "float" => "required|float", 
    "integer" => "required|integer", 
    "numeric" => "required|numeric", 
    "between" => "required|between:10-20", 
    "range" => "required|range:1-10", 
    "contains" => "required|contains:one,two,three", 
); 
 
$messages = array( 
    //"name.required" => "El campo :attribute es requerido", 
    //"name.min_length" ... 
); 
      
$events = array( 
    "name" => "keyup|blur|change", 
    "file" => "change", 
    "files" => "change", 
    "check" => "click", 
    "date" => "keyup|blur|change", 
    "time" => "keyup|blur|change", 
    "datetime" => "keyup|blur|change", 
    "ip" => "keyup|blur|change", 
    "email" => "keyup|blur|change", 
    "url" => "keyup|blur|change", 
    "regex" => "keyup|blur|change", 
    "repeat_password" => "keyup|blur|change", 
    "float" => "keyup|blur|change", 
    "integer" => "keyup|blur|change", 
    "numeric" => "keyup|blur|change", 
    "between" => "keyup|blur|change", 
    "range" => "keyup|blur|change", 
    "contains" => "keyup|blur|change", 
); 
 
$validation->translate("en"); 
$validation->client($rules, $messages, $events); 
$errors = null; 
$first_error = null; 
if (isset($_POST["name"])) { 
    $validation->server($rules, $messages); 
    if (!$validation->isValid()) { 
        $errors = $validation->getErrors(); 
        $first_error = $validation->getFirstError(); 
    } 
} 
?> 
<!DOCTYPE HTML> 
<html> 
    <head> 
        <!-- Latest compiled and minified CSS --> 
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> 
        <!-- Optional theme --> 
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous"> 
         
        <script type="text/javascript" src="https://code.jquery.com/jquery-3.0.0.min.js"></script> 
        <!-- Latest compiled and minified JavaScript --> 
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script> 
        <script type="text/javascript" src="../js/validation.js"></script> 
    </head> 
    <body> 
    <div class="container"> 
        <br /><br /> 
        <?php print_r($errors) ?> 
        <form method="post" action="" id="form" enctype="multipart/form-data" class="form-horizontal"> 
            <div class="form-group"> 
                <label for="name">Name: <small>"name" => "required|min_length:2|max_length:50|name"</small></label>  
                <input type="text" name="name" id="name" class="form-control" value="" /> 
                <p id="error_name"></p> 
            </div> 
            <div class="form-group"> 
                <label for="file">File: <small>"file" => "file_required|mime:pdf|file_min_size:".(20)."|file_max_size:".(1024*1024)</small></label>  
                <input type="file" name="file" id="file" class="form-control" /> 
                <p id="error_file"></p> 
            </div> 
            <div class="form-group"> 
                <label for="files">File Multiple: <small>"files" => "file_required|min_files:2|max_files:3|mime:png,jpg|file_min_size:1000|file_max_size:".(1024*1024)</small></label>  
                <input type="file" name="files[]" id="files" multiple class="form-control" /> 
                <p id="error_files"></p> 
            </div> 
            <div class="form-group"> 
                <label for="image">Image: <small>"image" => "file_required|mime:png,jpg|img_max_width:140|img_max_height:140"</small></label>  
                <input type="file" name="image" id="image" class="form-control" /> 
                <p id="error_image"></p> 
            </div> 
            <div class="form-group"> 
                <label for="check"> 
                    <input type="checkbox" name="check" id="check" /> Checkbox <small>"check" => "checked"</small> 
                </label> 
                <p id="error_check"></p> 
            </div> 
            <div class="form-group"> 
                <label for="date">Date: <small>"date" => "required|date:Y/m/d"</small></label>  
                <input type="text" name="date" id="date" class="form-control" /> 
                <p id="error_date"></p> 
            </div> 
            <div class="form-group"> 
                <label for="time">Time: <small>"time" => "required|time:H:i:s"</small></label>  
                <input type="text" name="time" id="time" class="form-control" /> 
                <p id="error_time"></p> 
            </div> 
            <div class="form-group"> 
                <label for="datetime">DateTime: <small>"datetime" => "required|datetime:Y/m/d H:i:s"</small></label>  
                <input type="text" name="datetime" id="datetime" class="form-control" /> 
                <p id="error_datetime"></p> 
            </div> 
            <div class="form-group"> 
                <label for="ip">Ip: <small>"ip" => "required|ip"</small></label> 
                <input type="text" name="ip" id="ip" class="form-control" /> 
                <p id="error_ip"></p> 
            </div> 
            <div class="form-group"> 
                <label for="email">Email: <small>"email" => "required|email"</small></label>  
                <input type="text" name="email" id="email" class="form-control" /> 
                <p id="error_email"></p> 
            </div> 
            <div class="form-group"> 
                <label for="url">Url: <small>"url" => "required|url"</small></label>  
                <input type="text" name="url" id="url" class="form-control" /> 
                <p id="error_url"></p> 
            </div> 
            <div class="form-group"> 
                <label for="regex">Regex: <small>"regex" => "required|regex:/^[a-z]+$/"</small></label> 
                <input type="text" name="regex" id="regex" class="form-control" /> 
                <p id="error_regex"></p> 
            </div> 
            <div class="form-group"> 
                <label for="password">Password: <small>"password" => "required|between:6-30"</small></label> 
                <input type="password" name="password" id="password" class="form-control" /> 
                <p id="error_password"></p> 
            </div> 
            <div class="form-group"> 
                <label for="repeat_password">Repeat password: <small>"repeat_password" => "required|equalsTo:password"</small></label> 
                <input type="password" name="repeat_password" id="repeat_password" class="form-control" /> 
                <p id="error_repeat_password"></p> 
            </div> 
            <div class="form-group"> 
                <label for="float">Float: <small>"float" => "required|float"</small></label> 
                <input type="text" name="float" id="float" class="form-control" /> 
                <p id="error_float"></p> 
            </div> 
            <div class="form-group"> 
                <label for="integer">Integer: <small>"integer" => "required|integer"</small></label> 
                <input type="text" name="integer" id="integer" class="form-control" /> 
                <p id="error_integer"></p> 
            </div> 
            <div class="form-group"> 
                <label for="numeric">Numeric: <small>"numeric" => "required|numeric"</small></label> 
                <input type="text" name="numeric" id="numeric" class="form-control" /> 
                <p id="error_numeric"></p> 
            </div> 
            <div class="form-group"> 
                <label for="between">Between: <small>"between" => "required|between:10-20"</small></label> 
                <input type="text" name="between" id="between" class="form-control" /> 
                <p id="error_between"></p> 
            </div> 
            <div class="form-group"> 
                <label for="range">Range: <small>"range" => "required|range:1-10"</small></label> 
                <input type="text" name="range" id="range" class="form-control" /> 
                <p id="error_range"></p> 
            </div> 
            <div class="form-group"> 
                <label for="contains">Contains: <small>"contains" => "required|contains:one,two,three"</small></label> 
                <input type="text" name="contains" id="contains" class="form-control" /> 
                <p id="error_contains"></p> 
            </div> 
            <button class="btn btn-default">Send</button> 
        </form> 
        <br /><br /> 
    </div> 
        <?php echo $validation->getClientValidation("#form") ?> 
    </body> 
</html>
 
 |