<?php

/**
 * Violin example. Basic validation, two arrays.
 * 
 * This shows basic validation using two arrays, one for data,
 * and one for the ruleset. This is useful if you'd like to
 * extract the rules to a seperate class or variable.
 */
require '../vendor/autoload.php';
use Violin\Violin;
$v = new Violin();
$data = ['username' => 'dale', 'email' => '*****@*****.**', 'password' => 'ilovecats', 'password_confirm' => 'ilovecats'];
$rules = ['username' => 'required|alpha|min(3)|max(20)', 'email' => 'required|email', 'password' => 'required', 'password_confirm' => 'required|matches(password)'];
$v->validate($data, $rules);
if ($v->passes()) {
    // Passed
} else {
    var_dump($v->errors()->all());
}
Esempio n. 2
0
$auth = new Auth($pdo);
if (!$auth->isLoggedIn()) {
    header("Location: index.php");
    die;
}
if (!empty($_POST)) {
    // keep track validation errors
    $usernameError = null;
    $passwordError = null;
    $valid = true;
    // keep track post values
    $username = $_POST['username'];
    $password = $_POST['password'];
    $v = new Violin();
    $v->validate(['username' => [$username, 'required|alpha|min(3)|max(20)'], 'password' => [$password, 'required|alpha|min(3)']]);
    if (!$v->passes()) {
        $usernameError = $v->errors()->get('username')[0];
        $passwordError = $v->errors()->get('password')[0];
        $valid = false;
    }
    $options = ["cost" => 12];
    $hashedPassword = password_hash($password, PASSWORD_BCRYPT, $options);
    // insert data
    if ($valid) {
        $pdo = Database::connect();
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $sql = "INSERT INTO user (username, password) values(?, ?)";
        $query = $pdo->prepare($sql);
        $query->execute(array($username, $hashedPassword));
        Database::disconnect();
        header("Location: index.php");