Exemplo n.º 1
0
 /**
  * Returns the hidden captcha tags to put in your form
  * 
  * @param string $formId        [optional] The id to use to generate input elements (default = "hcptch")
  * @param boolean $withImage    [optional] The captcha use the classic image captcha
  * @return string               The tags to put in your form
  */
 public static function getFormTags($formId = 'hcptch', $withImage = false)
 {
     // Get spinner vars
     $now = time();
     $name = String::random(array('numbers' => false, 'uppercase' => false));
     // Generate the spinner
     $spinner = array('timestamp' => $now, 'session_id' => session_id(), 'ip' => self::_getIp(), 'user_agent' => $_SERVER['HTTP_USER_AGENT'], 'hfield_name' => $name);
     if ($withImage) {
         $captcha = String::hrRandom(5);
         $spinner['captcha'] = $captcha;
     }
     // Encrypt the spinner
     $spinner = Security::encrypt(serialize($spinner));
     // put a random invisible style, to fool spambots a little bit ;-)
     $styles = array('position:absolute;left:-' . mt_rand(10000, 20000) . 'px;', 'display: none');
     $style = $styles[array_rand($styles)];
     // build tags
     $tags = '<input type="hidden" name="' . $formId . '[spinner]" value="' . $spinner . '" />' . PHP_EOL;
     $tags .= '<span style="' . $style . '"><input type="text" name="' . $formId . '[name]" value=""/></span>' . PHP_EOL;
     if ($withImage) {
         $tags .= self::_generateImage($captcha);
         $tags .= '<input type="text" name="' . $formId . '[' . $name . ']" value="" autocomplete="off" />' . PHP_EOL;
     } else {
         $tags .= '<input type="hidden" name="' . $formId . '[' . $name . ']" value="' . $now . '" />' . PHP_EOL;
     }
     return $tags;
 }
Exemplo n.º 2
0
 public function addFile(File $file, $filename = null)
 {
     // sanitize filename
     if (!($filename = Sanitizer::filename($filename))) {
         $filename = String::random(8);
     }
     $realFile = new File($filename);
     // if file type is known, set new extension
     $newFilename = $realFile->basename(false) . '.' . $realFile->extension();
     // store files in flat hirarchy
     $file = $file->move(new Dir(STATIC_DIR . $this->path), $newFilename, true);
     $this->fromArray(array('filename' => $file->basename(), 'mime_type' => $file->mimeType()));
     return $this;
 }
Exemplo n.º 3
0
 public function recover()
 {
     if (isset($_POST['email'])) {
         $recover = new Users();
         if ($recover->select(array('email' => $_POST['email']))) {
             // Create a random password and update the table row
             $recover->password = String::random();
             $recover->update();
             $msg = 'Your new password is: ' . $recover->password . '<br /><br />';
             $msg .= 'Try logging in at <a href="' . WEB_ROOT . 'login/">' . WEB_ROOT . 'login/</a>';
             Core_Helpers::send_html_mail($recover->email, 'Password Recovery', $msg, $data['config']->email_address);
             Flash::set('<p class="flash success">Password has been reset and will be emailed to you shortly.</p>');
         } else {
             Flash::set('<p class="flash validation">Sorry, you have entered an email address that is not associated with any account.</p>');
         }
     }
     $this->load_template('recover');
 }
Exemplo n.º 4
0
 public function post_quenmk()
 {
     $data = Input::all();
     $valid = Validator::make($data, User::$quenmk_rules, User::$language);
     if ($valid->passes()) {
         $code = String::random(50);
         $user = User::where('username', Input::get('username'))->get()->first();
         if ($user == false) {
             return Redirect::to(Session::get('url'))->withInput()->with('error_top', 'Tài khoản không tồn tại');
         } else {
             $mail = array('username' => $user->username, 'code' => $code, 'usermail' => $user->email);
             $user->code = $code;
             $user->save();
             Mail::send('user.mail', $mail, function ($mess) use($mail) {
                 $mess->from('*****@*****.**', 'Việc làm sinh viên Đà Nẵng');
                 $mess->to($mail['usermail'], $mail['username']);
                 $mess->subject('Yêu cầu khôi phục mật khẩu');
             });
             return Redirect::to(Session::get('url'))->with('success_top', 'Vui lòng kiểm tra email và hoàn tất');
         }
     } else {
         return Redirect::to(Session::get('url'))->withInput()->with('error_top', $valid->errors()->first());
     }
 }
Exemplo n.º 5
0
<?php

$root = '.';
include_once "{$root}/config.php";
include_once "{$root}/common.php";
$key = isset($_GET['k']) ? strtolower($_GET['k']) : 'default';
define('CAPTCHA_WIDTH', 150);
define('CAPTCHA_HEIGHT', 50);
/**
 * Captcha case INsensitive.
 */
$captcha = strtolower(Session::captcha($key, String::random(CAPTCHA_LENGTH)));
$image = imagecreate(CAPTCHA_WIDTH, CAPTCHA_HEIGHT);
imagecolorallocate($image, 255, 255, 255);
$color = imagecolorallocate($image, mt_rand(0, 180), mt_rand(0, 180), mt_rand(0, 180));
$border = imagecolorallocate($image, 210, 210, 210);
$shadow = imagecolorallocate($image, 180, 180, 180);
for ($i = 0, $sup = CAPTCHA_WIDTH * CAPTCHA_HEIGHT / CAPTCHA_LENGTH; $i < $sup; $i++) {
    imagesetpixel($image, mt_rand(0, CAPTCHA_WIDTH), mt_rand(0, CAPTCHA_HEIGHT), $color);
}
imagerectangle($image, 0, 0, CAPTCHA_WIDTH - 1, CAPTCHA_HEIGHT - 1, $border);
$angle = mt_rand(-3, 3);
imagettftext($image, 25, $angle, 12, 42, $shadow, "{$root}/themes/{$theme}/captcha.ttf", $captcha);
imagettftext($image, 25, $angle, 10, 40, $color, "{$root}/themes/{$theme}/captcha.ttf", $captcha);
header('Content-Type: image/jpeg');
imagejpeg($image);
imagedestroy($image);
Exemplo n.º 6
0
 /**
  * @covers Panadas\Util\String::random()
  */
 public function testRandom()
 {
     $this->assertNotEquals(String::random(10), String::random(10));
     $this->assertEquals(10, mb_strlen(String::random(10)));
 }
Exemplo n.º 7
0
 /**
  * Tests the random string generator.
  */
 public function testRandom()
 {
     for ($i = 1; $i <= 32; $i++) {
         $random = String::random($i);
         $this->assertEquals($i, strlen($random));
         $this->assertRegExp('~^[a-z0-9]+$~i', $random);
     }
 }
Exemplo n.º 8
0
 /**
  * 扰乱字符
  * 
  */
 protected function _writeOtherCode()
 {
     for ($i = 0; $i < 10; $i++) {
         $color = imagecolorallocate($this->image, mt_rand(150, 225), mt_rand(150, 225), mt_rand(150, 225));
         for ($j = 0; $j < 5; $j++) {
             $char = String::random(1);
             imagestring($this->image, 5, mt_rand(-10, $this->width), mt_rand(-10, $this->height), $char, $color);
         }
     }
 }
 public function testRandom()
 {
     $string = new String("Test15");
     $this->assertEquals(10, $string->length($string->random()));
     $this->assertFalse($string->random() == $string->random());
 }
Exemplo n.º 10
0
 /**
  * Return the unique key for the application or generate a new one and write it in webapp/config/.key
  * 
  * @return string
  */
 private static function _getKey()
 {
     $keyFile = WEBAPP_DIR . DS . 'config' . DS . '.key';
     if (is_file($keyFile)) {
         return file_get_contents($keyFile);
     }
     $rand = String::random(array('length' => 32, 'special' => true));
     if (!file_put_contents($keyFile, $rand)) {
         trigger_error('Cannot write the security key in ' . WEBAPP_DIR . DS . 'config', E_USER_ERROR);
     }
     return $rand;
 }