Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // class Model
- // {
- define('MYSQL_SERVER', 'localhost');
- define('MYSQL_USER', 'boris2000_db');//boris2000_db
- define('MYSQL_PASSWORD', 'boris0013');
- define('MYSQL_DB','boris2000_db');
- function db_connect(){
- $link=mysqli_connect(MYSQL_SERVER,MYSQL_USER,MYSQL_PASSWORD,MYSQL_DB)
- or die("Error: ".mysqli_error($link));
- if(!mysqli_set_charset($link,'utf8')){
- printf("Error: ".mysqli_error($link));
- }
- return $link;
- }
- function parse_str1($str,&$arr) {
- if($str=="")return array();
- $t=explode("&", $str);
- foreach ($t as $value) {
- $x=explode("=", $value,2);
- $arr[$x[0]]=$x[1];
- }
- }
- $link=db_connect();
- header("Content-Type: text/html; charset=utf-8");
- function query($query){
- global $link;
- $result=mysqli_query($link, $query);
- //if($result->num_rows==0) return false;
- if(!$result) return false;
- return $result;
- }
- function get_post($name){
- if(array_key_exists($name,$_POST))
- return $_POST[$name];
- return false;
- }
- function exist_user($login, $password){
- if(query("SELECT login FROM members WHERE login='$login' and password='$password'")->num_rows!=0) return true;
- return false;
- }
- function delete_cookies(){
- foreach ( $_COOKIE as $key => $value )
- {
- if (isset($_COOKIE[$key])) {
- unset($_COOKIE[$key]);
- setcookie($key, '', time() - 3600, '/', $GLOBALS["host"]); // empty value and old timestamp
- }
- }
- }
- function enter_group(){
- }
- function get_cookie($name){
- if(array_key_exists($name,$_COOKIE)) return $_COOKIE[$name];
- return "";
- }
- function set_cookie($name,$value){
- setCookie($name, $value, time() + 3600*24*7, '/', $GLOBALS["host"]);
- }
- function user_groups(){
- $login=get_cookie("login");
- $query="SELECT groups FROM members WHERE login='$login'";
- $result=query($query)->fetch_row()[0];
- return explode(",", $result);
- }
- function user_access(){
- $login="1";
- $password="2";
- if(array_key_exists("login",$_COOKIE))
- $login= $_COOKIE["login"];
- if(array_key_exists("password",$_COOKIE))
- $password= $_COOKIE["password"];
- return exist_user($login,$password);
- // return true;
- // return $login!="login";
- }
- function get_members(){
- $group_name=get_cookie("group");
- $query="SELECT members FROM groups WHERE name='$group_name'";
- $result=query($query);
- $result=$result->fetch_row()[0];
- $result1 = explode(",", $result);
- //parse_str1($result, $arr_problems);
- // $res="";
- // foreach ($result1 as $value) {
- // $res=$res."&".$value."=".get_name($value);
- // }
- // $res = ltrim($res, '&');
- return $result1;
- }
- function get_member_data($login,$group_name){
- $query="SELECT members_data FROM groups WHERE name='$group_name'";
- $result=query($query);
- parse_str1($result->fetch_row()[0], $all_users);
- $user="";
- if(array_key_exists($login, $all_users))
- $user=$all_users[$login];
- $user=str_replace(":", "&",$user);
- parse_str1($user, $user_arr);
- return $user_arr;
- }
- function get_group_data($group_name,$data_name){
- $query="SELECT $data_name FROM groups WHERE name='$group_name'";
- $result=query($query);
- return $result->fetch_row()[0];
- }
- function set_group_data($group_name,$data_name,$data){
- $query="UPDATE groups SET $data_name = '$data' WHERE name = '$group_name'";
- $result=query($query);
- }
- function get_problems(){
- $group_name=get_cookie("group");
- $query="SELECT problems FROM groups WHERE name='$group_name'";
- $result=query($query);
- $all_problems=$result->fetch_row()[0];
- parse_str1($all_problems, $arr_problems);
- $problems=array();
- foreach ($arr_problems as $key => $value) {
- parse_str1(str_replace(":", "&",$value), $desc);
- $problems[$key]=$desc;
- }
- return $problems;
- }
- function create_problem($problem_name,$description,$solution,$responsibles,$login){
- $group_name=get_cookie("group");
- $data="description=".$description.":solution=".$solution.":responsibles=".$responsibles.":login=".$login;
- $query="SELECT problems FROM groups WHERE name='$group_name'";
- $result=query($query);
- $all_problems=$result->fetch_row()[0];
- $all_problems=$all_problems."&".$problem_name."=".$data.":time=".time();
- $all_problems = ltrim($all_problems, '&');
- $query="UPDATE groups SET problems = '$all_problems' WHERE name = '$group_name'";
- query($query);
- }
- function reset_data($group_name){
- $curr_time=time();
- //$interval=get_group_data($group_name,"reset_interval");
- $interval="604800";
- $reset_time=get_group_data($group_name,"next_reset");
- //if($interval=="")$interval="604800";
- $start_time=get_group_data($group_name,"start_time");
- if($start_time=="")$start_time=$curr_time;
- $members_data=get_group_data($group_name, "members_data");
- $transactions=get_group_data($group_name, "transactions");
- $members_data_storage=get_group_data($group_name,"members_data_storage");
- $transactions_storage=get_group_data($group_name,"transactions_storage");
- $members_data_storage=$members_data_storage."_new_interval_from=".$start_time."&to=".$curr_time."_time_".$members_data;
- $transactions_storage=$transactions_storage."_new_interval_from=".$start_time."&to=".$curr_time."_time_".$transactions;
- $members_data_storage = ltrim($members_data_storage, "_new_interval_");
- $transactions_storage = ltrim($transactions_storage, "_new_interval_");
- set_group_data($group_name,"members_data_storage",$members_data_storage);
- set_group_data($group_name,"transactions_storage",$transactions_storage);
- reset_members_data($group_name);
- set_group_data($group_name,"transactions","");
- //$interval=get_group_data($group_name,"reset_interval");
- set_group_data($group_name,"start_time",$reset_time);
- set_group_data($group_name,"next_reset",$reset_time+$interval);
- //echo "success";
- }
- function true_data($login, $password, $name){
- if(strlen($login)<5)return "Слишком короткий логин";
- if(strlen($password)<5)return "Слишком короткий пароль";
- if(strlen($name)<3)return "Слишком короткое имя";
- if(exist_user($login,$password))return "Вы уже зарегестрированы";
- return false;
- }
- function get_name($login){
- $query="SELECT name FROM members WHERE login='$login'";
- $result=query($query);
- $result = $result->fetch_row()[0];
- return $result;
- }
- function common_data(){
- $data=get_access_settings();
- $login=get_cookie("login");
- $data['user_name']=get_name($login);
- $d=get_member_data($login, get_cookie("group"));
- foreach ($d as $key => $value) {
- $data[$key]=$value;
- }
- return $data;
- }
- function reset_members_data($group_name){
- $members_data=get_group_data($group_name, "members_data");
- parse_str1($members_data, $users_data);
- $users_data2=[];
- foreach ($users_data as $key => $value) {
- $data=str_replace(":", "&",$value);
- parse_str1($data, $data1);
- $data1["problems"]="100";
- $data1["people"]="100";
- $datax=url_string($data1);
- $datax=str_replace("&", ":",$datax);
- $users_data2[$key]=$datax;
- }
- $result=url_string($users_data2);
- set_group_data($group_name,"members_data",$result);
- }
- function signup_user($login, $password, $name){
- $query = "INSERT INTO members (login, password, name) VALUES ('$login','$password','$name')";
- query($query);
- }
- function url_string($arr){
- $res="";
- foreach ($arr as $key => $value) {
- $res=$res.'&'.$key.'='.$value;
- }
- $res = ltrim($res, '&');
- return $res;
- }
- function check_reset($group_name){
- $next_reset=get_group_data($group_name,"next_reset");
- if($next_reset==""||$next_reset=="0"){
- set_group_data($group_name, "next_reset",strtotime('next sunday'));
- $next_reset=strtotime('next monday');
- }
- $start=get_group_data($group_name,"start_time");
- if($start=="0"||$start=="")set_group_data($group_name, "start_time",time());
- if(time()>$next_reset){
- reset_data($group_name);
- echo "reset";
- }
- }
- function set_member_data($login,$group_name,$data){
- $data=str_replace(":", "&",$data);
- parse_str1($data, $arr_data);
- $query="SELECT members_data FROM groups WHERE name='$group_name'";
- $result=query($query);
- parse_str1($result->fetch_row()[0], $all_users);
- $user_data=[];
- if (array_key_exists($login, $all_users))
- parse_str1(str_replace(":", "&", $all_users[$login]), $user_data);
- foreach ($arr_data as $key => $value) {
- $user_data[$key]=$value;
- }
- $s = http_build_query($user_data);
- $s = str_replace("&", ":",$s);
- $all_users[$login]=$s;
- //echo $s;
- $res = url_string($all_users);
- $query="UPDATE groups SET members_data = '$res' WHERE name = '$group_name'";
- query($query);
- }
- function add_member($login,$group_name){
- $query="SELECT name FROM groups WHERE name LIKE '%$group_name'";
- $result=query($query);
- if($result->num_rows==0){return false;}
- $group_name=$result->fetch_row()[0];
- $query="SELECT members FROM groups WHERE name='$group_name'";
- $result=query($query);
- if($result->num_rows==0){return false;}
- $query="SELECT groups FROM members WHERE login='$login'";
- $result1=query($query);
- if($result1->num_rows==0){return false;}
- $members = $result->fetch_row()[0];
- if(strpos($members, $login) !== false){return false;}
- $members=$members.",".$login;
- $members = ltrim($members, ',');
- $query="UPDATE groups SET members = '$members' WHERE name = '$group_name'";
- $result=query($query);
- $groups = $result1->fetch_row()[0];
- $groups=$groups.",".$group_name;
- $groups = ltrim($groups, ',');
- $query="UPDATE members SET groups = '$groups' WHERE login = '$login'";
- $result=query($query);
- set_member_data($login,$group_name,"people=100:problems=100");
- set_cookie("group",$group_name);
- return $group_name;
- }
- function join_member($group_name){
- $login=get_cookie("login");
- return add_member($login,$group_name);
- }
- function is_admin(){
- $group_name=get_cookie("group");
- $login=get_cookie("login");
- $query="SELECT admins FROM groups WHERE name='$group_name'";
- $result=query($query);
- $members = $result->fetch_row()[0];
- if(strpos($members, $login) !== false)return true;
- return false;
- }
- function new_admin($group_name,$password,$login){
- $query="SELECT name FROM groups WHERE name='$group_name' AND password='$password'";
- $result=query($query);
- if($result->num_rows==0){return false;}
- $query="SELECT admins FROM groups WHERE name='$group_name'";
- $result=query($query);
- $members = $result->fetch_row()[0];
- if(strpos($members, $login) !== false){return false;}//already admin
- $members=$members.",".$login;
- $members = ltrim($members, ',');
- $query="UPDATE groups SET admins = '$members' WHERE name = '$group_name'";
- $result=query($query);
- }
- function new_group($group_name,$password){
- $login=get_cookie("login");
- // echo "123";exit();
- $code=rand ( 10000000 , 99999999 );
- $query="SELECT name FROM groups WHERE name LIKE '%$code'";
- $result=query($query);
- while($result->num_rows!=0){
- $code=rand ( 10000000 , 99999999 );
- $query="SELECT name FROM groups WHERE name LIKE '%$code'";
- $result=query($query);
- }
- $group_name=$group_name."_split_".$code;
- $query = "INSERT INTO groups (name, password) VALUES ('$group_name','$password')";
- $result=query($query);
- check_reset($group_name);
- add_member($login,$code);
- new_admin($group_name,$password,$login);
- set_group_data($group_name,"access_settings","access_problems=on&access_people=on&access_problems_details=on&access_people_details=on");
- }
- function check_create_problem_data($problem_name,$description,$solution,$responsibles){
- //$pr=get_problems(get_cookie("group"));
- //if(strpos($pr, $problem_name) !== false)return "Проблема с таким названием уже существует";
- if(strlen($problem_name)<3)return "Слишком короткое название";
- if(strlen($description)<3)return "Должно быть описание";
- if(strlen($solution)<3)return "Введите решение";
- if(strlen($responsibles)<3)return "Нужно записать ответственных";
- return false;
- }
- function eval_problem(){
- $login=get_cookie("login");
- $problem=get_cookie("problem");
- $value=get_post("amount");
- $group_name=get_cookie("group");
- $user_data=get_member_data($login,$group_name);
- // parse_str1($member_data, $user_data);
- // echo $user_data["problems"];
- // exit();
- if($user_data["problems"]<$value)$value=$user_data["problems"];
- $user_data["problems"]=$user_data["problems"]-$value;
- $data = http_build_query($user_data);
- set_member_data($login, $group_name, $data);
- $query="SELECT problems_transactions FROM groups WHERE name='$group_name'";
- $result=query($query);
- $trans=$result->fetch_row()[0];
- $trans=$trans.",login=".$login."&problem=".$problem."&value=".$value."&time=".time();
- $trans = ltrim($trans, ',');
- $query="UPDATE groups SET problems_transactions = '$trans' WHERE name = '$group_name'";
- query($query);
- }
- function new_transaction(){
- $login_from=get_cookie("login");
- $login_to=get_cookie("person");
- $value=get_post("amount");
- $description=get_post("comment");
- $group_name=get_cookie("group");
- $user_data=get_member_data($login_from,$group_name);
- if($user_data["people"]<$value)$value=$user_data["people"];
- $user_data["people"]=$user_data["people"]-$value;
- $data = http_build_query($user_data);
- set_member_data($login_from, $group_name, $data);
- $trans=get_group_data($group_name,"transactions");
- $trans=$trans.",from=".$login_from."&to=".$login_to."&value=".$value."&comment=".$description."&time=".time();
- $trans = ltrim($trans, ',');
- $query="UPDATE groups SET transactions = '$trans' WHERE name = '$group_name'";
- query($query);
- }
- function get_people_statistic($mode=""){
- $group_name=get_cookie("group");
- // $mode=$_GET["mode"];
- $members=get_members($group_name);
- // parse_str1($members1, $members);
- $result="";
- if($mode==""){
- $result=get_group_data($group_name,"transactions");
- }else{
- $intervals=get_group_data($group_name,"transactions_storage");
- $variable=explode("_new_interval_",$intervals);
- foreach ($variable as $value) {
- $time=explode("_time_", $value);
- $t=[];
- parse_str1($time[0],$t);
- if (strpos($mode, $t["from"]) !== false){
- $result=$result.",".$time[1];
- }
- }
- }
- $result = ltrim($result, ',');
- $transactions = explode(",", $result);
- $humans=array();
- foreach ($members as $value) {
- $humans[$value]="0";
- }
- if($transactions[0]!="")
- foreach ($transactions as $trans) {
- parse_str1($trans, $one_transaction);
- $human=$one_transaction["to"];
- $humans[$human]=$humans[$human]+$one_transaction["value"];
- }
- arsort($humans);
- ///new code!!!!!!!!!!
- // $res= url_string($humans);
- $m= array_sum($humans);
- if($m=='0')$m=1;
- $res=array();
- foreach ($humans as $key => $value) {
- $item=array();
- $item["login"]=$key;
- $item["value"]=$value;
- $item["procent"]=round($value/$m*'100', 2);
- $item["name"]=get_name($key);
- array_push($res, $item);
- }
- return $res;
- }
- function get_transactions_to_member($member,$mode=""){
- $group_name=get_cookie("group");
- $login=$member;
- $result="";
- if($mode==""){
- $result=get_group_data($group_name,"transactions");
- }else{
- $intervals=get_group_data($group_name,"transactions_storage");
- $variable=explode("_new_interval_",$intervals);
- foreach ($variable as $value) {
- $time=explode("_time_", $value);
- $t=[];
- parse_str1($time[0],$t);
- if (strpos($mode, $t["from"]) !== false){
- $result=$result.",".$time[1];
- }
- }
- }
- $result = ltrim($result, ',');
- $transactions = explode(",", $result);
- $res=array();
- if($transactions[0]!="")
- foreach ($transactions as $trans) {
- parse_str1($trans, $tr);
- if($tr['to']==$login){
- $item=array();
- $item=$tr;
- $item["name"]=get_name($tr["from"]);
- array_push($res, $item);
- }
- }
- return $res;
- }
- function get_problem_data($problem,$mode=""){
- $group_name=get_cookie("group");
- $result="";
- if($mode=="deleted")$result=get_group_data($group_name,"problems_storage");
- else $result=get_group_data($group_name,"problems");
- parse_str1($result, $all_problems);
- $probem_data=$all_problems[$problem];
- $probem_data=str_replace(":", "&",$probem_data);
- parse_str1($probem_data, $probem_data1);
- return $probem_data1;
- }
- function get_problems_statistics($mode=""){
- $group_name=get_cookie("group");
- $result="";
- if($mode=="deleted")$result=get_group_data($group_name,"problems_transactions_storage");
- else $result=get_group_data($group_name,"problems_transactions");
- if($result!=""){
- $transactions = explode(",", $result);
- $problems=array();
- if($transactions[0]!="")
- foreach ($transactions as $trans) {
- parse_str1($trans, $one_transaction);
- $problem=$one_transaction["problem"];
- if (!array_key_exists($problem, $problems))$problems[$problem]="0";
- $problems[$problem]=$problems[$problem]+$one_transaction["value"];
- }
- $m= array_sum($problems);
- arsort($problems);
- $res = array();
- foreach ($problems as $key => $value) {
- $item=array();
- $item["login"]=$key;
- $item["value"]=$value;
- $item["procent"]=round($value/$m*'100', 2);
- $item["name"]=$key;
- array_push($res, $item);
- }
- return $res;
- }
- $res=array();
- return $res;
- }
- function get_transactions_to_problem($problem,$mode=""){
- $group_name=get_cookie("group");
- $login=$problem;
- $result="";
- if($mode!="")$result=get_group_data($group_name,"problems_transactions_storage");
- else $result=get_group_data($group_name,"problems_transactions");
- $transactions = explode(",", $result);
- $res=array();
- if($transactions[0]!="")
- foreach ($transactions as $trans) {
- parse_str1($trans, $tr);
- if($tr['problem']==$login){
- $item=array();
- $item["value"]=$tr["value"];
- $item["name"]=get_name($tr["login"]);
- $item["from"]=$tr["login"];
- $item["time"]=$tr["time"];
- $item["comment"]="";
- array_push($res, $item);
- }
- }
- return $res;
- }
- function set_access_settings($data){
- $group_name=get_cookie("group");
- set_group_data($group_name,"access_settings",$data);
- }
- function get_access_settings(){
- $group_name=get_cookie("group");
- $data=get_group_data($group_name,"access_settings");
- parse_str1($data, $res);
- if(is_admin()){
- foreach ($res as $key => $value) {
- $res[$key]="on";
- }
- }
- return $res;
- }
- function delete_problem($problem){
- $group_name=get_cookie("group");
- $problmes1=get_group_data($group_name,"problems");
- parse_str1($problmes1,$problems);
- $save_problems=get_group_data($group_name,"problems_storage");
- $save_problems=$save_problems."&".$problem."=".$problems[$problem];
- $save_problems = ltrim($save_problems, "&");
- set_group_data($group_name,"problems_storage",$save_problems);
- unset($problems[$problem]);
- set_group_data($group_name,"problems",url_string($problems));
- $transactions=get_group_data($group_name,"problems_transactions");
- $transactions=explode(",", $transactions);
- $save_transactions=get_group_data($group_name,"problems_transactions_storage");
- $remain_trans="";
- foreach ($transactions as $value) {
- parse_str1($value,$trans);
- if($trans["problem"]==$problem){
- $save_transactions=$save_transactions.",".$value;
- }
- else{
- $remain_trans=$remain_trans.",".$value;
- }
- }
- $save_transactions = ltrim($save_transactions, ",");
- set_group_data($group_name,"problems_transactions_storage",$save_transactions);
- $remain_trans = ltrim($remain_trans, ",");
- set_group_data($group_name,"problems_transactions",$remain_trans);
- }
- function get_person_actions($person){
- $login=$person;
- $group_name=get_cookie("group");
- $answer=array();
- $query="SELECT problems_transactions FROM groups WHERE name='$group_name'";
- $result=query($query);
- $problems_transactions=$result->fetch_row()[0];
- $problems_transactions = explode(",", $problems_transactions);
- foreach ($problems_transactions as $value){
- parse_str1($value, $data);
- if($data["login"]==$login){
- $data["type"]="eval_problem";
- array_push($answer, $data);
- }
- }
- $query="SELECT problems FROM groups WHERE name='$group_name'";
- $result=query($query);
- $problems1=$result->fetch_row()[0];
- parse_str1($problems1, $problems);
- foreach ($problems as $key => $value) {
- $data1=str_replace(":", "&",$value);
- parse_str1($data1, $data);
- if($data['login']==$login){
- $data["problem"]=$key;
- $data["type"]="create_problem";
- array_push($answer, $data);
- }
- }
- $query="SELECT transactions FROM groups WHERE name='$group_name'";
- $result=query($query);
- $transactions=$result->fetch_row()[0];
- $transactions = explode(",", $transactions);
- foreach ($transactions as $value){
- parse_str1($value, $data);
- if($data["to"]==$login AND $data["from"]==$login){
- $data["type"]="eval_myself";
- array_push($answer, $data);
- }
- else if($data["to"]==$login){
- $data["type"]="eval_me";
- array_push($answer, $data);
- }
- else if($data["from"]==$login){
- $data["type"]="eval_person";
- array_push($answer, $data);
- }
- }
- // foreach ($answer as $value) {
- // echo url_string($value);
- // echo " , ";
- // }
- return $answer;
- }
- function get_intervals(){
- $group_name=get_cookie("group");
- $intervals1=get_group_data($group_name,"transactions_storage");
- $intervals=explode("_new_interval_", $intervals1);
- $result=array();
- foreach ($intervals as $interval) {
- $time=explode("_time_", $interval)[0];
- parse_str1($time, $data);
- array_push($result, $data);
- }
- return $result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement