Server : Apache
System : Linux iZ2vcgyutqttsd1p850kl8Z 3.10.0-1160.92.1.el7.x86_64 #1 SMP Tue Jun 20 11:48:01 UTC 2023 x86_64
User : www ( 1000)
PHP Version : 5.6.40
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Directory :  /www/wwwroot/saimikebio.com/mobile/
Upload File :
Current Directory [ Writeable ] Root Directory [ Writeable ]


Current File : /www/wwwroot/saimikebio.com/mobile/comment.php
<?php



/**

 * ECSHOP 提交用户评论

 * ============================================================================

 * * 版权所有 2005-2012 上海商派网络科技有限公司,并保留所有权利。

 * 网站地址: http://www.ecshop.com;

 * ----------------------------------------------------------------------------

 * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和

 * 使用;不允许对程序代码以任何形式任何目的的再发布。

 * ============================================================================

 * $Author: liubo $

 * $Id: comment.php 17217 2011-01-19 06:29:08Z liubo $

*/



define('IN_ECTOUCH', true);



require(dirname(__FILE__) . '/include/init.php');

require(ROOT_PATH . 'include/cls_json.php');

if (!isset($_REQUEST['cmt']) && !isset($_REQUEST['act']))

{

    /* 只有在没有提交评论内容以及没有act的情况下才跳转 */

    ecs_header("Location: ./\n");

    exit;

}

$_REQUEST['cmt'] = isset($_REQUEST['cmt']) ? json_str_iconv($_REQUEST['cmt']) : '';



$json   = new JSON;

$result = array('error' => 0, 'message' => '', 'content' => '');



if (empty($_REQUEST['act']))

{

    /*

     * act 参数为空

     * 默认为添加评论内容

     */

    $cmt  = $json->decode($_REQUEST['cmt']);

    $cmt->page = 1;

    $cmt->id   = !empty($cmt->id)   ? intval($cmt->id) : 0;

    $cmt->type = !empty($cmt->type) ? intval($cmt->type) : 0;



    if (empty($cmt) || !isset($cmt->type) || !isset($cmt->id))

    {

        $result['error']   = 1;

        $result['message'] = $_LANG['invalid_comments'];

    }

    elseif (!is_email($cmt->email))

    {

        $result['error']   = 1;

        $result['message'] = $_LANG['error_email'];

    }

    else

    {

        if (false)

        {

            /* 检查验证码 */

            include_once('include/cls_captcha.php');



            $validator = new captcha();

            if (!$validator->check_word($cmt->captcha))

            {

                $result['error']   = 1;

                $result['message'] = $_LANG['invalid_captcha'];

            }

            else

            {

                $factor = intval($_CFG['comment_factor']);

                if ($cmt->type == 0 && $factor > 0)

                {

                    /* 只有商品才检查评论条件 */

                    switch ($factor)

                    {

                        case COMMENT_LOGIN :

                            if ($_SESSION['user_id'] == 0)

                            {

                                $result['error']   = 1;

                                $result['message'] = $_LANG['comment_login'];

                            }

                            break;



                        case COMMENT_CUSTOM :

                            if ($_SESSION['user_id'] > 0)

                            {

                                $sql = "SELECT o.order_id FROM " . $ecs->table('order_info') . " AS o ".

                                       " WHERE user_id = '" . $_SESSION['user_id'] . "'".

                                       " AND (o.order_status = '" . OS_CONFIRMED . "' or o.order_status = '" . OS_SPLITED . "') ".

                                       " AND (o.pay_status = '" . PS_PAYED . "' OR o.pay_status = '" . PS_PAYING . "') ".

                                       " AND (o.shipping_status = '" . SS_SHIPPED . "' OR o.shipping_status = '" . SS_RECEIVED . "') ".

                                       " LIMIT 1";





                                 $tmp = $db->getOne($sql);

                                 if (empty($tmp))

                                 {

                                    $result['error']   = 1;

                                    $result['message'] = $_LANG['comment_custom'];

                                 }

                            }

                            else

                            {

                                $result['error'] = 1;

                                $result['message'] = $_LANG['comment_custom'];

                            }

                            break;

                        case COMMENT_BOUGHT :

                            if ($_SESSION['user_id'] > 0)

                            {

                                $sql = "SELECT o.order_id".

                                       " FROM " . $ecs->table('order_info'). " AS o, ".

                                       $ecs->table('order_goods') . " AS og ".

                                       " WHERE o.order_id = og.order_id".

                                       " AND o.user_id = '" . $_SESSION['user_id'] . "'".

                                       " AND og.goods_id = '" . $cmt->id . "'".

                                       " AND (o.order_status = '" . OS_CONFIRMED . "' or o.order_status = '" . OS_SPLITED . "') ".

                                       " AND (o.pay_status = '" . PS_PAYED . "' OR o.pay_status = '" . PS_PAYING . "') ".

                                       " AND (o.shipping_status = '" . SS_SHIPPED . "' OR o.shipping_status = '" . SS_RECEIVED . "') ".

                                       " LIMIT 1";

                                 $tmp = $db->getOne($sql);

                                 if (empty($tmp))

                                 {

                                    $result['error']   = 1;

                                    $result['message'] = $_LANG['comment_brought'];

                                 }

                            }

                            else

                            {

                                $result['error']   = 1;

                                $result['message'] = $_LANG['comment_brought'];

                            }

                    }

                }



                /* 无错误就保存留言 */

                if (empty($result['error']))

                {

                    add_comment($cmt);

                }

            }

        }

        else

        {

            /* 没有验证码时,用时间来限制机器人发帖或恶意发评论 */

            if (!isset($_SESSION['send_time']))

            {

                $_SESSION['send_time'] = 0;

            }



            $cur_time = gmtime();

            if (($cur_time - $_SESSION['send_time']) < 30) // 小于30秒禁止发评论

            {

                $result['error']   = 1;

                $result['message'] = $_LANG['cmt_spam_warning'];

            }

            else

            {

                $factor = intval($_CFG['comment_factor']);

                if ($cmt->type == 0 && $factor > 0)

                {

                    /* 只有商品才检查评论条件 */

                    switch ($factor)

                    {

                        case COMMENT_LOGIN :

                            if ($_SESSION['user_id'] == 0)

                            {

                                $result['error']   = 1;

                                $result['message'] = $_LANG['comment_login'];

                            }

                            break;



                        case COMMENT_CUSTOM :

                            if ($_SESSION['user_id'] > 0)

                            {

                                $sql = "SELECT o.order_id FROM " . $ecs->table('order_info') . " AS o ".

                                       " WHERE user_id = '" . $_SESSION['user_id'] . "'".

                                       " AND (o.order_status = '" . OS_CONFIRMED . "' or o.order_status = '" . OS_SPLITED . "') ".

                                       " AND (o.pay_status = '" . PS_PAYED . "' OR o.pay_status = '" . PS_PAYING . "') ".

                                       " AND (o.shipping_status = '" . SS_SHIPPED . "' OR o.shipping_status = '" . SS_RECEIVED . "') ".

                                       " LIMIT 1";





                                 $tmp = $db->getOne($sql);

                                 if (empty($tmp))

                                 {

                                    $result['error']   = 1;

                                    $result['message'] = $_LANG['comment_custom'];

                                 }

                            }

                            else

                            {

                                $result['error'] = 1;

                                $result['message'] = $_LANG['comment_custom'];

                            }

                            break;



                        case COMMENT_BOUGHT :

                            if ($_SESSION['user_id'] > 0)

                            {

                                $sql = "SELECT o.order_id".

                                       " FROM " . $ecs->table('order_info'). " AS o, ".

                                       $ecs->table('order_goods') . " AS og ".

                                       " WHERE o.order_id = og.order_id".

                                       " AND o.user_id = '" . $_SESSION['user_id'] . "'".

                                       " AND og.goods_id = '" . $cmt->id . "'".

                                       " AND (o.order_status = '" . OS_CONFIRMED . "' or o.order_status = '" . OS_SPLITED . "') ".

                                       " AND (o.pay_status = '" . PS_PAYED . "' OR o.pay_status = '" . PS_PAYING . "') ".

                                       " AND (o.shipping_status = '" . SS_SHIPPED . "' OR o.shipping_status = '" . SS_RECEIVED . "') ".

                                       " LIMIT 1";

                                 $tmp = $db->getOne($sql);

                                 if (empty($tmp))

                                 {

                                    $result['error']   = 1;

                                    $result['message'] = $_LANG['comment_brought'];

                                 }

                            }

                            else

                            {

                                $result['error']   = 1;

                                $result['message'] = $_LANG['comment_brought'];

                            }

                    }

                }

                /* 无错误就保存留言 */

                if (empty($result['error']))

                {

                    add_comment($cmt);

                    $_SESSION['send_time'] = $cur_time;

                }

            }

        }

    }

}

else

{

    /*

     * act 参数不为空

     * 默认为评论内容列表

     * 根据 _GET 创建一个静态对象

     */

    $cmt = new stdClass();

    $cmt->id   = !empty($_GET['id'])   ? intval($_GET['id'])   : 0;

    $cmt->type = !empty($_GET['type']) ? intval($_GET['type']) : 0;

    $cmt->page = isset($_GET['page'])   && intval($_GET['page'])  > 0 ? intval($_GET['page'])  : 1;

}



if ($result['error'] == 0)

{

    $comments = assign_comment($cmt->id, $cmt->type, $cmt->page);



    $smarty->assign('comment_type', $cmt->type);

    $smarty->assign('id',           $cmt->id);

    $smarty->assign('username',     $_SESSION['user_name']);

    $smarty->assign('email',        $_SESSION['email']);

    $smarty->assign('comments',     $comments['comments']);

    $smarty->assign('pager',        $comments['pager']);



    /* 验证码相关设置 */

    if ((intval($_CFG['captcha']) & CAPTCHA_COMMENT) && gd_version() > 0)

    {

        $smarty->assign('enabled_captcha', 1);

        $smarty->assign('rand', mt_rand());

    }



    $result['message'] = $_CFG['comment_check'] ? $_LANG['cmt_submit_wait'] : $_LANG['cmt_submit_done'];

    $result['content'] = $smarty->fetch("library/comments_list.lbi");

}



echo $json->encode($result);



/*------------------------------------------------------ */

//-- PRIVATE FUNCTION

/*------------------------------------------------------ */



/**

 * 添加评论内容

 *

 * @access  public

 * @param   object  $cmt

 * @return  void

 */

function add_comment($cmt)

{

    /* 评论是否需要审核 */

    $status = 1 - $GLOBALS['_CFG']['comment_check'];



    $user_id = empty($_SESSION['user_id']) ? 0 : $_SESSION['user_id'];

    $email = empty($cmt->email) ? $_SESSION['email'] : trim($cmt->email);

    $user_name = empty($cmt->username) ? $_SESSION['user_name'] : '';

    $email = htmlspecialchars($email);

    $user_name = htmlspecialchars($user_name);



    /* 保存评论内容 */

    $sql = "INSERT INTO " .$GLOBALS['ecs']->table('comment') .

           "(comment_type, id_value, email, user_name, content, comment_rank, add_time, ip_address, status, parent_id, user_id) VALUES " .

           "('" .$cmt->type. "', '" .$cmt->id. "', '$email', '$user_name', '" .$cmt->content."', '".$cmt->rank."', ".gmtime().", '".real_ip()."', '$status', '0', '$user_id')";



    $result = $GLOBALS['db']->query($sql);

    clear_cache_files('comments_list.lbi');

    /*if ($status > 0)

    {

        add_feed($GLOBALS['db']->insert_id(), COMMENT_GOODS);

    }*/

    return $result;

}



?>