php showsource,showsource.php

$cache_time=10;

$OJ_CACHE_SHARE=false;

require_once("config/path_config.php");

require_once('./include/cache_start.php');

require_once('./include/db_info.inc.php');

require_once('./include/my_func.inc.php');

require_once('./include/setlang.php');

require_once("./include/const.inc.php");

require_once("./config/privliege_config.php");

$view_title= "题库-程序源码";

if (!isset($_GET['id'])){

$view_errors= "未查询到源码!\n";

require("template/bs3/error.php");

exit(0);

}

// 查询指定ID的提交记录

$id = intval($_GET['id']);

$sql="SELECT * FROM `solution` WHERE `solution_id`=?";

$result = pdo_query($sql, $id);

$row = null;

if ( $result ) {

$row = $result[0];

}

if ( $row == null ) {

$view_errors= "未查询到源码!\n";

require("template/bs3/error.php");

exit(0);

}

// 代码提交信息

$slanguage=$row['language'];

$sresult=$row['result'];

$stime=$row['time'];

$smemory=$row['memory'];

$sproblem_id=$row['problem_id'];

$view_user_id= $suser_id= $row['user_id'];

$contest_id=$row['contest_id'];

// 权限判断

$isAllowViewSource = false;

// 1. 用户已登录,并且提交代码的用户即为当前登录用户

$sessionUserId = "";

if ( isset($_SESSION['user_id']) ) {

$sessionUserId = strtolower($_SESSION['user_id']);

$sourceUserId = strtolower($row['user_id']);

$isAllowViewSource |= ($sessionUserId == $sourceUserId);

}

// 2. 用户已登录,并且AC过本题

if ( ! $isAllowViewSource && isset($_SESSION['viewcode_after_ac']) ) {

$isAllowViewSource |= check_ac_problem($sproblem_id);

}

// 3. 用户已登录,并且具备查看代码的权限

if ( ! $isAllowViewSource ) {

$isAllowViewSource = isset($_SESSION['user_id']) && isset($_SESSION['viewcode_no_ac']);

}

// 4. 用户是管理员

if (! $isAllowViewSource ) {

$isAllowViewSource = isset($_SESSION['administrator']) && $_SESSION['administrator'];

}

// 5. 用户是教师

if (! $isAllowViewSource ) {

$isAllowViewSource = isset($_SESSION['teacher']) && $_SESSION['teacher'];

}

// 6. 用户是学生父母

if (! $isAllowViewSource ) {

$isAllowViewSource = isset($_SESSION['parent']) && $_SESSION['parent'];

}

// 6. 用户是学生父母

if (! $isAllowViewSource ) {

$isAllowViewSource = isset($_SESSION['parent']) && $_SESSION['parent'];

}

if ( !$isAllowViewSource ) {

$view_errors= "你不具备查看该内容的权限";

require("template/bs3/error.php");

exit(0);

}

// 是否允许编辑, teacher, administrator允许编辑自己提交的代码

$isAllowEdit = isset($_SESSION['teacher']) && $_SESSION['teacher'];

$isAllowEdit |= isset($_SESSION['administrator']) || $_SESSION['administrator'];

if ( $isAllowEdit ) {

$sessionUserId = strtolower($_SESSION['user_id']);

$sourceUserId = strtolower($row['user_id']);

$isAllowEdit = ($sessionUserId == $sourceUserId);

}

// 查询题目信息

$sql = "select `title`, `defunct`, `description` from problem where problem_id=?";

$result=pdo_query($sql, $sproblem_id);

$row = null;

if ( $result ) {

$row=$result[0];

}

if ( $row == null ) {

$view_errors= "

题目不存在

";

require("template/bs3/error.php");

exit(0);

}

$is_problem_valid = false;

if( $row ) {

$view_p_title=$row['title'];

$view_p_desc=$row['description'];

$is_problem_valid = $row['defunct']=='N';

}

// 非管理员无权查看未启用的题目

$isAdmin = isset($_SESSION['administrator']);

if ( ! $isAdmin && !$is_problem_valid ) {

$view_errors= "

你不具备查看该内容的权限

";

require("template/".$OJ_TEMPLATE."/error.php");

exit(0);

}

if ( $isAllowViewSource ) {

// 查询指定提交ID对应的源代码

$sql="SELECT `source` FROM `source_code_user` WHERE `solution_id`=?";

$result=pdo_query($sql, $id);

$row = null;

if ( $result ) {

$row=$result[0];

}

if( $row ) {

$view_source=$row['source'];

}

}

/Template

require("template/bs3/showsource.php");

/Common foot

if(file_exists('./include/cache_end.php'))

require_once('./include/cache_end.php');

?>

一键复制

编辑

Web IDE

原始数据

按行查看

历史

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值