Esempio n. 1
0
<?php

require_once ROOT . 'models/model.php';
use Respect\Validation\Validator as v;
$validateSignup = function () use($app) {
    $req = $app->request();
    $data = $req->post();
    $validator = v::key('domain', v::domain()->notEmpty())->key('username', v::string()->notEmpty()->length(1, 32))->key('email', v::email()->notEmpty())->key('nick', v::string()->notEmpty()->length(1, 32))->key('password', v::string()->notEmpty()->length(6, 20))->key('password_confirm', v::equals($data['password'])->notEmpty());
    try {
        $validator->assert($data);
    } catch (\InvalidArgumentException $e) {
        $errors = $e->findMessages(array('domain' => '网站域名不能为空', 'username' => '账户只能是英文字符和数字', 'email' => '邮箱格式不正确', 'nick' => '用户名称不能为空', 'password' => '密码不能少于6个字符', 'password_confirm' => '两次输入的密码不一致'));
        $app->flash('errors', $errors);
        $app->redirect(SITE_URL . '/signup');
    }
};
/**
 *-------------------------------------------
 * User Signup
 *-------------------------------------------
 */
$app->get('/signup', function () use($app) {
    $app->render("signup.html");
})->name('signup');
$app->post('/signup', $validateSignup, function () use($app) {
    // $this->halt('500', "Signup Not Supported Now");
    $req = $app->request();
    $data = $req->post();
    $error = null;
    $user = ORM::forTable('users')->where('email', $data['email'])->findOne();
    if ($user) {
Esempio n. 2
0
 /**
  * @dataProvider providerForDomain
  */
 public function testBuilder($validDomain, $checkTLD = true)
 {
     $this->assertTrue(v::domain($checkTLD)->validate($validDomain), sprintf('Domain "%s" should be valid. (Check TLD: %s)', $validDomain, var_export($checkTLD, true)));
 }
Esempio n. 3
0
<?php

define('MAX_SIZE', 3 * 1024 * 1024);
require "vendor/autoload.php";
use Respect\Validation\Validator as v;
$url = $_GET['url'];
$url_parts = parse_url($url);
//error_log(print_r($url_parts,1));
// check valid url.
if (!v::arr()->key('scheme', v::startsWith('http'))->key('host', v::domain())->key('path', v::string())->validate($url_parts)) {
    die_and_log($status = 400, 'invalid url', $url);
}
// head access
$c = new Curl();
$c->setHeader('X-Forwarded-For', getRemoteIP());
$c->setOpt(CURLOPT_NOBODY, true);
$c->setOpt(CURLOPT_RETURNTRANSFER, true);
$c->error(function () {
    die_and_log($status = 500, "head request error");
});
$c->get($url);
error_log($url);
//error_log(print_r($c->response_headers,1));
// check head res
$length = null;
$content_type = null;
foreach ($c->response_headers as $header) {
    if (preg_match("/\\AContent-Length/i", $header)) {
        $length = (int) explode(":", $header, 2)[1];
    } else {
        if (preg_match("/\\AContent-Type/i", $header)) {