%PDF- %PDF-
Direktori : /home/jalalj2hb/www/ftm-admin/core/ |
Current File : /home/jalalj2hb/www/ftm-admin/core/function.php |
<?php function moyenne($user_id){ $db = new Model(); $permis=$db->executeQuery("SELECT * FROM `categorie` WHERE active=1"); $sum_c=0;$sum_c_c=0;$coun_r_total=0; foreach($permis as $p){ $coun_r=$db->executeQuery("SELECT count(*) as c FROM `sous_categories` sc,categories c WHERE sc.categorie_id=c.id_categorie AND c.cat=".$p->id_categorie." and sc.active=1 and c.active=1"); $coun_r=$coun_r[0]->c; $coun_r_total+=$coun_r; $sql="SELECT count(*) as c , (SELECT count( DISTINCT cr.sous_categorie_id) FROM sous_categories sc,candidat_reponses cr,categories c WHERE cr.sous_categorie_id=sc.id_sous_categorie AND sc.categorie_id=c.id_categorie AND c.cat=".$p->id_categorie." AND cr.user_id=$user_id) as c_c FROM `sous_categories` WHERE active=1 AND categorie_id in(SELECT id_categorie FROM `categories` WHERE active=1 AND cat =".$p->id_categorie.") "; $prog=$db->executeQuery($sql); $prog=@$prog[0]; if($prog->c_c){ $sum_c+=$prog->c; $sum_c_c+=$prog->c_c; } } return $sum_c_c."/".$coun_r_total; } function dateNow() { $tz_object = new DateTimeZone('Africa/Casablanca'); $datetime = new DateTime(); $datetime->setTimezone($tz_object); return $datetime->format('Y\-m\-d\ H:i:s'); } function name_of_date($date){ $text_date=ew_FormatDateTime($date,7); if($date==date("Y-m-d")){ $text_date="Aujourd'hui"; } $date_hier=date('Y-m-d', strtotime(date("Y-m-d"). ' - 1 day')); if($date==$date_hier){ $text_date="Hier"; } return $text_date; } function formatData($data,$format='json'){ /* output in necessary format */ if($format == 'json') { header('Content-type: application/json'); // ; charset=utf-8 header("Access-Control-Allow-Origin: *"); return json_encode(array('data'=>$data)); }else { $response = ''; header('Content-type: text/xml'); // ; charset=utf-8 header("Access-Control-Allow-Origin: *"); $response .= '<data>'; // print_r($data); foreach($data as $index => $data2) { if(is_array($data2)) { foreach($data2 as $key => $value) { $response .= '<'.$key.'>'; if(is_array($value)) { foreach($value as $tag => $val) { $response .= '<'.$tag.'>'.$val.'</'.$tag.'>'; } } else { $response .= $value; } $response .= '</'.$key.'>'; } } } $response .= '</data>'; } return $response; } function SendQuery($query) { $this->dbconnect(); $args = func_get_args(); $query = array_shift($args); $query = str_replace("?", "%s", $query); $args = array_map('mysql_real_escape_string', $args); array_unshift($args,$query); $query = call_proprietaire_func_array('sprintf',$args); $result = mysql_query($query) or die(mysql_error()); if($result){ return $result; }else{ $error = "Error"; return $result; } } function datediff($date1,$date2){ $dStart = new DateTime($date1); $dEnd = new DateTime($date2); $dDiff = $dStart->diff($dEnd ); $dDiff->format('%R'); $r=$dDiff->days; if(($date1=="")or($date2=="")){ $r=0; } return $r; } function wd_remove_accents($str, $charset='utf-8') { $str = htmlentities($str, ENT_NOQUOTES, $charset); $str = preg_replace('#&([A-za-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str); $str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. 'œ' $str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères return $str; } function supprimerDossier($dirName){ if(is_dir($dirName)){ $handle=opendir($dirName); while (false !== ($fichier = readdir($handle))) { if (($fichier != ".") && ($fichier != "..")) { unlink($dirName.$fichier); } } rmdir( $dirName ); } } function getValue($name){ $name=RemoveXSS($name); $db = new Model(); if(!empty($name)){ $value = false; if(!empty($_POST)){ $value = isset($_POST[$name]) ? (($_POST[$name])) : ''; } elseif (!empty($_GET)){ $value = isset($_GET[$name]) ? (($_GET[$name])) : ''; } /* $conf=conf::$database["default"]; $con=mysql_connect($conf['host'],$conf['login'],$conf['password']); $mysql_db=mysql_select_db($conf['database'],$con); $value = mysql_real_escape_string($value); */ return xss_clean(stripslashes($value)); }else{ return false; } } function xss_clean($data) { // Fix &entity\n; $data = str_replace(array('&','<','>'), array('&amp;','&lt;','&gt;'), $data); $data = preg_replace('/(&#*\w+)[\x00-\x20]+;/u', '$1;', $data); $data = preg_replace('/(&#x*[0-9A-F]+);*/iu', '$1;', $data); $data = html_entity_decode($data, ENT_COMPAT, 'UTF-8'); // Remove any attribute starting with "on" or xmlns $data = preg_replace('#(<[^>]+?[\x00-\x20"\'])(?:on|xmlns)[^>]*+>#iu', '$1>', $data); // Remove javascript: and vbscript: protocols $data = preg_replace('#([a-z]*)[\x00-\x20]*=[\x00-\x20]*([`\'"]*)[\x00-\x20]*j[\x00-\x20]*a[\x00-\x20]*v[\x00-\x20]*a[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iu', '$1=$2nojavascript...', $data); $data = preg_replace('#([a-z]*)[\x00-\x20]*=([\'"]*)[\x00-\x20]*v[\x00-\x20]*b[\x00-\x20]*s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:#iu', '$1=$2novbscript...', $data); $data = preg_replace('#([a-z]*)[\x00-\x20]*=([\'"]*)[\x00-\x20]*-moz-binding[\x00-\x20]*:#u', '$1=$2nomozbinding...', $data); // Only works in IE: <span style="width: expression(alert('Ping!'));"></span> $data = preg_replace('#(<[^>]+?)style[\x00-\x20]*=[\x00-\x20]*[`\'"]*.*?expression[\x00-\x20]*\([^>]*+>#i', '$1>', $data); $data = preg_replace('#(<[^>]+?)style[\x00-\x20]*=[\x00-\x20]*[`\'"]*.*?behaviour[\x00-\x20]*\([^>]*+>#i', '$1>', $data); $data = preg_replace('#(<[^>]+?)style[\x00-\x20]*=[\x00-\x20]*[`\'"]*.*?s[\x00-\x20]*c[\x00-\x20]*r[\x00-\x20]*i[\x00-\x20]*p[\x00-\x20]*t[\x00-\x20]*:*[^>]*+>#iu', '$1>', $data); // Remove namespaced elements (we do not need them) $data = preg_replace('#</*\w+:\w[^>]*+>#i', '', $data); do { // Remove really unwanted tags $old_data = $data; $data = preg_replace('#</*(?:applet|b(?:ase|gsound|link)|embed|frame(?:set)?|i(?:frame|layer)|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|title|xml)[^>]*+>#i', '', $data); } while ($old_data !== $data); // we are done... return $data; } function isSubmit($name){ return isset($_POST[$name]) ? true : false; } function GetChamp($ch_r,$cp,$vcp,$table){ $db = new Model(); $sql="SELECT $ch_r FROM $table WHERE $cp='$vcp' order by $ch_r desc LIMIT 0 , 1 "; $req=$db->executeQuery($sql); return empty($req)? '0' : $req[0]->$ch_r ; } function Login($login , $pass){ $db = new Model(); $session = new Session(); if($login==EW_ADMIN_USER_NAME AND $pass==EW_ADMIN_PASSWORD){ $user = (object)array( 'nom' => 'Administrateur', 'prenom' => 'Systeme', 'privileges_admin' => 1, 'matricule' => "_ADMIN_", 'email' => "contact@hc-ing.com", 'admin' => 1, 'nom' => "Administrateur", ); $session->write('user',$user); $_SESSION['EW_SESSION_SYS_ADMIN'] = 1; } else { $sql="SELECT * FROM ecoles WHERE email =? AND password=? "; $user=$db->executeLogin($sql, $login , $pass); if(is_array( $user ) and sizeof($user)){ $session->write('user',$user[0]); } else { $sql="SELECT * FROM moniteurs WHERE email =? AND password=? "; $user=$db->executeLogin($sql, $login , $pass); if(is_array( $user ) and sizeof($user)){ $ecole_id = $user[0]->ecole_id; $user =$db->executeQuery("select ecoles.* from ecoles,moniteurs where ecoles.id_ecole=$ecole_id"); $user[0]->is_monitore = 1; $session->write('user',$user[0]); // print_r($_SESSION['user']); // die(); } } return true ; } } function red_vers($url){ echo "<script type='text/javascript'>location.href='".$url."';</script>"; die(); } /*******************************************************************/ /* Donne l'âge à partir d'une date de naissance jj-mm/aaaa */ /*******************************************************************/ function Age($date_naissance) { $arr1 = explode('-', $date_naissance); $arr2 = explode('-', date('Y-m-d')); if(($arr1[1] < $arr2[1]) || (($arr1[1] == $arr2[1]) && ($arr1[2] <= $arr2[2]))) return $arr2[0] - $arr1[0]; return $arr2[0] - $arr1[0] - 1; } // Remove XSS : Securise les entrées données utilisateurs function RemoveXSS($val) { $EW_XSS_ARRAY = array('javascript', 'vbscript', 'expression', '<applet', '<meta', '<xml', '<blink', '<link', '<style', '<script', '<embed', '<object', '<iframe', '<frame', '<frameset', '<ilayer', '<layer', '<bgsound', '<title', '<base', 'onabort', 'onactivate', 'onafterprint', 'onafterupdate', 'onbeforeactivate', 'onbeforecopy', 'onbeforecut', 'onbeforedeactivate', 'onbeforeeditfocus', 'onbeforepaste', 'onbeforeprint', 'onbeforeunload', 'onbeforeupdate', 'onblur', 'onbounce', 'oncellchange', 'onchange', 'onclick', 'oncontextmenu', 'oncontrolselect', 'oncopy', 'oncut', 'ondataavailable', 'ondatasetchanged', 'ondatasetcomplete', 'ondblclick', 'ondeactivate', 'ondrag', 'ondragend', 'ondragenter', 'ondragleave', 'ondragover', 'ondragstart', 'ondrop', 'onerror', 'onerrorupdate', 'onfilterchange', 'onfinish', 'onfocus', 'onfocusin', 'onfocusout', 'onhelp', 'onkeydown', 'onkeypress', 'onkeyup', 'onlayoutcomplete', 'onload', 'onlosecapture', 'onmousedown', 'onmouseenter', 'onmouseleave', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onmousewheel', 'onmove', 'onmoveend', 'onmovestart', 'onpaste', 'onpropertychange', 'onreadystatechange', 'onreset', 'onresize', 'onresizeend', 'onresizestart', 'onrowenter', 'onrowexit', 'onrowsdelete', 'onrowsinserted', 'onscroll', 'onselect', 'onselectionchange', 'onselectstart', 'onstart', 'onstop', 'onsubmit', 'onunload'); // Remove all non-printable characters. CR(0a) and LF(0b) and TAB(9) are allowed // This prevents some character re-spacing such as <java\0script> // Note that you have to handle splits with \n, \r, and \t later since they *are* allowed in some inputs $val = preg_replace('/([\x00-\x08][\x0b-\x0c][\x0e-\x20])/', '', $val); // Straight replacements, the user should never need these since they're normal characters // This prevents like <IMG SRC=@avascript:alert('XSS')> $search = 'abcdefghijklmnopqrstuvwxyz'; $search .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $search .= '1234567890!@#$%^&*()'; $search .= '~`";:?+/={}[]-_|\'\\'; for ($i = 0; $i < strlen($search); $i++) { // ;? matches the ;, which is optional // 0{0,7} matches any padded zeros, which are optional and go up to 8 chars // @ @ search for the hex values $val = preg_replace('/(&#[x|X]0{0,8}'.dechex(ord($search[$i])).';?)/i', $search[$i], $val); // With a ; // @ @ 0{0,7} matches '0' zero to seven times $val = preg_replace('/(�{0,8}'.ord($search[$i]).';?)/', $search[$i], $val); // With a ; } // Now the only remaining whitespace attacks are \t, \n, and \r $ra = $EW_XSS_ARRAY; $found = true; // Keep replacing as long as the previous round replaced something while ($found == true) { $val_before = $val; for ($i = 0; $i < sizeof($ra); $i++) { $pattern = '/'; for ($j = 0; $j < strlen($ra[$i]); $j++) { if ($j > 0) { $pattern .= '('; $pattern .= '(&#[x|X]0{0,8}([9][a][b]);?)?'; $pattern .= '|(�{0,8}([9][10][13]);?)?'; $pattern .= ')?'; } $pattern .= $ra[$i][$j]; } $pattern .= '/i'; $replacement = substr($ra[$i], 0, 2).'<x>'.substr($ra[$i], 2); // Add in <> to nerf the tag $val = preg_replace($pattern, $replacement, $val); // Filter out the hex tags if ($val_before == $val) { // No replacements were made, so exit the loop $found = false; } } } return $val; } function getDateFormat($date){ if($date==""){ return false ; }else{ $date = str_replace('/', '-', $date); return date("Y-m-d", strtotime($date) ); } } //------------------------------------------------------------------------------- // Functions for default date format // FormatDateTime //Format a timestamp, datetime, date or time field from MySQL //$namedformat: //0 - General Date, //1 - Long Date, //2 - Short Date (Default), //3 - Long Time, //4 - Short Time (hh:mm:ss), //5 - Short Date (yyyy/mm/dd), //6 - Short Date (mm/dd/yyyy), //7 - Short Date (dd/mm/yyyy), //8 - Short Date (Default) + Short Time (if not 00:00:00) //9 - Short Date (yyyy/mm/dd) + Short Time (hh:mm:ss), //10 - Short Date (mm/dd/yyyy) + Short Time (hh:mm:ss), //11 - Short Date (dd/mm/yyyy) + Short Time (hh:mm:ss) function ew_FormatDateTime($ts, $namedformat) { $DefDateFormat = str_replace("yyyy", "%Y", EW_DEFAULT_DATE_FORMAT); $DefDateFormat = str_replace("mm", "%m", $DefDateFormat); $DefDateFormat = str_replace("dd", "%d", $DefDateFormat); if (is_numeric($ts)) // timestamp { switch (strlen($ts)) { case 14: $patt = '/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/'; break; case 12: $patt = '/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/'; break; case 10: $patt = '/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/'; break; case 8: $patt = '/(\d{4})(\d{2})(\d{2})/'; break; case 6: $patt = '/(\d{2})(\d{2})(\d{2})/'; break; case 4: $patt = '/(\d{2})(\d{2})/'; break; case 2: $patt = '/(\d{2})/'; break; default: return $ts; } if ((isset($patt))&&(preg_match($patt, $ts, $matches))) { $year = $matches[1]; $month = @$matches[2]; $day = @$matches[3]; $hour = @$matches[4]; $min = @$matches[5]; $sec = @$matches[6]; } if (($namedformat==0)&&(strlen($ts)<10)) $namedformat = 2; } elseif (is_string($ts)) { if (preg_match('/(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})/', $ts, $matches)) // datetime { $year = $matches[1]; $month = $matches[2]; $day = $matches[3]; $hour = $matches[4]; $min = $matches[5]; $sec = $matches[6]; } elseif (preg_match('/(\d{4})-(\d{2})-(\d{2})/', $ts, $matches)) // date { $year = $matches[1]; $month = $matches[2]; $day = $matches[3]; if ($namedformat==0) $namedformat = 2; } elseif (preg_match('/(^|\s)(\d{2}):(\d{2}):(\d{2})/', $ts, $matches)) // time { $hour = $matches[2]; $min = $matches[3]; $sec = $matches[4]; if (($namedformat==0)||($namedformat==1)) $namedformat = 3; if ($namedformat==2) $namedformat = 4; } else { return $ts; } } else { return $ts; } if (!isset($year)) $year = 0; // dummy value for times if (!isset($month)) $month = 1; if (!isset($day)) $day = 1; if (!isset($hour)) $hour = 0; if (!isset($min)) $min = 0; if (!isset($sec)) $sec = 0; $uts = @mktime($hour, $min, $sec, $month, $day, $year); if ($uts < 0 || $uts == FALSE || // failed to convert (intval($year) == 0 && intval($month) == 0 && intval($day) == 0)) { $year = substr_replace("0000", $year, -1 * strlen($year)); $month = substr_replace("00", $month, -1 * strlen($month)); $day = substr_replace("00", $day, -1 * strlen($day)); $hour = substr_replace("00", $hour, -1 * strlen($hour)); $min = substr_replace("00", $min, -1 * strlen($min)); $sec = substr_replace("00", $sec, -1 * strlen($sec)); $DefDateFormat = str_replace("yyyy", $year, EW_DEFAULT_DATE_FORMAT); $DefDateFormat = str_replace("mm", $month, $DefDateFormat); $DefDateFormat = str_replace("dd", $day, $DefDateFormat); switch ($namedformat) { case 0: return $DefDateFormat." $hour:$min:$sec"; break; case 1://unsupported, return general date return $DefDateFormat." $hour:$min:$sec"; break; case 2: return $DefDateFormat; break; case 3: if (intval($hour)==0) return "12:$min:$sec AM"; elseif (intval($hour)>0 && intval($hour)<12) return "$hour:$min:$sec AM"; elseif (intval($hour)==12) return "$hour:$min:$sec PM"; elseif (intval($hour)>12 && intval($hour)<=23) return (intval($hour)-12).":$min:$sec PM"; else return "$hour:$min:$sec"; break; case 4: return "$hour:$min:$sec"; break; case 5: return "$year". EW_DATE_SEPARATOR . "$month" . EW_DATE_SEPARATOR . "$day"; break; case 6: return "$month". EW_DATE_SEPARATOR ."$day" . EW_DATE_SEPARATOR . "$year"; break; case 7: return "$day" . EW_DATE_SEPARATOR ."$month" . EW_DATE_SEPARATOR . "$year"; break; case 8: return $DefDateFormat . (($hour == 0 && $min == 0 && $sec == 0) ? "" : " $hour:$min:$sec"); break; case 9: return "$year". EW_DATE_SEPARATOR . "$month" . EW_DATE_SEPARATOR . "$day $hour:$min:$sec"; break; case 10: return "$month". EW_DATE_SEPARATOR ."$day" . EW_DATE_SEPARATOR . "$year $hour:$min:$sec"; break; case 11: return "$day" . EW_DATE_SEPARATOR ."$month" . EW_DATE_SEPARATOR . "$year $hour:$min:$sec"; break; } } else { switch ($namedformat) { case 0: return strftime($DefDateFormat." %H:%M:%S", $uts); break; case 1: return strftime("%A, %B %d, %Y", $uts); break; case 2: return strftime($DefDateFormat, $uts); break; case 3: return strftime("%I:%M:%S %p", $uts); break; case 4: return strftime("%H:%M:%S", $uts); break; case 5: return strftime("%Y" . EW_DATE_SEPARATOR . "%m" . EW_DATE_SEPARATOR . "%d", $uts); break; case 6: return strftime("%m" . EW_DATE_SEPARATOR . "%d" . EW_DATE_SEPARATOR . "%Y", $uts); break; case 7: return strftime("%d" . EW_DATE_SEPARATOR . "%m" . EW_DATE_SEPARATOR . "%Y", $uts); break; case 8: return strftime($DefDateFormat . (($hour == 0 && $min == 0 && $sec == 0) ? "" : " %H:%M:%S"), $uts); break; case 9: return strftime("%Y" . EW_DATE_SEPARATOR . "%m" . EW_DATE_SEPARATOR . "%d %H:%M:%S", $uts); break; case 10: return strftime("%m" . EW_DATE_SEPARATOR . "%d" . EW_DATE_SEPARATOR . "%Y %H:%M:%S", $uts); break; case 11: return strftime("%d" . EW_DATE_SEPARATOR . "%m" . EW_DATE_SEPARATOR . "%Y %H:%M:%S", $uts); break; } } } // return les 5 derniers annés function getAnnee($val = NUll){ $last=date("Y")-10; for($i=$last;$i<=date("Y");$i++){ if($val==$i){ echo "<option value='".$i."' selected='selected'>".$i."</option>"; }else{ echo "<option value='".$i."' >".$i."</option>"; } } } function getMois($val = null){ for($i=1;$i<=12;$i++){ if($i==$val){ echo "<option value='".$i."' selected='selected'>".$i."</option>"; }else{ echo "<option value='".$i."'>".$i."</option>"; } //echo "<option value='".$i."'>".$i."</option>"; } } function upload_file($url_uploade,$name){ $fichier_attacher_name=""; $allowedExts = array("zip","rar","pdf","doc", "docx","xls","ppt","gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES[$name]["name"]); $fichier_attacher_name=$_FILES[$name]["name"]; $extension = end($temp); $fichier_attacher_name=wd_remove_accents($temp[0]).".".$extension; if (in_array($extension, $allowedExts)) { if ($_FILES[$name]["error"] == 0) { $fichier_attacher_name=wd_remove_accents($temp[0]).".".$extension; if (file_exists($url_uploade."/".$_FILES[$name]["name"])) { $rand=rand(0, 30000); $fichier_attacher_name=wd_remove_accents($temp[0])."_".$rand.".".$extension; move_uploaded_file($_FILES[$name]["tmp_name"], $url_uploade."/".$fichier_attacher_name); } else { move_uploaded_file($_FILES[$name]["tmp_name"], $url_uploade."/".$fichier_attacher_name); } } } else { $fichier_attacher_name=@$_POST['fichier_attacher_en']; } if(isset($_POST['a_fichier_attacher'])){ if($_POST['a_fichier_attacher']=="a_fichier_attacher_e"){ unlink($url_uploade."/".$_POST['fichier_attacher_en']); $fichier_attacher_name=""; } } return $fichier_attacher_name; } // NbJours("2000-10-20", "2000-10-21") retourne 2 function NbJours($debut, $fin) { $tDeb = explode("-", $debut); $tFin = explode("-", $fin); $diff = @mktime(0, 0, 0, $tFin[1], $tFin[2], $tFin[0]) - @mktime(0, 0, 0, $tDeb[1], $tDeb[2], $tDeb[0]); return(($diff / 86400)+1); } function addjour($debut, $nbjr=1) { $tDeb = explode("-", $debut); $newdate = @mktime(0, 0, 0, $tDeb[1], $tDeb[2], $tDeb[0]) + (60*60*24*$nbjr); return(date("m/d/Y",$newdate)); } ?>