当前位置: 首页>>代码示例>>PHP>>正文


PHP generate_random_string函数代码示例

本文整理汇总了PHP中generate_random_string函数的典型用法代码示例。如果您正苦于以下问题:PHP generate_random_string函数的具体用法?PHP generate_random_string怎么用?PHP generate_random_string使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了generate_random_string函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: download_files_as_zip

 public function download_files_as_zip($idlist = array())
 {
     $zip = new ZipArchive();
     $randomid = generate_random_string(16);
     $filename = DIR_BASE . "tmp/" . $randomid;
     if ($zip->open($filename, ZIPARCHIVE::CREATE) != true) {
         exit("cannot open <{$filename}>\n");
     }
     $this->model_search_message->connect_to_pilergetd();
     foreach ($idlist as $id) {
         $piler_id = $this->model_search_message->get_piler_id_by_id($id);
         $rawemail = $this->model_search_message->get_raw_message($piler_id);
         $zip->addFromString($piler_id . ".eml", $rawemail);
         AUDIT(ACTION_DOWNLOAD_MESSAGE, '', '', $id, '');
     }
     $this->model_search_message->disconnect_from_pilergetd();
     $zip->close();
     header("Cache-Control: public, must-revalidate");
     header("Pragma: no-cache");
     header("Content-Type: application/zip");
     header("Expires: 0");
     header("Content-Length: " . filesize($filename));
     header("Content-Disposition: attachment; filename=archive-{$randomid}.zip");
     header("Content-Transfer-Encoding: binary\n");
     readfile($filename);
     unlink($filename);
 }
开发者ID:buxiaoyang,项目名称:EmailArchive,代码行数:27,代码来源:restore.php

示例2: check_for_account

 public function check_for_account($google_account = array())
 {
     $session = Registry::get('session');
     $query = $this->db->query("SELECT " . TABLE_USER . ".username, " . TABLE_USER . ".uid, " . TABLE_USER . ".realname, " . TABLE_USER . ".dn, " . TABLE_USER . ".password, " . TABLE_USER . ".isadmin, " . TABLE_USER . ".domain FROM " . TABLE_USER . ", " . TABLE_EMAIL . " WHERE " . TABLE_EMAIL . ".email=? AND " . TABLE_EMAIL . ".uid=" . TABLE_USER . ".uid", array($google_account['email']));
     if ($query->num_rows == 1) {
         $user = $query->row;
     } else {
         $d = explode('@', $google_account['email']);
         $user['uid'] = $this->model_user_user->get_next_uid();
         $user['username'] = $google_account['email'];
         $user['realname'] = $google_account['name'];
         $user['email'] = $google_account['email'];
         $user['domain'] = $d[1];
         $user['dn'] = '*';
         $user['isadmin'] = 0;
         $user['password'] = generate_random_string(12);
         $user['group'] = '';
         $user['folder'] = '';
         $this->model_user_user->add_user($user);
         $this->model_domain_domain->addDomain($user['domain'], $user['domain']);
     }
     $session->set("username", $user['username']);
     $session->set("uid", $user['uid']);
     $session->set("admin_user", 0);
     $session->set("email", $user['username']);
     $session->set("domain", $query->row['domain']);
     $session->set("realname", $query->row['realname']);
     $session->set("emails", $this->model_user_user->get_users_all_email_addresses($user['uid']));
     $session->set("folders", $this->model_folder_folder->get_all_folder_ids($user['uid']));
     $session->set("extra_folders", $this->model_folder_folder->get_all_extra_folder_ids($user['uid']));
     AUDIT(ACTION_LOGIN, $user['username'], '', '', 'successful auth against Google');
 }
开发者ID:buxiaoyang,项目名称:EmailArchive,代码行数:32,代码来源:google.php

示例3: store_file

function store_file($challenge_id, $file)
{
    if ($file['error']) {
        message_error('Could not upload file: ' . file_upload_error_description($file['error']));
    }
    if ($file['size'] > max_file_upload_size()) {
        message_error('File too large.');
    }
    $file_id = db_insert('files', array('added' => time(), 'added_by' => $_SESSION['id'], 'title' => $file['name'], 'size' => $file['size'], 'md5' => md5_file($file['tmp_name']), 'download_key' => hash('sha256', generate_random_string(128)), 'challenge' => $challenge_id));
    if (file_exists(CONST_PATH_FILE_UPLOAD . $file_id)) {
        message_error('File already existed! This should never happen!');
    }
    // do we put the file on AWS S3?
    if (CONFIG_AWS_S3_KEY_ID && CONFIG_AWS_S3_SECRET && CONFIG_AWS_S3_BUCKET) {
        try {
            // Instantiate the S3 client with your AWS credentials
            $client = S3Client::factory(array('key' => CONFIG_AWS_S3_KEY_ID, 'secret' => CONFIG_AWS_S3_SECRET));
            $file_key = '/challenges/' . $file_id;
            // Upload an object by streaming the contents of a file
            $result = $client->putObject(array('Bucket' => CONFIG_AWS_S3_BUCKET, 'Key' => $file_key, 'SourceFile' => $file['tmp_name']));
            // We can poll the object until it is accessible
            $client->waitUntil('ObjectExists', array('Bucket' => CONFIG_AWS_S3_BUCKET, 'Key' => $file_key));
        } catch (Exception $e) {
            delete_file($file_id);
            message_error('Caught exception uploading file to S3: ' . $e->getMessage());
        }
    } else {
        move_uploaded_file($file['tmp_name'], CONST_PATH_FILE_UPLOAD . $file_id);
        if (!file_exists(CONST_PATH_FILE_UPLOAD . $file_id)) {
            delete_file($file_id);
            message_error('File upload failed!');
        }
    }
}
开发者ID:dirvuk,项目名称:mellivora,代码行数:34,代码来源:files.inc.php

示例4: download_attachments_as_zip

 public function download_attachments_as_zip($piler_id = '')
 {
     $zip = new ZipArchive();
     $pid = array();
     $randomid = generate_random_string(16);
     $filename = DIR_BASE . "tmp/" . $randomid;
     if ($zip->open($filename, ZIPARCHIVE::CREATE) != true) {
         exit("cannot open <{$filename}>\n");
     }
     $attachments = $this->model_search_message->get_attachment_list($piler_id);
     foreach ($attachments as $a) {
         $attachment = $this->model_search_message->get_attachment_by_id($a['id']);
         $fp = fopen(DIR_BASE . 'tmp/' . $a['id'], "w+");
         if ($fp) {
             fwrite($fp, $attachment['attachment']);
             fclose($fp);
             $zip->addFile(DIR_BASE . 'tmp/' . $a['id'], $attachment['filename']);
         }
     }
     $zip->close();
     foreach ($attachments as $a) {
         unlink(DIR_BASE . 'tmp/' . $a['id']);
     }
     header("Cache-Control: public, must-revalidate");
     header("Pragma: no-cache");
     header("Content-Type: application/zip");
     header("Expires: 0");
     header("Content-Length: " . filesize($filename));
     header("Content-Disposition: attachment; filename=" . $piler_id . ".zip");
     header("Content-Transfer-Encoding: binary\n");
     readfile($filename);
     unlink($filename);
 }
开发者ID:buxiaoyang,项目名称:EmailArchive,代码行数:33,代码来源:zip.php

示例5: userGetCoupon

 public function userGetCoupon(Request $request, $id, $coupon_id)
 {
     try {
         DB::transaction(function () use($id, $coupon_id) {
             $coupon = Coupon::where('id', $coupon_id)->get()->first();
             // 检查是否可领取(开始领取时间?是否已经激活?)
             if ($coupon->begin_gain_time < date('Y')) {
                 throw new Exception('未到优惠券领取时间');
             }
             $count = UserCoupon::where(['user_id' => $id, 'coupon_id' => $coupon_id])->count();
             // 检查是否超出可领取数量限制
             if ($count >= $coupon->limit_gain_number) {
                 throw new Exception('超出可领取数量限制');
             }
             // 生成11位随机码(检查数据库是否有重复?有重复则提示用户重新输入)
             $coupon_code = generate_random_string('0123456789');
             if (!$coupon_code) {
                 throw new Exception('优惠码重复,请重新申请');
             }
             // 设置用户优惠券状态为未使用
             $user_coupon['user_id'] = $id;
             $user_coupon['coupon_id'] = $coupon_id;
             $user_coupon['coupon_code'] = $coupon_code;
             $user_coupon['coupon_status'] = 0;
             $user_coupon['created'] = time();
             $user_cou = UserCoupon::create($user_coupon);
             if (!$user_cou->id) {
                 throw new Exception('模拟用户优惠券失败');
             }
         });
         return redirect()->route('admin.test.user.index_coupon', $id)->with('message', '成功获取模拟优惠!');
     } catch (Exception $e) {
         return redirect()->back()->withInput($request->input())->with('fail', '获取模拟优惠券失败,数据库操作返回异常!' . $e->getMessage());
     }
 }
开发者ID:xinz0526,项目名称:bbc-admin,代码行数:35,代码来源:AdminTestController.php

示例6: generate_token

function generate_token()
{
    $token = "";
    do {
        $token = generate_random_string(128);
    } while (count_rows("Sessions", "`Token` = '{$token}'", 1));
    return $token;
}
开发者ID:mcenderdragon,项目名称:Icon-Craft,代码行数:8,代码来源:session.php

示例7: login

 public function login($type = 'public', $redirect = true)
 {
     // Initialize
     global $config;
     // Get user row
     if (!($user_row = DB::queryFirstRow("SELECT * FROM users WHERE username = %s", strtolower($_POST['username'])))) {
         $this->invalid_login($type);
     }
     // Check password
     $client = new encrypt();
     if ($client->get_password_hash($_POST['password'], $user_row['id']) != $user_row['password']) {
         $this->invalid_login($type);
     }
     // Get session ID
     do {
         $session_id = generate_random_string(60);
         $exists = DB::queryFirstRow("SELECT * FROM auth_sessions WHERE auth_hash = %s", hash('sha512', $session_id)) ? 1 : 0;
     } while ($exists > 0);
     // Check for 2FA
     $require_2fa = false;
     if ($config['enable_2fa'] == 'all') {
         $require_2fa = true;
     } elseif ($config['enable_2fa'] == 'admin' && $user_row['group_id'] == 1) {
         $require_2fa = true;
     }
     // Generate 2FA hash, if needed
     if ($require_2fa === true) {
         $status_2fa = 0;
         $hash_2fa = generate_random_string(60);
         // Send e-mail
         $url = "http://" . $_SERVER['HTTP_HOST'] . '/2fa/' . $hash_2fa;
         mail($user_row['email'], "2FA Authentication - {$config['site_name']}", "You are receiving this e-mail because you just tried to login to {$config['site_name']}, which required 2FA.  To proceed with your login, please click on the below URL:\r\n\r\n\t{$url}\r\n\r\nThank you,\r\n{$config['site_name']}\r\n");
     } else {
         $status_2fa = 1;
         $hash_2fa = '';
     }
     // Create session
     DB::insert('auth_sessions', array('userid' => $user_row['id'], 'last_active' => time(), 'auth_hash' => hash('sha512', $session_id), '2fa_status' => $status_2fa, '2fa_hash' => $hash_2fa));
     // Set cookie
     $cookie_name = COOKIE_NAME . 'auth_hash';
     setcookie($cookie_name, $session_id);
     // Update alerts
     DB::query("UPDATE alerts SET is_new = 0 WHERE is_new = 2 AND userid = %d", $user_row['id']);
     DB::query("UPDATE alerts SET is_new = 2 WHERE is_new = 1 AND userid = %d", $user_row['id']);
     // Redirect user
     if ($status_2fa == 0) {
         $route = $type == 'admin' ? 'admin/2fa' : '2fa';
         $template = new template($route);
         echo $template->parse();
         exit(0);
     } elseif ($type == 'admin' && $redirect === true) {
         header("Location: " . SITE_URI . "/admin/index");
         exit(0);
     }
     // Return
     return $user_row['id'];
 }
开发者ID:nachatate,项目名称:synala,代码行数:57,代码来源:auth.php

示例8: generate_complex_array

function generate_complex_array(array $nodesPerLayer = array(5, 5, 5, 5))
{
    $layer = [];
    $n = array_shift($nodesPerLayer);
    for ($i = 0; $i < $n; ++$i) {
        $layer[generate_random_string()] = empty($nodesPerLayer) ? generate_random_string() : generate_complex_array($nodesPerLayer);
    }
    return $layer;
}
开发者ID:djfm,项目名称:json_vs_yaml_perf,代码行数:9,代码来源:index.php

示例9: change_password

function change_password($users, $passwords, $user, $old, $new)
{
    if (verify_password($users, $passwords, $user, $old)) {
        $new_salt = generate_random_string(20);
        $passwords[array_keys($users, $user)][0] = hash_password($new, $new_salt);
        $passwords[array_keys($users, $user)][1] = $new_salt;
        logout();
    }
}
开发者ID:pinoaffe,项目名称:content-management-thingy,代码行数:9,代码来源:forum-functions.php

示例10: download_files_as_zip

 public function download_files_as_zip($idlist = array())
 {
     $zip = new ZipArchive();
     $pid = array();
     $randomid = generate_random_string(16);
     $filename = DIR_BASE . "tmp/" . $randomid;
     if ($zip->open($filename, ZIPARCHIVE::CREATE) != true) {
         exit("cannot open <{$filename}>\n");
     }
     $imgs = array();
     foreach ($idlist as $id) {
         $piler_id = $this->model_search_message->get_piler_id_by_id($id);
         array_push($pid, $piler_id);
         $attachments = $this->model_search_message->get_attachment_list($piler_id);
         $images = array();
         foreach ($attachments as $a) {
             if (preg_match("/image/", $a['type'])) {
                 $attachment = $this->model_search_message->get_attachment_by_id($a['id']);
                 $fp = fopen(DIR_BASE . 'tmp/' . $a['id'], "w+");
                 if ($fp) {
                     fwrite($fp, $attachment['attachment']);
                     fclose($fp);
                     $images[] = array('id' => $a['id'], 'name' => $attachment['filename']);
                     $imgs[] = array('name' => $a['id']);
                 }
             }
         }
         $message = $this->model_search_message->extract_message($piler_id);
         $page = $message['from'] . "<br />\n";
         $page .= $message['to'] . "<br />\n";
         $page .= $message['subject'] . "<br />\n";
         $page .= $message['date'] . "<br />\n";
         $page .= "<hr />\n" . $message['message'];
         $this->create_pdf_from_eml($piler_id, $page, $images);
         foreach ($imgs as $img) {
             unlink(DIR_BASE . 'tmp/' . $img['name']);
         }
         $zip->addFile(DIR_BASE . 'tmp/' . $piler_id . '.pdf', $piler_id . '.pdf');
         AUDIT(ACTION_DOWNLOAD_MESSAGE, '', '', $id, '');
     }
     $zip->close();
     foreach ($pid as $piler_id) {
         unlink(DIR_BASE . 'tmp/' . $piler_id . '.pdf');
     }
     header("Cache-Control: public, must-revalidate");
     header("Pragma: no-cache");
     header("Content-Type: application/zip");
     header("Expires: 0");
     header("Content-Length: " . filesize($filename));
     header("Content-Disposition: attachment; filename=archive-{$randomid}.zip");
     header("Content-Transfer-Encoding: binary\n");
     readfile($filename);
     unlink($filename);
 }
开发者ID:buxiaoyang,项目名称:EmailArchive,代码行数:54,代码来源:pdf.php

示例11: create_pending_session

 public function create_pending_session($wallet_id, $product_id = 0, $amount = 0, $currency = 'btc')
 {
     // Initialize
     global $config, $template;
     $userid = LOGIN === true ? $GLOBALS['userid'] : 0;
     $expire_time = time() + $config['payment_expire_seconds'];
     // Get hash
     do {
         $hash = generate_random_string(120);
         if ($row = DB::queryFirstRow("SELECT * FROM coin_pending_payment WHERE pay_hash = %s", hash('sha512', 120))) {
             $exists = 1;
         } else {
             $exists = 0;
         }
     } while ($exists > 0);
     // Get product, if needed
     if ($product_id > 0) {
         if (!($prow = DB::queryFirstRow("SELECT * FROM products WHERE id = %d", $product_id))) {
             trigger_error("Product does not exist, ID# {$product_id}", E_USER_ERROR);
         }
         $amount = $prow['amount'];
         $currency = $prow['currency'];
         $item_name = $prow['display_name'];
     } else {
         $item_name = '';
     }
     // Get amount
     if ($currency == 'fiat') {
         $amount_btc = $amount / $config['exchange_rate'];
     } else {
         $amount_btc = $amount;
         $amount = $amount_btc * $config['exchange_rate'];
     }
     // Get payment address
     if ($userid > 0) {
         $client = new bip32();
         $payment_address = $client->get_user_address($wallet_id, $userid);
         // Delete any existing pending payments
         DB::query("DELETE FROM coin_pending_payment WHERE payment_address = %s AND status = 'pending'", $payment_address);
     } else {
         $payment_address = '';
     }
     // Add to db
     DB::insert('coin_pending_payment', array('wallet_id' => $wallet_id, 'pay_hash' => $hash, 'userid' => $userid, 'item_id' => $product_id, 'amount' => $amount, 'amount_btc' => $amount_btc, 'expire_time' => $expire_time, 'payment_address' => $payment_address));
     // Template variables
     $template->assign('payment_address', $payment_address);
     $template->assign('currency', $currency);
     $template->assign('amount', fmoney_coin($amount_btc));
     $template->assign('amount_fiat', fmoney($amount));
     $template->assign('product_id', $product_id);
     $template->assign('product_name', $item_name);
     // Return hash
     return $hash;
 }
开发者ID:nachatate,项目名称:synala,代码行数:54,代码来源:transaction.php

示例12: login_cookie_create

function login_cookie_create($user, $token_series = false)
{
    $time = time();
    $ip = get_ip(true);
    if (!$token_series) {
        $token_series = generate_random_string(16);
    }
    $token = generate_random_string(64);
    db_insert('cookie_tokens', array('added' => $time, 'ip_created' => $ip, 'ip_last' => $ip, 'user_id' => $user['id'], 'token_series' => $token_series, 'token' => $token));
    $cookie_content = array('t' => $token, 'ts' => $token_series);
    setcookie('login_tokens', json_encode($cookie_content), $time + CONFIG_COOKIE_TIMEOUT, '/', null, CONFIG_SSL_COMPAT, true);
}
开发者ID:jpnelson,项目名称:mellivora,代码行数:12,代码来源:session.inc.php

示例13: page

function page()
{
    global $logger, $session, $db, $user;
    //handle the check
    $postData = $_POST;
    if (time() < $session->csrf_expire) {
        if ($session->csrf_token === $postData['csrf_token']) {
            $email = $postData['email'];
            $password = $postData['password'];
            if ($postData['remember']) {
                $remember = true;
            } else {
                $remember = false;
            }
            //ok, we're going to search for the user based on the email
            $result = $db->select("id, email, password, token, active")->from('users')->where('email', $email)->fetch_first();
            //if we have a record...
            if ($db->affected_rows > 0) {
                //found a matching user, now lets check the password
                if (password_verify($password, $result['password']) && $result['active']) {
                    //valid user!
                    //do we have a token? if not, create one and then initialize the user object
                    if ($result['token'] == '' || $result['token'] == Null) {
                        $token = generate_random_string(32);
                        $db->where('id', $result['id'])->update('users', array('token' => $token))->execute();
                    } else {
                        $token = $result['token'];
                    }
                    $session->setCookie('user', $token, $remember);
                    $session->user_token = $token;
                    $session->logged_in = true;
                    $redirect = '/pages/dashboard.php';
                    page_cleanup($redirect);
                } else {
                    // passwords don't match, let's set a formError and return to the index page
                    $session->setFormError('email', 'That email/password combination was not found!');
                    page_cleanup("/index.php");
                }
            } else {
                // user not found, let's set a formError and return to the index page
                $session->setFormError('email', 'That email/password combination was not found.');
                page_cleanup("/index.php");
            }
        } else {
            $session->setFormError('email', 'There was a token mismatch. Hack attempt foiled.');
            page_cleanup("/index.php");
        }
    } else {
        $session->setFormError('email', 'Timed out. Please don\'t let the form sit so long.');
        page_cleanup("/index.php");
    }
    //print "Session: ".$session->csrf_token."<br>Form: ".$_POST['csrf_token']."";
}
开发者ID:Pioneer-Web-Development,项目名称:MangoV2,代码行数:53,代码来源:authorizeUser.php

示例14: autologin

 function autologin()
 {
     $this->load->helper('jazz_string');
     $this->load->model('mdl_login');
     $result = false;
     $cookie = $this->getcookie();
     if ($cookie) {
         $username = $cookie[0];
         $old_hash = $cookie[1];
         $result = $this->mdl_login->validate_cookie($username, $old_hash);
     }
     if (!$result) {
         $this->show();
     } else {
         $hash = generate_random_string(26);
         $result = $this->mdl_login->get_where_custom('jazz_users', 'user_email', $username)->row();
         modules::run('user/save_session_data', $result);
         modules::run('user/save_user_activity', $result);
         $this->deletecookie($username, $old_hash);
         $this->setcookie($username, $hash);
         redirect('dashboard');
     }
 }
开发者ID:jabouzi,项目名称:jazz,代码行数:23,代码来源:login.php

示例15: message_as_rfc822_attachment

 public function message_as_rfc822_attachment($piler_id = '', $msg = '', $rcpt = '')
 {
     if ($piler_id == '' || $msg == '' || $rcpt == '') {
         return '';
     }
     $boundary = generate_random_string(24);
     $hdr = substr($msg, 0, 8192);
     $subject = "";
     $s = strstr($hdr, "Subject:");
     if ($s) {
         $l1 = strlen($s);
         $l2 = strlen(strstr($s, "\n"));
         if ($l1 > $l2 + 10) {
             $subject = substr($s, 0, $l1 - $l2) . EOL;
         }
     }
     $s = "";
     $s .= "Received: by piler" . EOL . PILER_HEADER_FIELD . $piler_id . EOL;
     $s .= "Date: " . date("r") . EOL;
     $s .= "Message-ID: <" . generate_random_string(25) . '@' . SITE_NAME . ">" . EOL;
     $s .= "From: " . SMTP_FROMADDR . EOL;
     $s .= "To: " . $rcpt . EOL;
     if ($subject) {
         $s .= $subject;
     } else {
         $s .= "Subject: Retrieved message from the email archive" . EOL;
     }
     $s .= "MIME-Version: 1.0" . EOL;
     $s .= "Content-Type: multipart/mixed; boundary=\"{$boundary}\"" . EOL . EOL . EOL;
     $s .= "--{$boundary}" . EOL;
     $s .= "Content-Type: message/rfc822; name=\"" . $piler_id . "\"" . EOL;
     $s .= "Content-Disposition: attachment; filename=\"" . $piler_id . "\"" . EOL . EOL;
     $s .= $msg . EOL;
     $s .= "--{$boundary}" . EOL;
     return $s;
 }
开发者ID:buxiaoyang,项目名称:EmailArchive,代码行数:36,代码来源:mail.php


注:本文中的generate_random_string函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。