'.$_menu['text'].' '; $i++; } } //-------------------------------------------------------- //Verification de l'existence de caractere spéciaux dans la chaine function fct_verifie_carac_spec($chaine) { if( (preg_match_all("/([^a-zA-Z0-9_\@\.\-])/i", $chaine, $trouve)) || $chaine=='') return true ; else return false; } //------------------------------------------------------- //Verification d'un chaine numérique function fct_verifie_num($chaine) { $chaine=trim($chaine); if(!empty($chaine)) { if(ereg("^[0-9\.]+$", $chaine)) return true; else return false; } else return false; } //------------------------------------------------------- //Fonction qui verifie qu'une chaine est alphabetique, autorisant l'apostrohe function fct_verifie_alphabet($chaine) { $chaine=stripslashes($chaine); $chaine=ereg_replace("'","",$chaine);//Enleve les apostrohes $chaine=ereg_replace(" ","",$chaine);//Enleve les espaces // "/([^ïöüäëéèùôîûêâàa-zA-Z_\@\.\-])/i" if( (preg_match_all("/([^ïöüäëéèùôîûêâàa-zA-Z_\-])/i", $chaine, $trouve)) || $chaine=='') return true ; else return false; } //------------------------------------------------------- //Fonction qui verifie une chaine alphabétique acceptant le chiffre et uniquement l'apostrophe function fct_verifie_text2($chaine) { if(preg_match_all("#[^\w\s\'\@\.\ïöüäëéèùôîûêâàa]#", $chaine, $trouve) || $chaine=='') return true ; else return false; } //------------------------------------------------------- //Fonction qui mets les champs mal renseignés en rouge function fct_label_rouge($tab=array(),$champ,$label) { foreach ($tab as $t) { if($t==$champ) return "$label"; } return $label; } //-------------------------------------------------------------------- //Verification de l'existence d'une url function fct_verifie_url($adresse) { if(substr_count($adresse,"http://") > 0){ $port=80; $adresse=eregi_replace("http://", "", $adresse); } if(substr_count($adresse,"https://") > 0){ $port=443; $adresse=eregi_replace("https://", "", $adresse); } $url = fsockopen($adresse, $port); if(!$url) return false; else fclose($url); return true; } //------------------------------------------------------- //Verification de la validité d'une date function fct_verifie_date($j,$m,$a) { $j=(int)$j; $m=(int)$m; $a=(int)$a; //si le jour n'est pas entre 1 et 31 inclus if (($j > 31) || ($j == 0)){ return FALSE;} //si le mois n'est pas entre 1 et 12 inclus if (($m > 12) || ($m == 0)){ return FALSE;} //si pour le mois de février, avril, juin, septembre et novembre, le jour est 31 if (in_array($m, array(2, 4, 6, 9, 11)) && ($j == 31)){ return FALSE;} //Si pour le mois de Fevrier, le jour est 30 if (($m == 2) && ($j == 30)){ return FALSE;} /*echo "*/ //Si pour l'année choisi fevrier est bissextile... if (!date("L", mktime(0, 0, 0, 1, 1, $a)) && ($j == 29) && ($m==2)){ echo "annee bisex
"; return FALSE;} return TRUE; } function fct_verifie_date2($j,$m,$a){ $j=(int)$j; $m=(int)$m; $a=(int)$a; if(checkdate($m,$j,$a)){ $retour=TRUE; }else{ $retour=FALSE; } return $retour; } //------------------------------------------------------- //Verification de la validité d'une heure function fct_verifie_heure($h,$m) { $h=(int)$h; $m=(int)$m; if(($h > 23) || ($h < 0)) return false; if(($m > 59) || ($m < 0)) return false; return true; } //------------------------------------------------------- //Verification de l'égalité entre deux champs function fct_verifie_egalite($chaine1,$chaine2) { /*echo "";*/ //echo $chaine1." --- ".$chaine2."
"; if((trim($chaine1)=='') || (trim($chaine2)=='')) return false; if(strcmp($chaine1,$chaine2)==0) { //echo "egalite"; return true; } else { //echo "pas egalite"; return false; } } //------------------------------------------------------- //Fonction qui affiche un message correspondant à un id function fct_affiche_message($id_message) { echo ${'msg_err_'.$id_message}; } //------------------------------------------------------- //Fonction de verification d'un email function fct_verifie_email($email) { //Mise en miniscule de ts les caracteres $email = strtolower($email); if (strlen($email) < 6){ return (-1);}//$email : Email trop court if (strlen($email) > 255) {return (-2);}//$email : Email trop long if (!ereg("@", $email)){ return (-3);}//$email : Le email n'a pas d'arobase (@) //Recherche ts les caracteres spéciaux ds la chaine $email, et les mets ds le tableau numérique $trouve if (fct_verifie_carac_spec($email)) { return (-4);//"$email : caractère(s) interdit dans un email(".implode(", ", $trouve[0]).")."; } if (!preg_match("/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$/i", $email)) { return (-5);//"$email : ce n'est pas un la forme d'un email."; } /* list($compte, $domaine)=split("@", $email, 2); if (!checkdnsrr($domaine, "MX")){ return (-6);//"$email : Ce domaine ($domaine) n'accepte pas les emails"; }*/ return 0; } //------------------------------------------------------- //Fonction qui verifie si un choix s'est fait ds une liste deroulante function fct_verifie_selection($selected) { if($selected=="") return false; else return true; } //------------------------------------------------------------------- //Function qui vérifie si un choix d'un bouton radio a été fait function fct_verifie_radio($coche) { if(empty($coche)) return false; else return true; } //------------------------------------------------------------------- //Formatage monétaire en fonction de la langue (pays) function fct_format_money($valeur , $pays,$etat=0,$decimale=2){ $valeur = doubleval($valeur); //explication des colonne de const: // 1: caractere des décimales // 2: caractere ente chaque millier // 3: caractere devant le montant // 4: Symbole de la monnaie $const = array(); $const['admin'] = array(', ', ' ', '', ''); $const['fr'] = array(', ', ' ', '', ' FCFA'); //$const['de'] = array(', ', '.', '', ' DM'); $const['de'] = array(', ', '.', '', ' €'); $const['au'] = array('.', ', ', '$ ', ''); $const['as'] = array(', ', '.', '', ' ÖS'); $const['be'] = array(', ', '.', 'BF ', ''); $const['br'] = array(', ', '.', '$ ', ''); $const['ca_fr'] = array(', ', ' ', '', ' $'); $const['ca_en'] = array(', ', ' ', '$ ', ''); $const['nz'] = array(', ', ' ', '$ ', ''); $const['pt'] = array(', ', ' ', '' , ' Esc.'); $const['dk'] = array(', ', '.', 'kr. ', ''); $const['es'] = array(', ', '.', '', 'Pts'); $const['hu'] = array(', ', ' ', '', ' Ft'); $const['fi'] = array(', ', ' ', '', ' mk'); $const['uk'] = array('.', ', ', 'L ', ''); $const['it'] = array(', ', '.', 'L. ', ''); $const['no'] = array(', ', ' ', '', ' kr'); $const['nl'] = array(', ', '.', 'Fl. ', ''); $const['se'] = array(', ', ' ', '', ' kr'); $const['ch'] = array('.', '\'', 'Fr ', ''); $const['us'] = array('.', ', ', '$ ', ''); $const['en'] = array(',', '.', '', ' euro'); if($etat==1) { $valeur =($valeur/655.5); } //Indique si une valeur de langue appartient au tableau : par défaut 'fr' if (!in_array($pays, array_keys($const))){ $pays = 'fr'; } list($dec, $mil, $monp, $symb) = $const[$pays]; return $monp.number_format($valeur,$decimale, $dec, $mil).$symb; } //------------------------------------------------------- //Fonction qui retourne le nombre de visiteurs connectés function fct_nb_connecte($time, $filename="visiteur.dat") { // $time est le temps en seconde à partir duquel on considère que // le visiteur n'est plus connecté // $filename est le nom du fichier créé pour stocker les informations //$ip = getenv("REMOTE_ADDR"); $ip=fct_obtenir_adresse(); $date=time(); $i=0; $ii=0; $bool=0; if(file_exists($filename)) { if($fichier=fopen($filename, "r")) { while(!feof($fichier)) { $ligne=fgets($fichier, 4096); $tab=explode("->", $ligne); if($tab[1]>0) { $tab_de_tab[$i][0]=$tab[0]; $tab_de_tab[$i][1]=$tab[1]; $i++; } } fclose($fichier); } } for($j=0;$j<$i;$j++) { if(($date-chop($tab_de_tab[$j][1]))>$time) { //on ne fait rien } else { $tab_de_tab_actualise[$ii][0]=$tab_de_tab[$j][0]; $tab_de_tab_actualise[$ii][1]=chop($tab_de_tab[$j][1]); $ii++; } } for($j=0;$j<$ii;$j++) { if($tab_de_tab_actualise[$j][0]==$ip) { $bool=1; } } if($bool==0) { $tab_de_tab_actualise[$ii][0]=$ip; $tab_de_tab_actualise[$ii][1]=$date; $ii++; } if($fichier=fopen($filename, "w")) { for($j=0;$j<$ii;$j++) { fputs($fichier, chop($tab_de_tab_actualise[$j][0])); fputs($fichier, "->"); fputs($fichier, chop($tab_de_tab_actualise[$j][1])); fputs($fichier, "\n"); } fclose($fichier); } return $ii+171; } //------------------------------------------------------- //Fonction qui enregistre l'adresse ip pour bannir l'acces à nos sites function fct_obtenir_adresse($type=0) { if (getenv('HTTP_X_FORWARDED_FOR')) { $ip = getenv('HTTP_X_FORWARD_FOR'); if ($type == 0) return $ip; else return gethostbyaddr($ip); } else { $ip = getenv('REMOTE_ADDR'); if ($type == 0) return $ip; else return gethostbyaddr($ip); } } //------------------------------------------------------- //Fonction pour obtenir l'adresse MAC à partir de l'adresse ip au format "93.125.24.23" function fct_get_Mac_Address($ip) { $buffer = ""; system("ping " . $ip); //system("arp -a > arp.dat"); $fileHandle = fopen ("arp.dat", "r"); while (!feof($fileHandle)) { $buffer = $buffer . fgets($fileHandle, 4096); } fclose ($fileHandle); $ip_mac = strstr($buffer, $ip); if($ip_mac){ $mac = substr($ip_mac, 22, 17); return strtolower(ltrim($mac)); } return false; } //------------------------------------------------------- //Fonction qui fait une liste déroulante de valeurs numériques de $min à $max par pas de $pas function fct_list_deroul_num($min,$max,$pas,$select='') { $ret=''; for($i=$min;$i<=$max;$i+=$pas) { $ret.="" ."" ."" ."" ."" ."" ."" ."" ."" ."" .""; return $ret; } //--------------------------------------------------------- //Fonction qui fait une liste déroulante des civilités ou des mois stockées dans un tableau function fct_list_deroul_tab($tab,$id=0,$select='') { $ret=''; for($i=$id; $i'; //$ret.=''; } return $ret; } //--------------------------------------------------------- //Fonction qui remplace la premier occurence d'une sous chaine dans une chaine function fct_str_replace($s_chaine , $remplace , $chaine) { $pos = strpos($chaine, $s_chaine); if ($pos === false) { return $chaine; } return substr_replace($chaine, $remplace , $pos, strlen($s_chaine)); } //--------------------------------------------------------- //Fonction qui modifie le titre de la fenetre en fonction de la page inclue dans l'index function fct_titre($page=0) { global $CPE,$TITRE; return $CPE." - ".$TITRE[$page]; } //----------------------------------------------------------- //Fonction qui retourne le jour le mois et l'année en cours function fct_date_du_jour($type=0) { global $MOIS, $JOUR,$LANG; if($type==0) { switch ($LANG) { case 'fr'://return Lundi 01 Janvier 2005 return $JOUR[date('w')-1]." ".date('j')." ".$MOIS[date('n')]." ".date('Y'); case 'en': switch(date('j')) { case 1: $jour="1st"; break; case 2: $jour="2nd"; break; case 3: $jour="3rd"; break; default: $jour=date('j')."th"; break; } return $JOUR[date('w')-1].", ".$MOIS[date('n')-1]." ".$jour." ".date('Y'); case 'de': return $JOUR[date('w')-1]." ".date('j').". ".$MOIS[date('n')-1]." ".date('Y'); } } else { return date("w/d/n/Y H:i:s"); } } //--------------------------------------------------------------- /** * Function qui retourne les parametres d'une date ds un tableau * @param :$date * return Tableau */ function fct_date_tab($date) { $_date=explode(" ",$date); if(count($_date[0])==4) list($tab_date['nj'],$tab_date['j'],$tab_date['m'],$tab_date['a'])=explode('/',$_date[0]); else list($tab_date['j'],$tab_date['m'],$tab_date['a'])=explode('/',$_date[0]); list($tab_date['h'],$tab_date['mn'],$tab_date['s'])=explode(':',$_date[1]); return $tab_date; } //--------------------------------------------------------------- /** * Function qui retourne un parametre de date * @param $type:char-> de parametre voulu: jour de semeine, N° du mois... * @param $date:string->la date à traiter * return la valeur du type */ function fct_param_date($type,$date) { $tab_date=fct_date_tab($date); $ret=date($type,mktime($tab_date['h'],$tab_date['mn'],$tab_date['s'],$tab_date['m'],$tab_date['j'],$tab_date['a'])); return $ret; } //-------------------------------------------------------------- //Function qui formatte l'affichege d'une date passée en parametre function fct_format_date($date,$lang) { global $MOIS, $JOUR; list($_dat,$heure)=explode(" ",$date); list($nj,$j,$m,$a)=explode("/",$_dat); $j=(int)$j; $m=(int)$m; list($h,$mn,$s)=explode(":",$heure); //mktime ( int hour, int minute, int second, int month, int day, int year [, int is_dst]) if($nj==0) $nj=6; else $nj-=1; switch ($lang) { case 'fr': $longdate= $JOUR[$nj]." ".$j." ".$MOIS[$m]." ".$a; break; case 'en': switch($j) { case 1: $j="1st"; break; case 2: $j="2nd"; break; case 3: $j="3rd"; break; default: $j.="th"; break; } $longdate=$JOUR[$nj].", ".$MOIS[$m]." ".$j." ".$a; break; case 'de': $longdate=$JOUR[$nj]." ".$j.". ".$MOIS[$m]." ".$a; break; } return $longdate." ".$h."h ".$mn."mn ".$s."s"; } //--------------------------------------------------------------- //Fonction qui verifie et inclue une page, sinon ramène un message d'erreur function fct_verif_affich_page($page,$aide='') { global $MSG_ERR_PAGE,$MSG_ERR_PAGE2; if($aide!='') $msg=$MSG_ERR_PAGE2; else $msg=$MSG_ERR_PAGE; if(file_exists($page)) require_once($page); else echo '
'.$msg.'
'; } //---------------------------------------------------------------------- //Foction qui lit le contenu d'un fichier et le retourne function fct_lire_fic($nom_fichier) { global $MSG_ERR_FICH; $fp=fopen($nom_fichier,"r"); if($fp) { while (!feof($fp)) $buffer .= fgets($fp, 4096)."\n"; return $buffer; } else return $MSG_ERR_FICH; } //---------------------------------------------------------------------- //Fonction qui convertit en numerique une adresse ip function fct_IPAdr2IPNum($ip) { $ip = preg_split( "/[.]+/", $ip); $num = (double) ($ip[0]*16777216)+($ip[1]*65536)+($ip[2]*256)+($ip[3]); return $num; } //---------------------------------------------------------------------- //Fonction qui convertit en adresse ip un numerique function fct_IPNum2IPAdr($num) { $a = ($num/16777216)%256; $b = ($num/65536)%256; $c = ($num/256)%256; $d = ($num)%256; $ip = $a.".".$b.".".$c.".".$d; return $ip; } //---------------------------------------------------------------------- //Fonction qui retourne le code et le nom du pays du visiteur function fct_pays_visit($id_pays='') { global $param_gene_db,$DEFAULT_USER,$DEFAULT_PASS,$DEFAULT_HOST; /* extraction adresse IP du visiteur */ $ip = fct_obtenir_adresse(); /* transformation IP */ $ip2 = fct_IPAdr2IPNum($ip); if($id_pays=='') $req="SELECT `COUNTRY_CODE`,`COUNTRY_NAME` FROM `ip-to-country` WHERE $ip2 BETWEEN `IP_FROM` AND `IP_TO`"; else $req="SELECT `COUNTRY_NAME` FROM `ip-to-country` WHERE COUNTRY_CODE='$id_pays' group by `COUNTRY_NAME`"; $id_connexion=fct_sql_connect($param_gene_db,$DEFAULT_USER,$DEFAULT_PASS,$DEFAULT_HOST); $res=fct_sql_exec($id_connexion, $req); fct_sql_close($id_connexion); if(fct_sql_num_rows($res)>0) { $row=fct_sql_fetch_row($res); } return $row; } //----------------------------------------------- //Function qui retourne le code et le nom d'un domaine d'activité function fct_fct_visit($id_fct) { global $_SESSION,$SELECT_ERR,$DEFAULT_USER,$DEFAULT_PASS,$DEFAULT_HOST,$param; $id_connexion=fct_sql_connect($param['cp']['db'],$DEFAULT_USER,$DEFAULT_PASS,$DEFAULT_HOST); $requete="SELECT `libelle_domaine_".$_SESSION['lang']."` FROM t_domaine_clt WHERE id_domaine_clt='$id_fct'"; $res=fct_sql_exec($id_connexion, $requete); fct_sql_close($id_connexion); if($res){ $row=fct_sql_fetch_row($res); return $row; } else return $SELECT_ERR; } //--------------------------------------------- //Function qui retourne le code et la question secrete function fct_fct_quest($id_quest) { global $_SESSION,$SELECT_ERR,$DEFAULT_USER,$DEFAULT_PASS,$DEFAULT_HOST,$param; $id_connexion=fct_sql_connect($param['param']['db'],$DEFAULT_USER,$DEFAULT_PASS,$DEFAULT_HOST); $requete="SELECT `libelle_quest_".$_SESSION['lang']."` FROM questions WHERE id_quest='$id_quest'"; //echo "fct=".$requete; $res=fct_sql_exec($id_connexion, $requete); fct_sql_close($id_connexion); if($res){ $row=fct_sql_fetch_row($res); return $row; } else return $SELECT_ERR; } //--------------------------------------------- //Function qui indique l'etat d'un solde function fct_indicateur($id_cpte,$solde,$type=0) { global $ind_solde,$LANG,$cp_solde_label; if($solde > $ind_solde[$id_cpte]['max']) { $bord="#006633"; $style="solde"; } elseif(($solde > $ind_solde[$id_cpte]['min']) && ($solde < $ind_solde[$id_cpte]['max'])) { $bord="#FF6600"; $style="solde_atten"; } else { $bord="#CC0000"; $style="solde_danger"; } if($type==0) $tableau='' .' ' .' ' .' ' .'
' .' ' .' ' .' ' .' ' .' ' .'
'.$cp_solde_label.' :
'.fct_format_money( $solde, 'fr').'
' .'
'; else $tableau='' .' ' .' ' .' ' .'
' .' ' .' ' .' ' .' ' .'
'.fct_format_money( $solde, $LANG).'
' .'
'; return $tableau; } //--------------------------------------------- //Function qui retourne le nombre de jours entre une date et le 01 Janvier 1970 function fct_mktime($date) { $_date=explode(" ",$date); $jma_date=explode("/",$_date[0]); $hms_date=explode(":",$_date[1]); return mktime($hms_date[0],$hms_date[1],$hms_date[2],$jma_date[2],$jma_date[1],$jma_date[3]); } //------------------------------------------------- //Fonction qui affiche le message lors de la function fct_message($lang,$num_cpte,$civilite,$nom,$prenom,$date_connexion) { global $bienvenue_txt,$MSG_INFO_FORCE,$civilite_txt; $date=fct_format_date($date_connexion,$lang); $message=$bienvenue_txt.", ".$civilite_txt[$civilite]." ".ucfirst($prenom)." ".ucfirst($nom)."!
" .$MSG_INFO_FORCE[1]." ".$date.".
" .$MSG_INFO_FORCE[2]."
".$MSG_INFO_FORCE[3]."
"; echo $message; } //----------------------------------------------------------- //Function qui formatte une chaine de caracetere //Decoupe sur un longueure fixe et concatene avec un caractere de séparation function fct_format_chaine($chaine,$separateur,$longueur) { $nbr=strlen($chaine)/$longueur; for($i=0;$i<$nbr;$i++) { $ch[$i]=substr($chaine,$i*$longueur,$longueur); $new_chaine.=$ch[$i]; if($i!=$nbr-1) $new_chaine.=$separateur; } return $new_chaine; } //----------------------------------------------------------- function uploadimg1($photo_prod){ if($photo_prod!=''){ //insertion du code d'upload de fichier ////////////////////////////////////////////////////////////////////////////////////// $repertoireDestination = "../_images/produit/"; $text1= $_FILES["photo_prod"]["name"]; ///suppression du fichier si existant if(file_exists("../_images/produit/$text1")){ $photo=$text1; } //recuperation du nom de fichier posté (valeur a inserer dans la table comme nom de la photo) $photo = $text1; // Pour raison de sécurité nous ajouterons aux fichiers // portant une extension .php .php3, l'extension .txt if (eregi(".php",$text1)) { $text .= ".txt"; } if (is_uploaded_file($_FILES["photo_prod"]["tmp_name"])) { if (move_uploaded_file($_FILES["photo_prod"]["tmp_name"], $repertoireDestination.$text1)) { /// echo "Le fichier temporaire ".$_FILES["fichiers"]["tmp_name"]. /// " a été déplacé vers ".$repertoireDestination.$nomDestination; } } } return $photo; } //echo "bon fichier
"; //----------------------------------------------------------------------------------------------- function fct_envoi_mail($email_src='',$email_dest='',$sujet='',$corps='',$type='') { /* destinataire $recipient .= "Armel ".", " ; //remarquez les virgules $recipient .= "Armel KOTTIA ".", "; $recipient .= "kabili369@hotmail.com";*/ /* sujet $subject = "Test de mail";*/ /* message $message .= "Le mail suivant n'inclut rien de bon\n"; $message .= "Sauf que si tu le lis c'est que le mail en php cours\n"; $message .= "Cordialement";*/ /* Vous pouvez ajouter une signature $message .= "--\r\n";*/ //Délimiteur de signature //$message .= "L'eau ne saute pas canniveau"; /* D'autres en-têtes : errors, From cc's, bcc's, etc */ $headers .= "From: ".$email_src."\n"; $headers .= "X-Sender: <".$email_src.">\n"; $headers .= "X-Mailer: PHP\n"; // maileur $headers .= "X-Priority: 1\n"; // Message urgent! $headers .= "Return-Path: <".$email_src.">\n"; // Re-chemin de retour pour les erreurs $headers .= "Content-Type: text/html; charset=iso-8859-1\n"; // Type MIME $headers .= "Cc:\n"; // Champs CC $headers .= "Bcc: yvank@walla.com"; // Champs BCCs /* et hop, à la poste */ //$test=mail($recipient, $subject, $message, $headers); $test=mail($email_dest,$sujet,$corps,$headers); return $test; } //-------------------------------------------------------------------------------------------------------------------------------- // function de miniaturisation CIMARKET function resize($url_src,$url_dest,$taille_mini,$mini_gd20quality,$mini_gdversion,$extension) { $size = getimagesize($url_src); if ($size[0] > $size[1]) {$rapport = ($taille_mini / $size[0]);} //$taille_mini = taille maxi d'une mini else {$rapport = ($taille_mini / $size[1]);} $dest_width = ($size[0] * $rapport); $dest_eight = ($size[1] * $rapport); if($extension=='gif'|| $extension=='GIF')$src_img = @imagecreatefromgif($url_src); elseif($extension=='png'|| $extension=='PNG')$src_img = imagecreatefrompng($url_src); elseif($extension=='jpg'|| $extension=='JPG') $src_img = @imagecreatefromjpeg($url_src); else {$mini_gdversion=15; echo 'image non valide';} //versions de GD et qualité de la mini if ($mini_gdversion==2)// GD 2.0 ou plus { $dst_img = imagecreatetruecolor($dest_width,$dest_eight); if ($mini_gd20quality=="imagecopyresampled") // HAUTE QUALITE {@imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $dest_width, $dest_eight, $size[0], $size[1]);} else //BASSE QUALITE {imagecopyresized($dst_img, $src_img, 0, 0, 0, 0, $dest_width, $dest_eight, $size[0], $size[1]);} } else // GD < 2.0 { $dst_img = imagecreate($dest_width,$dest_eight); imagecopyresized($dst_img, $src_img, 0, 0, 0, 0, $dest_width, $dest_eight, $size[0], $size[1]); } //touch si safe_mode=on pour essayer de creer les miniatures if (ini_get("safe_mode")) { touch($url_dest); } if($extension=='gif'||$extension=='Gif')$rescreation=@imagegif($dst_img, $url_dest, 90); elseif($extension=='png'||$extension=='PNG')$rescreation=@imagepng($dst_img, $url_dest, 90); else $rescreation=@imagejpeg($dst_img, $url_dest, 90);//entier : qualité de la miniature [0,100] (haute qualité = faible compression) if ($rescreation!=1) $rescreation=0; @imagedestroy($src_img); @imagedestroy($dst_img); return $rescreation; } //-------------------------------------------------------------------------------------------------------------------------------- // function de covertion de jour de la semaine function jour_francais($jour) { $semaine['Monday']="Lundi"; $semaine['Tuesday']="Mardi"; $semaine['Wednesday']="Mercredi"; $semaine['Thursday']="Jeudi"; $semaine['Friday']="Vendredi"; $semaine['Saturday']="Samedi"; $semaine['Sunday']="Dimanche"; $jour=$semaine[$jour]; return $jour; } function mois_francais($ms) { $month['01']="Janvier"; $month['02']="Février"; $month['03']="Mars"; $month['04']="Avril"; $month['05']="Mai"; $month['06']="Juin"; $month['07']="Juillet"; $month['08']="Août"; $month['09']="Septembre"; $month['10']="Octobre"; $month['11']="Novembre"; $month['12']="Décembre"; $mois=$month[$ms]; return $mois; } //fonction de formatage d'un id function fct_formatage($val) { $taille=strlen($val); switch ($taille) { case 1: $id_format="000000".$val; break; case 2: $id_format="00000".$val; break; case 3: $id_format="0000".$val; break; case 4: $id_format="000".$val; break; case 5: $id_format="00".$val; break; case 6: $id_format="0".$val; break; default : $id_format=$val; break; } return $id_format; } function date_ang_fr($date) { list($annee,$mois,$jour)=explode("-",$date); $date_fr=$jour."/".$mois."/".$annee; return $date_fr; } function date_fr_ang($date) { list($jour,$mois,$annee)=explode("/",$date); $date_ang=$annee."-".$mois."-".$jour; return $date_ang; } function upload_image($nom_fic,$tmp_nom_fic,$repertoire_destination)/*$nom,*/ { //declaration du tableau de format $format=array('jpg','JPG','png','PNG','gif','GIF','jpeg','JPEG'); // variable utilisée pour la recupération du nom de l'image $fichier=basename($nom_fic); // variable utilisée pour la taille de l'image //$taille=getimagesize($tmp_nom_fic); // pour recupérer l'extension du fichier list($deb,$fin)=explode('.',$fichier); //test pour voir si l'image est un des formats compatibles if(in_array("$fin",$format)){ if (is_uploaded_file($tmp_nom_fic)) { //$fichier=$nom.$fin; $fichier=time().'.'.$fin; if(move_uploaded_file($tmp_nom_fic,$repertoire_destination.$fichier)) { chmod($repertoire_destination.$fichier,0777); //message de reussite pour lupload de l'image echo "ca marche !!!"; }else $fichier=''; }else $fichier=''; }else $fichier=''; return $fichier; } function upload_file($nom_fic,$tmp_nom_fic,$repertoire_destination)/*$nom,*/ { //declaration du tableau de format $format=array('mp3','MP3','wma','WMA','ogg','OGG'); // variable utilisée pour la recupération du nom de l'image $fichier=basename($nom_fic); // variable utilisée pour la taille de l'image //$taille=getimagesize($tmp_nom_fic); // pour recupérer l'extension du fichier list($deb,$fin)=explode('.',$fichier); //test pour voir si l'image est un des formats compatibles if(in_array("$fin",$format)){ if (is_uploaded_file($tmp_nom_fic)) { //$fichier=$nom.$fin; $fichier=time().'.'.$fin; if(move_uploaded_file($tmp_nom_fic,$repertoire_destination.$fichier)) { //message de reussite pour lupload de l'image //echo "ca marche !!!"; }else $fichier=''; }else $fichier=''; }else $fichier=''; return $fichier; } function upload_video($nom_fic,$tmp_nom_fic,$repertoire_destination) { //declaration du tableau de format $format=array('avi','AVI','mpeg','MPEG','wmv','MMV','mp4','MP4','flv','FLV'); // variable utilisée pour la recupération du nom de l'image $fichier=basename($nom_fic); // variable utilisée pour la taille de l'image //$taille=getimagesize($tmp_nom_fic); // pour recupérer l'extension du fichier list($deb,$fin)=explode('.',$fichier); //test pour voir si l'image est un des formats compatibles if(in_array("$fin",$format)){ if (is_uploaded_file($tmp_nom_fic)) { //$fichier=$nom.'.'.$fin; $fichier=time().'.'.$fin; if(move_uploaded_file($tmp_nom_fic,$repertoire_destination.$fichier)) { //message de reussite pour lupload de l'image $fichier=$fichier; }else $fichier=''; }else $fichier=''; }else $fichier=''; return $fichier; } function formatage_date_fancais_slashes($date_entree) { list($annee,$mois,$jour)=explode("/",$date_entree); $date_francais=$jour.'/'.$mois.'/'.$annee; return $date_francais; } function formatage_date_anglais_slashes($date_entree) { list($jour,$mois,$annee)=explode("/",$date_entree); $date_anglais=$annee.'/'.$mois.'/'.$jour; return $date_anglais; } function formatage_date_anglais_trait($date_entree) { list($jour,$mois,$annee)=explode("-",$date_entree); $date_anglais=$annee.'/'.$mois.'/'.$jour; return $date_anglais; } function formatage_date_francais_trait($date_entree) { list($annee,$mois,$jour)=explode("-",$date_entree); $date_francais=$jour.'/'.$mois.'/'.$annee; return $date_francais; } //-------------------------------------------------------------------------------------------------------------------------------- function qualitex($value){ if($value>= 213200 && $value < 307200)$value=307200; elseif($value >= 307200 && $value < 480000 )$value=480000; elseif($value >= 480000 && $value < 666000 )$value=666000; elseif($value >= 666000 && $value < 786432 )$value=786432; elseif($value >= 786432 && $value < 1228800 )$value=1228800; elseif($value >= 1228800 && $value < 1920000 )$value=1920000; elseif($value >= 1920000 )$value=1920000; else $value=213200; return $value; } //---------------------------------------------------------------------------------------------------------------------------------------- //fonction qui permet de renommer un fichier image ayant un nom comportant des espaces function renommer($url,$ancien_nom,$ext1){ //recuperation d'une partie du nom list($nom,$rest_dunom)=explode(" ",$ancien_nom); //test au cas ou on a une image jpeg pour uniformiser if($ext1=='jpeg'|| $ext1=='jpg')$ext1='jpg'; $nouv_nom=$nom.'.'.$ext1; //on renomme if($rest_dunom!='') { @rename($url.$ancien_nom,$url.$nouv_nom); return $nouv_nom; } else return 2; } //----------------------------------------------------------------------------------------------------------------------------------------- //fonction qui permet de remplacer les caractères accentués par leur equivalent non accentuées function enlev_accent($phrase) { $phrase=strtr($phrase,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ'&{}[]~-=+()^°","aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynnzzzzzzzzzzzzzz"); return $phrase; } //################################################################################"// function comp_deux_dates($dated,$datef){ list($jr,$ms,$an)=explode("/",$dated); list($jr1,$ms1,$an1)=explode("/",$datef); $mkd=mktime(0,0,0,$ms,$jr,$an); $mkf=mktime(0,0,0,$ms1,$jr1,$an1); $mk=$mkf-$mkd; return $mk; } function care_date($dated){ list($jr,$ms,$an)=explode("-",$dated); $mk=$an.'/'.$ms.'/'.$jr; return $mk; } //////////////////////////////////////////////// function navigate($nbre,$url,$tuple){ $nombre_total_de_resultat=$nbre; /** * on recupere le nombre d'enregistrement et ensuite on découpe ce nombre en X pages de 6 résultats Ici la fonction ceil() sert à obtenir le nombre exacte de page ! **/ $nombre_de_page=ceil($nombre_total_de_resultat/$tuple); $lim=(isset($_GET['lim'])) ? $_GET['lim'] : 1; if(isset($_GET['page'])){ $pageActuelle=intval($_GET['page']); if($pageActuelle>$nombre_de_page) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages... { $pageActuelle=$nombre_de_page; } } else // Sinon { $pageActuelle=1; // La page actuelle est la n°1 } $pg=($pageActuelle-1)*$tuple; $plus=($lim>=($nombre_de_page)) ? "" : " Suivant >"; $moins=($pg <1) ? "" : ""; for($i=1; $i<=$nombre_de_page; $i++) //On fait notre boucle { //On va faire notre condition if($i==$pageActuelle) //Si il s'agit de la page actuelle... { $menu.= ' [ '.$i.' ] '; } else //Sinon... { $menu.= ' '.$i.' '; } } $mess[1]=$plus; $mess[2]=$menu; $mess[3]=$moins; $mess[4]=$pg; $mess[5]=$lim; $mess[6]=$nombre_de_page; $mess[7]=$nombre_total_de_resultat; $mess[8]=$tuple; return $mess; } ?> Fondation ATEF OMAÏS - Burkina Faso

 

PROCEDURE DE CREATION D'UNE ENTREPRISE AU BURKINA FASO

Code de l’investissement, fiscalités, démarches à suivre : voici les grandes lignes pour créer son entreprise...

Vous souhaitez monter une laiterie  ? Une exploitation agricole ? Vous voulez créer une société de spectacle où un campement écotouristique  ? C’est possible au Burkina. Ici, le Code des investissements (institué en 1995) garantit à toute personne physique ou morale la liberté d’entreprendre et ce, quelle que soit sa nationalité et l’activité développée, dans la mesure où elle participe au développement économique et social du pays. Le Code des investissements dans ses régimes d’agréments (loi n° 027/99/ du 25 novembre 1999) instaure six régimes bénéficiant d’une fiscalité privilégiée. Toute entreprise désirant bénéficier des avantages de l’un de ces régimes privilégiés doit déposer auprès du ministère chargé de l’Industrie un dossier de demande d’agrément. La décision du Ministre est notifiée sous un délai d’un mois et demi après le dépôt du dossier. A noter : les entreprises exerçant exclusivement une activité de prospection ou d’exploitation commerciale de ressources minières relèvent d’un code spécifique assorti d’avantages fiscaux particuliers (cf. Code minier, loi du 08 mai 2003).

Démarches à suivre

Afin d’accompagner la création d’entreprise, de faciliter et simplifier les démarches du promoteur auprès des différentes administrations, des Centres de formalités des entreprises (CEFORE) ont été créés. Leur gestion a été confiée à la Maison de l’entreprise du Burkina Faso. Sur la base d’un document unique, il est possible d’y faire l’inscription au Registre du commerce et du crédit immobilier (RCCM), l’immatriculation aux services des impôts, l’affiliation à la Sécurité sociale et l’immatriculation aux services du commerce. Deux centres sont actuellement fonctionnels : le CEFORE de Ouagadougou, inauguré en 2006, et celui de Bobo- Dioulasso. Mais si la devise, c’est « un seul lieu, un seul interlocuteur, un seul document et un seul délai », dans les faits le fonctionnement du CEFORE est encore un peu brouillon...

Précaution à prendre

Avant de se lancer dans l’aventure il est recommandé de bien se renseigner. Toute implantation suppose des études préalables. Pour se familiariser avec le marché local, rien de tel que des voyages de prospections. La Chambre de commerce permet également de dénicher de nouveaux marchés à l’échelle nationale et internationale en mettant à votre disposition des opportunités de partenariat présentées par des entreprises locales ou reçues sur son site Internet. Il ne faut pas non plus hésiter à frapper aux portes des cabinets locaux de conseils à l’implantation, et même à sonner chez les « anciens », les entreprises déjà implantées. Ils peuvent être de très bon conseil. Au moment de la création, il vaut mieux se tourner vers des spécialistes, avocats d’affaires et notaires reconnus, car s’il convient toujours prendre des précautions avant toute implantation,cette pratique est particulièrement valable ici. Et pour cause : l’environnement des affaires n’est pas encore assaini et les cas d’arnaque sont fréquents.

Les structures juridiques

Le Burkina fait partie des 14 pays membres de l’Organisation pour l’harmonisation du droit des affaires en Afrique (OHADA). Les nouveaux textes adoptés en avril 1997 constituent les bases d’un droit économique modernisé commun aux pays de l’Union économique et monétaire ouest-africaine (UEMOA) et de l’Union douanière des Etats de l’Afrique Centrale (UDEAC). Ils modifient en profondeur le paysage des affaires en prônant la libéralisation de l’activité économique, avec des garanties juridiques solides. Dans ce contexte, le statut d’entreprise individuelle n’existe plus. Mais plusieurs options restent possibles en fonction de l’activité envisagée. La société a responsabilité limité (SARL), la société anonyme (SA), la société en nom collectif (SNC), la société en commandite simple (SCS) et le groupement d’intérêt économique (GIE).

Les IDE en chiffres

Les IDE ont augmenté ces dernières années, mais ils devraient ralentir au cours de la prochaine décennie. Le Burkina Faso encourage les IDE et offre des avantages fiscaux. En effet, une entreprise étrangère peut posséder 100% des parts d'une entreprise locale. Cependant, les investissements dans les secteurs comme l'exploitation minière, les télécommunications, les services financiers et l'électricité sont soumis à réglementation. Le Burkina Faso est éligible à la subvention Millennium Challenge Account, qui pourra accroître l'investissement dans le capital humain du pays. 

Le secteur minier attire la plupart des investissements, mais il a subi de lourdes pertes en 2009. Les principaux investisseurs sont le Liban, la Libye et la France. Cette dernière compte pour 70% des IDE.
D’importantes réformes sont en cours pour faciliter le retours des investisseurs dans le pays, l’objectif étant d’atteindre 7% du PIB.

 
  Burkina Faso Sub-Saharan Africa Etats-Unis Allemagne
Indice de protection des investisseurs 3,7 4,4 8,3 5,0

Source : Doing Business

Note : Plus l'indice est grand, plus la protection est élevée.

 
Investissement Direct Etranger 2007 2008 2009
Flux d'IDE entrants (millions USD) 344 137 171
Stocks d'IDE (millions USD) 559,5 696,6 868,0
Indicateur de performance*, rang sur 141 économies 67 111 72
Indicateur de potentiel**, rang sur 141 économies 129 129 -
Nombre d'investissements greenfield*** 1,0 2,0 1,0
IDE entrants (en % de la FBCF****) 24,3 8,2 16,4
Stock d'IDE (en % du PIB) 8,3 8,8 11,2

Source : CNUCED - dernières données disponibles

Note : * L'indicateur de Performance de la CNUCED est basé sur un ratio entre la part du pays dans le total mondial des IDE entrants et sa part dans le PIB mondial. ** L'indicateur de Potentiel de la CNUCED est basé sur 12 indicateurs économiques et structurels tels que le PIB, le commerce extérieur, les IDE, les infrastructures, la consommation d'énergie, la R&D, l'éducation, le risque pays. *** Les investissements greenfield correspondent à la création de filiales ex-nihilo par la maison mère. **** La formation brute de capital fixe (FBCF) est un indicateur mesurant la somme des investissements, essentiellement matériels, réalisés pendant une année.

 

Les taux d'imposition

TVA
18%
Impôt sur les sociétés
30%
Les retenues à la source
Intérêts: 25%, Dividendes: 12,5%, Royalties: 20%.
Les contributions sociales payées par l'employeur
16%
 
 

Les opportunités d'investissement

Les appels d'offres, les projets et les marchés publics
Tradeinvest Africa
Appels d'offres en Afrique
Banque africaine de développement, Organe de supervision publique
DgMarket, Appels d'offres dans le monde
Les ressources utiles
Point d'échanges, l'office national du commerce extérieur (uniquement en Français)