Location: PHPKode > projects > PHP My Ring > webring/include/fonctions.php
<?
/* ----------------------------------------------------------------------------
                               F O N C T I O N S
           PHPMyRing (4.0) dernière modification du fichier [13-01-02]
   ---------------------------------------------------------------------------- */


# # # #                                       # # # #
#      Création des variables de configuration      #
# # # #                                       # # # #

// Renvoie un tableau $conf['var']
function config()
         {
         $link=connecte();
         $res=requete("SELECT * FROM webring_conf WHERE idconf=1");
         $nb=mysql_num_rows($res);
         ////mysql_close();
         if ($nb=1)
            {
            $conf=mysql_fetch_array($res);
            return $conf;
            }
         else
             {
	     echo "<p>";
             echo _("Erreur lors de la r&eacute;cup&eacute;ration des variables de configuration !");
	     echo "</p>";
             }
         unset($conn,$res,$nb,$rqt);
         mysql_free_result($res);
         mysql_close($link);
         }

# # # #                                   # # # #
#       Vérification d'une adresse d'email      #
# # # #                                   # # # #
// Merci à Mikaël PIRIO ;)
function is_email($test)
         {
         $test=trim($test);
         $ret=ereg('^([a-z0-9_]|\\-|\\.)+'.'@'.'(([a-z0-9_]|\\-)+\\.)+'.'[a-z]{2,4}$',$test);
         if (ereg("win",strtolower(PHP_OS)))
            {
            return($ret);
            }
         else
             {
             if ($ret)
                {
                list($user,$domaine)=split("@",$test,2);
                if (checkdnsrr($domaine,"MX"))
                   {
                   return true;
                   }
                else
                   {
                   return false;
                   }
                }
             else
                 {
                 return false;
                 }
             }
        }



# # # #                                    # # # #
#       Vérification d'une adresse Internet      #
# # # #                                    # # # #

function is_url($test)
         {
         $test = trim($test);
         // 7 premiers caractères
         $ok=ereg("^http://",$test);
         return($ok);
         }

# # # #                     # # # #
#       Fonctions pour MySQL      #
# # # #                     # # # #

// Connection
function connecte()
         {
         global $host, $login, $mdpSQL, $link;
         $link=mysql_connect($host, $login, $mdpSQL)
	       or die ('<div class="message-info-actions">'.
	                _("Connexion &agrave; la base de donn&eacute;es impossible").
			'</div>');
         return $link;
         }

// Requete MySQL avec gestion d'erreur...

function requete($rqt)
         {
         global $base, $link;
         mysql_select_db($base);
         $res=mysql_query($rqt)
            or
            die ('<div class="message-info-actions">'.
                    _("<b>Erreur MySQL</b>").' : <br />'.
                    _("Requ&egrave;te").' : <code>'.$rqt.'</code><br />'.
                    _("R&eacute;ponse").' : '.mysql_error().'
                  </div>');
         // Obsolète
         // $res=mysql_db_query($base,$rqt) or die ('<p>Erreur MySQL : <br>Requ&egrave;te :<b>'.$rqt.'</><br>Réponse :'.mysql_error().'</p>');
         return($res);
         }

# # # #                     # # # #
#       Envoi d'un courrier       #
# # # #                     # # # #

// Vous pouvez la modifier selon votre convenance !

function courrier($de,$a,$sujet,$body)
         {
         global $conf,$REMOTE_ADDR,$emailadm,$REQUEST_URI;
	 $body=stripcslashes($body);
	 $sujet=stripcslashes($sujet);
         $date = date("D, j M Y H:i:s +0200");
         $tt="From: ".$de."\n";
         $tt.="Date: $date"."\n";
//	 $tt.="Reply-To:".$de."\n";  // pas std
	 $tt.="X-Mailer: PHP/".phpversion()." PHPMyRing ".$conf['version']."\n";
	 $tt.="X-Operating-System: ".PHP_OS."\n";
	 $tt.="X-Sender-IP: ".$REMOTE_ADDR."\n";
	 $tt.="X-URL: ".$conf['adresse_site'].$REQUEST_URI."\n";
         $tt.="Mime-Version: 1.0\n";
         $tt.="Content-Type: text/plain; charset="._("iso-8859-15");
         return mail("$a","$sujet","$body",$tt);
         $body=nl2br($body);
         $tt=nl2br(htmlentities($tt));
         /*if (print "<p><b><u>Courrier envoyé à l'adresse</u></b> : $a<br>
         <b>En-tete</b> : $tt<br>
         <b>Pour sujet</b> : $sujet<br>
         <b>Texte du message</b> : $body<br></p>")  return true; */
         }


# # # #                                   # # # #
#       Recherche d'un texte dans une page      #
# # # #                                   # # # #

// La fonction retourne 0 si le fichier n'existe pas
//                      1               contient la recherche
//                      2               ne contient pas la recherche
// MERCI DANIEL !!!!!!! (http://hapedit.free.fr)
function Analyse($Koi,$Dans)
         {

         // Initialisation des variables
         $contenu="";      // Le tampon
         if ($fp=@fopen($Dans,"r")) // Ouverture du fichier
            {
            while (($fp) and (!feof($fp)))   // Tant que la connexion est ouverte et l'on est pas à la fin du fichier
                  {
                  $contenu.=fread($fp, 1024);         // On lit le bloc suivant
                  $taille=strlen($contenu);           // Taille du tampon
                  if (($taille>4095) || (feof($fp)))
                     {
                     $res=ereg($Koi,$contenu);       // Recherche
                     if ($res==true) break;           // C'est bon, on a trouvé, arrete toi là !
                     $contenu=substr($contenu,3072);  // Réduction du tampon
                     }
                  }
             fclose($fp);
             // interprétation du résultat
             if ($res==true) return 1;
             elseif ($res==false) return 2;
             }
          else
              {
              return 0;
              }
          }

# # # #                              # # # #
#       Encodage des adresse d'email       #
# # # #                              # # # #

// Cette fonction affiche un lien mailto et code l'adresse d'email

function codemail($e)
         {
         list($user,$domaine)=split("@",$e,2);
         $sortie=". . . no spam. . . ". $user." . . . a r o b a s e . . . ".$domaine." . . . no spam";
         return "<a href=\"mailto:$sortie\">$hide@address.com</a>";
         }




# # # #                                                       # # # #
#      Récupération du ou des emails du ou des administrateurs      #
# # # #                                                       # # # #

function recupemail()
         {
         global $rqt,$conf;
         if ($conf['mailadm']=="all")
            {
            // On va rechercher les mails des administrateurs....
            $link=connecte();
            $res=requete("SELECT emailadm FROM webring_adm");
            while ($row=mysql_fetch_array($res))
                   {
                   $to.=$row['emailadm'];
                   $to.=",";
                   }
            return $to;
            }
         else
             {
             return $conf['mailadm'];
             }
         unset($conn,$res,$rqt,$row);
         mysql_free_result($res);
         mysql_close($link);
         }
# # # #                          # # # #
#      Récupération des variables      #
# # # #                          # # # #
function resolve($id_du_membre,$str)
         {
         $link=connecte();
         global $res, $membre,$conf,$rqt;
         $rqt = "SELECT email,webmaster,site_nom,pseudo,mdp,url ".
                "FROM webring ".
                "WHERE idsite='$id_du_membre'";
         $res=requete($rqt);
         $membre=mysql_fetch_array($res);
         ////mysql_close();
         // Configuration
         $conf=config();
         $chemin=$conf['adresse_site']."/".$conf['dossierwr'];
         $str=ereg_replace("#CHEMINDUWEBRING",$chemin,$str);
         $str=ereg_replace("#SIGNATURE",StripSlashes($conf['signature']),$str);
         $str=ereg_replace("#TYPEDEWEBRING",StripSlashes($conf['type']),$str);
         $str=ereg_replace("#NOMDUWEBRING",StripSlashes($conf['nomwr']),$str);
         $str=ereg_replace("#NOMDUSITE",StripSlashes($membre['site_nom']),$str);
         $str=ereg_replace("#NOMDUWEBMASTER",$membre['webmaster'],$str);
         $str=ereg_replace("#PSEUDODUMEMBRE",$membre['pseudo'],$str);
         $str=ereg_replace("#MOTDEPASSEDUMEMBRE",$membre['mdp'],$str);
         $str=ereg_replace("#URLDUSITE",$membre['url'],$str);
         return $str;
         mysql_close($link);
         }

# # # #                         # # # #
#      Génération du fichier Log      #
# # # #                         # # # #
//Dans $chemin, mettre ../ ou rien pour accéder au dossier include
function addinlog($chemin,$action,$etat)
         {
         global $REMOTE_ADDR,$SCRIPT_NAME;
         $date=date("d/m/Y @ H:i:s");
         $texte="$date : $action ($REMOTE_ADDR in $SCRIPT_NAME) --> $etat<br />\n";
         $fp=fopen($chemin."include/log","a+");
         fwrite($fp,$texte);
         fclose($fp);
         }


# # # #                          # # # #
#      Menu déroulant des langues      #
# # # #                          # # # #

function menu_lang($chemin,$lang_sel)
         {
	 global $PHP_SELF,$QUERY_STRING;
         // Analyse du fichier /lang/langs changement le 30/04/05 => GNU/GetText
	 // fichier /locale/list
         if ($fp=fopen($chemin."locale/list","r"))
            {
            echo "<form method=\"post\" action=\"".$PHP_SELF."?".urlencode($QUERY_STRING)."\" id=\"form_lang\">
	           <p>
                    <select name=\"lang_submit\" id=\"lang\" onchange=\"this.form.submit();\">
                ";		
            while (($fp) and (!feof($fp)))
                  {
                  $row=fgetcsv($fp,200,";");
                  if (!$row) break;
                  $lang=$row[0];
                  $langue=htmlspecialchars($row[1]);
                  if ($lang==$lang_sel) $selected="selected=\"selected\"";
                  echo " <option value=\"".$lang."\" $selected>$langue</option>
		  ";
                  $selected="";
                  }
            echo "
	    </select>
	    </p>
               </form>     ";
            fclose($fp);
            }
         else 
            {
            echo _("Aucune langue d&eacute;finie!");
            }
	 /// On supprime la variable $lang
	 unset($lang);
         }

# # # #                               # # # #
#      Inclusion correcte de la langue      #
# # # #                               # # # #

function InsertLang($chemin,$langue_par_defaut)
         {
         global $lang, $HTTP_COOKIE_VARS, $HTTP_SERVER_VARS, $L, $lang_submit, $gettext_domain, $locale, $conf;
         // Vérification que la variable lang n'est pas déjà définie...
	 if ($lang_submit)
	    {
	    $lang=$lang_submit;
	    }
	 elseif (isset($HTTP_COOKIE_VARS['PHPMYRING_langue']))
	      {
              $lang=$HTTP_COOKIE_VARS['PHPMYRING_langue'];
              }
         elseif ($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE'])
	      {
	      // Il n'y a que 2 caractères dans ce qui suit
              $lang=substr($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE'],0,2);
	      }
	 else
	     {
	     $lang=$lang_par_defaut;
	     }
         // Dans tous les cas, on
         // supprime de l'ancien cookie
	 unset($HTTP_COOKIE_VARS['PHPMYRING_langue']);

	 // Vérification que la langue souhaitée existe
/*         if ($fp=fopen($chemin."locale/list","r"))
            {
            while (($fp) and (!feof($fp)))
                  {
                  $row=fgetcsv($fp,200,";");
                  if (!$row) break;
                  if ($lang==$row[0]) return true;
                  else
                     {
                     // langue inconnue :-(
                     // Mise en place de la langue par défaut :)
                     $lang=$langue_par_defaut;
                     }
                   }
	     }*/
         // définition d'un cookie
         setcookie("PHPMYRING_langue","$lang",time()+3600*24*30);


	 /*
         if ($lang_submit)
             {
             // suppression de l'ancien cookie (ne résoud pas le pb?!!??)
	     unset($HTTP_COOKIE_VARS['PHPMYRING_langue']);
             // définition d'un cookie
             setcookie("PHPMYRING_langue","$lang_submit",time()+3600*24*30);
	     $lang=$lang_submit;
             }
          else
              {
              // Récupération du cookie s'il existe...
              if (isset($HTTP_COOKIE_VARS['PHPMYRING_langue']))
                 {
                 $lang=$HTTP_COOKIE_VARS['PHPMYRING_langue'];
                 }
              else
                  {
                  // Recuperation de la langue du navigateur
                  $lang=substr($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE'],0,2);
                  // récupération de la liste des langues disponibles.
                  if ($fp=fopen($chemin."locale/list","r"))
                     {
                     while (($fp) and (!feof($fp)))
                           {
                           $row=fgetcsv($fp,200,";");
                           if (!$row) break;
                           if ($lang==$row[0]) setcookie("PHPMYRING_langue","$lang",time()+3600*24*30);
                           else   
                               {
                               // langue inconnue :-(
                               // Mise en place de la langue par défaut :)
                               $lang=$langue_par_defaut;
                               setcookie("PHPMYRING_langue","$lang",time()+3600*24*30);
                               }
                           }

                     }
                  }
              }
         //include ($chemin."lang/".$lang.".php"); // */
	 // Mise en place de GNU/GetText le 18/02/2005
	 $gettext_domain="phpmyring";
	 $locale=setlocale(LC_MESSAGES, $lang);
         bindtextdomain($gettext_domain,$_SERVER["DOCUMENT_ROOT"]."/".$conf['dossierwr']."/locale");
	 textdomain($gettext_domain);
         }
?>
Return current item: PHP My Ring