public static function vxValidate()
 {
     $rt = array();
     $rt['errors'] = 0;
     $rt['url_value'] = '';
     $rt['url_hash'] = '';
     $rt['url_maxlength'] = 240;
     $rt['url_error'] = 0;
     $rt['url_error_msg'] = array(1 => '你没有填写 URL', 2 => '你填写的 URL 过长,不能超过 ' . $rt['url_maxlength'] . ' 个字符');
     if (isset($_GET['url'])) {
         $rt['url_value'] = fetch_single($_GET['url']);
         if ($rt['url_value'] == '') {
             $rt['errors']++;
             $rt['url_error'] = 1;
         } else {
             if (mb_strlen($rt['url_value'], 'UTF-8') > $rt['url_maxlength']) {
                 $rt['errors']++;
                 $rt['url_errors'] = 2;
             }
         }
     } else {
         $rt['errors']++;
         $rt['url_error'] = 1;
     }
     if ($rt['url_error'] == 0) {
         $rt['url_hash'] = md5($rt['url_value']);
     }
     $rt['title_value'] = '';
     $rt['title_maxlength'] = 200;
     $rt['title_error'] = 0;
     $rt['title_error_msg'] = array(1 => '你没有填写标题', 2 => '你填写的标题过长,不能超过 ' . $rt['title_maxlength'] . ' 个字符');
     if (isset($_GET['title'])) {
         $rt['title_value'] = fetch_single($_GET['title']);
         if ($rt['title_value'] == '') {
             $rt['errors']++;
             $rt['title_error'] = 1;
         } else {
             if (mb_strlen($rt['title_value'], 'UTF-8') > $rt['title_maxlength']) {
                 $rt['errors']++;
                 $rt['title_errors'] = 2;
             }
         }
     } else {
         $rt['errors']++;
         $rt['title_error'] = 1;
     }
     $rt['notes_value'] = '';
     $rt['notes_maxlength'] = 200;
     $rt['notes_error'] = 0;
     $rt['notes_error_msg'] = array(2 => '你填写的备注过长,不能超过 ' . $rt['notes_maxlength'] . ' 个字符');
     if (isset($_GET['notes'])) {
         $rt['notes_value'] = fetch_single($_GET['notes']);
         if (mb_strlen($rt['notes_value'], 'UTF-8') > $rt['notes_maxlength']) {
             $rt['errors']++;
             $rt['notes_errors'] = 2;
         }
     }
     return $rt;
 }
Example #2
0
         $p->vxHead($msgSiteTitle = '同步');
         $p->vxBodyStart();
         $p->vxTop();
         $p->vxContainer('add_sync', $sync);
         break;
     }
 case 'add_sync_start':
     if (!$p->User->vxIsLogin()) {
         die($p->URL->vxToRedirect($p->URL->vxGetLogin($p->URL->vxGetAddSync())));
         break;
     } else {
         $sync = array();
         $sync['status'] = 'default';
         if (isset($_POST['d_u']) && isset($_POST['d_p'])) {
             $del_user = fetch_single($_POST['d_u']);
             $del_pass = fetch_single($_POST['d_p']);
             if ($del_user != '' && $del_pass != '') {
                 require_once 'Zend/Service/Delicious.php';
                 $del = new Zend_Service_Delicious($del_user, $del_pass);
                 try {
                     $posts = $del->getAllPosts();
                 } catch (Zend_Service_Delicious_Exception $e) {
                     $posts = false;
                     $sync['status'] = 'error';
                 }
                 if ($posts) {
                     var_dump($posts);
                     $result = Add::vxSync($p->User, $p->db, $posts);
                     var_dump($result);
                 }
             } else {
if (isset($_GET['oe'])) {
    $oe = strtolower(fetch_single($_GET['oe']));
    if ($oe != 'gbk') {
        $oe = 'utf-8';
    }
} else {
    $oe = "utf-8";
}
if ($oe != 'utf-8') {
    header('Content-type: text/javascript; charset=gbk');
} else {
    header('Content-type: text/javascript; charset=utf-8');
}
header('Cache-control: no-cache, must-revalidate');
if (isset($_GET['u'])) {
    $user_nick = fetch_single($_GET['u']);
    if ($user_nick == '') {
        $o = "document.writeln('<small style=\"font-size: 11px;\"><a href=\"http://" . BABEL_DNS_NAME . "/ing\" target=\"_blank\">" . Vocabulary::site_name . "::ING</a></small> 输出失败 - 没有指定会员昵称');";
    } else {
        $db = mysql_pconnect(BABEL_DB_HOSTNAME . ':' . BABEL_DB_PORT, BABEL_DB_USERNAME, BABEL_DB_PASSWORD);
        mysql_select_db(BABEL_DB_SCHEMATA, $db);
        mysql_query("SET NAMES utf8");
        mysql_query("SET CHARACTER SET utf8");
        mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");
        $user_nick = mysql_real_escape_string($user_nick);
        $sql = "SELECT usr_id FROM babel_user WHERE usr_nick = '{$user_nick}'";
        $rs = mysql_query($sql);
        if (mysql_num_rows($rs) == 1) {
            $user_id = mysql_result($rs, 0, 0);
            mysql_free_result($rs);
            $sql = "SELECT ing_doing, ing_created FROM babel_ing_update WHERE ing_uid = {$user_id} ORDER BY ing_created DESC LIMIT 1";
Example #4
0
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
DEFINE('V2EX_BABEL', 1);
require 'core/IngCore.php';
if (isset($_GET['m'])) {
    $m = strtolower(trim($_GET['m']));
} else {
    $m = 'public';
}
$p =& new Ing();
switch ($m) {
    default:
    case 'public':
        $p->vxPublic();
        break;
    case 'personal':
        if (isset($_GET['u'])) {
            // u: usr_nick
            $u = fetch_single($_GET['u']);
            if ($u == '') {
                $p->vxPublic();
            } else {
                $User = $p->User->vxGetUserInfoByNick($u);
            }
        }
        $p->vxPersonal();
        break;
}
         $_default['url'] = '';
         $_default['remember'] = true;
     } else {
         $_default['nick'] = '';
         $_default['email'] = '';
         $_default['url'] = '';
         $_default['remember'] = false;
     }
     if ($_default['remember']) {
         setcookie('babel_weblog_comment_default', serialize($_default), time() + 86400 * 30, '/');
     }
 }
 if (strtoupper($_SERVER['REQUEST_METHOD']) == 'POST') {
     $remember = false;
     if (isset($_POST['remember'])) {
         $remember_value = strtolower(fetch_single($_POST['remember']));
         if ($remember_value == 'on') {
             $remember = true;
         }
     }
     $Validator = new Validator($db, $User);
     $rt = $Validator->vxBlogCommentCheck();
     if ($rt['errors'] == 0) {
         if ($User->vxIsLogin()) {
             $user_id = $User->usr_id;
             $status = 1;
             $_SESSION['babel_message_comment'] = 'Your comment is saved.';
         } else {
             $user_id = 0;
             $status = 0;
             $_SESSION['babel_message_comment'] = 'Your comment is saved and holding for moderation.';
 public function vxSetLang()
 {
     if (isset($_GET['lang'])) {
         $lang = strtolower(fetch_single($_GET['lang']));
         include BABEL_PREFIX . '/res/supported_languages.php';
         if (!in_array($lang, array_keys($_languages))) {
             $lang = BABEL_LANG_DEFAULT;
         }
         if ($_SESSION['babel_lang'] != $lang) {
             if ($this->User->vxIsLogin()) {
                 $sql = "UPDATE babel_user SET usr_lang = '{$lang}' WHERE usr_id = {$this->User->usr_id}";
                 mysql_unbuffered_query($sql);
             }
             @$this->cs->remove('nav_' . md5(session_id()));
             $_SESSION['babel_lang'] = $lang;
         }
     }
     if (isset($_SERVER['HTTP_REFERER'])) {
         return header('Location: ' . $_SERVER['HTTP_REFERER']);
     } else {
         return header('Location: /');
     }
 }
Example #7
0
require_once 'HTTP/Request.php';
require_once 'Crypt/Blowfish.php';
/* 3rdparty Zend Framework cores */
ini_set('include_path', BABEL_PREFIX . '/libs/zf/' . ZEND_FRAMEWORK_VERSION . PATH_SEPARATOR . ini_get('include_path'));
require_once 'Zend/Cache.php';
require_once 'core/Utilities.php';
require_once 'core/DataCore.php';
if (@($db = mysql_connect(BABEL_DB_HOSTNAME . ':' . BABEL_DB_PORT, BABEL_DB_USERNAME, BABEL_DB_PASSWORD))) {
    mysql_select_db(BABEL_DB_SCHEMATA);
    mysql_query("SET NAMES utf8");
    mysql_query("SET CHARACTER SET utf8");
    mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");
}
$c = Zend_Cache::factory('Core', ZEND_CACHE_TYPE_TINY, $ZEND_CACHE_OPTIONS_TINY_FRONTEND, $ZEND_CACHE_OPTIONS_TINY_BACKEND[ZEND_CACHE_TYPE_TINY]);
if (isset($_GET['m'])) {
    $m = strtolower(fetch_single($_GET['m']));
} else {
    $m = 'empty';
}
define('__PAGE__', $m);
$c = Zend_Cache::factory('Core', ZEND_CACHE_TYPE_TINY, $ZEND_CACHE_OPTIONS_TINY_FRONTEND, $ZEND_CACHE_OPTIONS_TINY_BACKEND[ZEND_CACHE_TYPE_TINY]);
switch ($m) {
    case 'empty':
    default:
        break;
    case 'chart_data_user':
        if ($o = $c->load(__PAGE__)) {
        } else {
            $o = Data::vxData2Amchart(Data::vxDataByMonth('usr', 'user'));
            $c->save($o, __PAGE__);
        }
if (@($db = mysql_connect(BABEL_DB_HOSTNAME . ':' . BABEL_DB_PORT, BABEL_DB_USERNAME, BABEL_DB_PASSWORD))) {
    mysql_select_db(BABEL_DB_SCHEMATA);
    mysql_query("SET NAMES utf8");
    mysql_query("SET CHARACTER SET utf8");
    mysql_query("SET COLLATION_CONNECTION='utf8_general_ci'");
}
$User = new User('', '', $db);
header('Content-type: text/html; charset=UTF-8');
echo '<html><head><meta http-equiv="content-type" content="text/html;charset=UTF-8" /></head>';
echo '<body>';
if ($User->vxIsLogin()) {
    if ($User->usr_id == 1) {
        echo 'Welcome.<br /><br />';
        if (isset($_GET['u']) && isset($_GET['g'])) {
            $u = fetch_single($_GET['u']);
            $g = fetch_single($_GET['g']);
            $us = mysql_real_escape_string($u);
            $gs = mysql_real_escape_string($g);
            $sql = "UPDATE babel_user SET usr_google_account = '{$gs}' WHERE usr_nick = '{$us}' LIMIT 1";
            mysql_query($sql);
            if (mysql_affected_rows($db) == 1) {
                echo "{$u}'s Google Account is updated.<br /><br />";
            } else {
                echo "Something is not OK.<br /><br />";
            }
        }
        echo '<form method="get">User: <input type="text" name="u" />&nbsp;&nbsp;Gtalk: <input type="text" name="g" /><br /><input type="submit" /></form>';
    } else {
        die('403');
    }
} else {
Example #9
0
    public function vxOutputJavaScriptIngPersonal()
    {
        if (isset($_GET['u'])) {
            $user_nick = fetch_single($_GET['u']);
            $User = $this->User->vxGetUserInfoByNick(mysql_real_escape_string($user_nick));
            if (!$User) {
                $User = $this->User->vxGetUserInfo(1);
            }
        } else {
            $User = $this->User->vxGetUserInfo(1);
        }
        echo '<div id="single">';
        echo '<div class="blank" align="left">';
        _v_ico_silk('html');
        echo ' JavaScript 输出我的 ING 中的最新活动';
        _v_hr();
        echo '你可以使用下面生成的这些 JavaScript 代码片段在你自己的网站上,展示你在 <a href="/ing/' . $User->usr_nick_url . '/friends">' . Vocabulary::site_name . '::ING</a> 中的最新活动。根据你的网站编码类型,请选择 UTF-8 或者 GBK 编码的输出。<br /><br />';
        _v_ico_silk('lightbulb');
        echo ' 代码解释';
        _v_hr();
        echo '<blockquote style="white-space: pre; line-height: 16px; padding: 5px 0px 10px 10px; margin: 0px;">';
        _v_ico_silk('bullet_blue');
        echo ' <strong>babel_ing_prefix</strong>   前缀文字,比如“当前进行中”,“Currently”等<br />';
        _v_ico_silk('bullet_blue');
        echo ' <strong>babel_ing_color_prefix</strong>   前缀文字颜色,请使用 CSS 颜色语法<br />';
        _v_ico_silk('bullet_blue');
        echo ' <strong>babel_ing_color_time</strong>   时间戳颜色,请使用 CSS 颜色语法<br />';
        echo '</blockquote>';
        _v_ico_silk('control_play_blue');
        echo ' 代码片段';
        _v_hr();
        echo '<h1>UTF-8 <span class="tip_i">适用于大部分网站</span></h1> ';
        echo '<div class="code">&lt;script type="text/javascript"&gt;
	babel_ing_prefix = "现在进行中:";
	babel_ing_color_prefix = "#999";
	babel_ing_color_time = "#999";
&lt;/script&gt;
&lt;script type="text/javascript" src="http://' . BABEL_DNS_NAME . '/js/ing/' . $User->usr_nick_url . '"&gt; &lt;/script&gt;</div>';
        echo '<h1>GBK <span class="tip_i">适用于使用 GBK | GB2312 | GB18030 编码的网站</span></h1>';
        echo '<div class="code">&lt;script type="text/javascript"&gt;
	babel_ing_prefix = "现在进行中:";
	babel_ing_color_prefix = "#999";
	babel_ing_color_time = "#999";
&lt;/script&gt;
&lt;script type="text/javascript" src="http://' . BABEL_DNS_NAME . '/js/ing/' . $User->usr_nick_url . '/gbk"&gt; &lt;/script&gt;</div>';
        echo '</div>';
        echo '</div>';
    }
Example #10
0
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
define('V2EX_BABEL', 1);
require_once 'core/AdminCore.php';
if (isset($_GET['m'])) {
    $m = fetch_single($_GET['m']);
    if ($m == '') {
        $m = 'home';
    }
} else {
    $m = 'home';
}
define('__PAGE__', $m);
$a =& new Admin();
switch ($m) {
    default:
    case 'home':
        $a->vxHome();
        break;
}
?>
Example #11
0
 public function vxDeleteProject()
 {
     if (isset($_GET['project_id'])) {
         $project_id = intval($_GET['project_id']);
         $Project = $this->vxIsExistProject($project_id);
         if ($Project) {
             if ($Project->zpr_uid == $this->User->usr_id) {
                 $sql = "DELETE FROM babel_zen_task WHERE zta_pid = {$project_id}";
                 mysql_unbuffered_query($sql, $this->db);
                 $sql = "DELETE FROM babel_zen_project WHERE zpr_id = {$project_id}";
                 mysql_query($sql, $this->db);
                 if (mysql_affected_rows($this->db) == 1) {
                     if (isset($_GET['area'])) {
                         $area = strtolower(fetch_single($_GET['area']));
                         if ($area == 'active') {
                             $o = $this->vxLoadProjectsActive();
                             echo $o;
                         } elseif ($area == 'done') {
                             $o = $this->vxLoadProjectsDone();
                             echo $o;
                         } else {
                             echo $this->r_failed;
                         }
                     } else {
                         echo $this->r_failed;
                     }
                 } else {
                     echo $this->r_failed;
                 }
             } else {
                 echo $this->r_failed;
             }
         } else {
             echo $this->r_failed;
         }
     } else {
         echo $this->r_failed;
     }
 }
 public function vxSendMoneyCheck()
 {
     $rt = array();
     $rt['errors'] = 0;
     $rt['who_value'] = '';
     $rt['who_object'] = null;
     $rt['who_error'] = 0;
     $rt['who_error_msg'] = array(1 => '你没有输入收款人的名字', 2 => '不能汇款给自己', 3 => '汇款人不存在');
     if (isset($_POST['who'])) {
         $rt['who_value'] = fetch_single($_POST['who']);
         if ($rt['who_value'] != '') {
             $sql = "SELECT usr_id, usr_nick, usr_email, usr_money FROM babel_user WHERE usr_nick = '" . mysql_real_escape_string($rt['who_value']) . "'";
             $rs = mysql_query($sql);
             if ($Object = mysql_fetch_object($rs)) {
                 if ($Object->usr_id != $this->User->usr_id) {
                     $rt['who_object'] = $Object;
                 } else {
                     $rt['errors']++;
                     $rt['who_error'] = 2;
                 }
             } else {
                 $rt['errors']++;
                 $rt['who_error'] = 3;
             }
             mysql_free_result($rs);
         } else {
             $rt['errors']++;
             $rt['who_error'] = 1;
         }
     } else {
         $rt['errors']++;
         $rt['who_error'] = 1;
     }
     $rt['amount_value'] = -1;
     $rt['amount_error'] = 0;
     $rt['amount_error_msg'] = array(1 => '你没有输入汇款数额', 2 => '每次汇款数额至少为 100 铜币', 3 => '汇款数额超出了你持有的铜币数量');
     if (isset($_POST['amount'])) {
         $rt['amount_value'] = abs(intval($_POST['amount']));
         if ($rt['amount_value'] != 0) {
             if ($rt['amount_value'] >= 100) {
                 $rate = Validator::vxSendMoneyRate($this->User->usr_created, $this->User->usr_money);
                 if ($rt['amount_value'] * (1 + $rate) > $this->User->usr_money) {
                     $rt['fee_value'] = 0;
                     $rt['errors']++;
                     $rt['amount_error'] = 3;
                 } else {
                     $rt['fee_value'] = $rt['amount_value'] * $rate;
                 }
             } else {
                 $rt['errors']++;
                 $rt['amount_error'] = 2;
             }
         } else {
             $rt['errors']++;
             $rt['amount_error'] = 1;
         }
     } else {
         $rt['errors']++;
         $rt['amount_error'] = 1;
     }
     $rt['confirm'] = 0;
     if (isset($_POST['confirm'])) {
         $confirm = intval($_POST['confirm']);
         if ($confirm == 1) {
             $rt['confirm'] = 1;
         }
     }
     return $rt;
 }