diff --git a/Perrine.php b/Perrine.php deleted file mode 100644 index b6b879c..0000000 --- a/Perrine.php +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - Compte à rebours :) - - - - - -
- - - - - diff --git a/a_propos.php b/a_propos.php index 38a3bae..7593b6a 100644 --- a/a_propos.php +++ b/a_propos.php @@ -1,3 +1,6 @@ + @@ -21,6 +24,7 @@


Evènements :

- diff --git a/aide.php b/aide.php index e3b932f..64ea1bb 100644 --- a/aide.php +++ b/aide.php @@ -1,9 +1,14 @@ + + + @@ -38,7 +43,7 @@
Saisir A
Algorithme
? → A
Casio
Input A
TI

Exécution :

- +
diff --git a/algo_soumis.php b/algo_soumis.php deleted file mode 100644 index 9940919..0000000 --- a/algo_soumis.php +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - Festiv'Algo - Publier un algorithme - - - -
- -
- ".$titre."

".$auteur."
".$mail."


".$description."

".$prog."

>>> Publier <<<
"; - send_mail("bruno-godefroy@sfr.fr", 'Nouvel exemple : '.$titre, $message); - - echo "
Votre algorithme a été soumis. Vous recevrez une réponse par mail prochainement.

Merci de votre participation.
"; - } - else - { - if($_POST['code'] == '') - echo "
Votre algorithme comporte des erreurs.
Corrigez les avant de le publier.
"; - else - echo "
Une erreur s'est produite lors de la soumission de l'algorithme.
"; - } - ?> -
-
- - - \ No newline at end of file diff --git a/algo_soumis_admin.php b/algo_soumis_admin.php deleted file mode 100644 index 4e6130e..0000000 --- a/algo_soumis_admin.php +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - Festiv'Algo - Publier un algorithme - - - -
- -
- Algorithme soumis avec succès !
"; - - $message = " - Vous avez posté récemment l'algorithme \"".$_POST['titre']."\" sur Festiv'Algo.
- Félicitations, celui-ci vient d'être publié dans les exemples.

- Nous avons besoin de vos contributions. N'hésitez donc pas à publier de nouveaux algorithmes.
- Au plaisir de vous revoir sur Festiv'Algo !

- Il s'agit d'un mail automatique. Merci de ne pas y répondre. - "; - - send_mail($_POST['mail'], "Publication d'un algorithme sur Festiv'Algo", $message); - - mysql_query('delete from exemples_en_attente where id = "'.$_GET['id'].'"'); - } - else - echo "
Erreur php.
"; - } - else - { - if(isset($_GET['id'], $_GET['case']) && $_POST['mdp'] == "studio3607") - { - $req = mysql_fetch_array(mysql_query('select titre, auteur, mail, description, programme from exemples_en_attente where id = "'.$_GET['id'].'"')); - - if($_GET['case'] == 1) - { - $raisons = " -      - votre algorithme a été jugé sans intêret
-      - votre algorithme contient de la publicité ou un contenu choquant
- "; - } - else - { - $raisons = " -      - votre algorithme existe déjà dans les exemples
-      - vous avez déjà soumis cet algorithme
- "; - } - - $message = " - Vous avez posté récemment l'algorithme \"".$req['titre']."\" sur Festiv'Algo. Nous vous remercions pour cette initiative.

- Cependant, celui-ci n'a pas été publié pour l'une des raisons suivantes :
" - .$raisons. - "
Merci de prendre en compte ces remarques pour vos futures publications.
- Au plaisir de vous revoir sur Festiv'Algo !

- Il s'agit d'un mail automatique. Merci de ne pas y répondre. - "; - - send_mail($req['mail'], "Publication d'un algorithme sur Festiv'Algo", $message); - mysql_query('delete from exemples_en_attente where id = "'.$_GET['id'].'"'); - echo "
Email envoyé !
"; - } - else - echo "
Erreur.
"; - } - ?> -
- - - - \ No newline at end of file diff --git a/bas_de_page.php b/bas_de_page.php index 0031bb7..053e0fd 100644 --- a/bas_de_page.php +++ b/bas_de_page.php @@ -8,7 +8,7 @@
Maths Magiques
-

Festiv'Algo - 2013 | Nous contacter

+

Festiv'Algo - 2013

Crédits images : Site du Zéro

- - - - - - - - Festiv'Algo - Contact - - - -
- -
-
-
-

Nom

- -

E-mail

- -

Objet

- -

Message

-

- -
-
-
-
- - - \ No newline at end of file diff --git a/database.sql b/database.sql deleted file mode 100644 index 81d96ab..0000000 --- a/database.sql +++ /dev/null @@ -1,123 +0,0 @@ --- -------------------------------------------------------- - --- --- Structure de la table `categories` --- - -CREATE TABLE `categories` ( - `id` smallint(6) NOT NULL, - `name` varchar(256) NOT NULL, - `description` text NOT NULL, - `position` smallint(6) NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Structure de la table `exemples` --- - -CREATE TABLE `exemples` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `titre` varchar(256) NOT NULL, - `auteur` varchar(256) NOT NULL, - `mail` varchar(256) NOT NULL, - `description` longtext NOT NULL, - `programme` longtext NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Structure de la table `exemples_en_attente` --- - -CREATE TABLE `exemples_en_attente` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `titre` varchar(256) NOT NULL, - `auteur` varchar(256) NOT NULL, - `mail` varchar(256) NOT NULL, - `description` longtext NOT NULL, - `programme` longtext NOT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Structure de la table `pm` --- - -CREATE TABLE `pm` ( - `id` bigint(20) NOT NULL, - `id2` int(11) NOT NULL, - `title` varchar(256) NOT NULL, - `user1` bigint(20) NOT NULL, - `user2` bigint(20) NOT NULL, - `message` text NOT NULL, - `timestamp` int(10) NOT NULL, - `user1read` varchar(3) NOT NULL, - `user2read` varchar(3) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Structure de la table `topics` --- - -CREATE TABLE `topics` ( - `parent` smallint(6) NOT NULL, - `id` int(11) NOT NULL, - `id2` int(11) NOT NULL, - `title` varchar(256) NOT NULL, - `message` longtext NOT NULL, - `authorid` int(11) NOT NULL, - `timestamp` int(11) NOT NULL, - `timestamp2` int(11) NOT NULL, - PRIMARY KEY (`id`,`id2`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - --- -------------------------------------------------------- - --- --- Structure de la table `users` --- - -CREATE TABLE `users` ( - `id` bigint(20) NOT NULL, - `username` varchar(255) NOT NULL, - `password` varchar(255) NOT NULL, - `email` varchar(255) NOT NULL, - `avatar` text NOT NULL, - `signup_date` int(10) NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=utf8; - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/delete_category.php b/delete_category.php deleted file mode 100644 index d193b2c..0000000 --- a/delete_category.php +++ /dev/null @@ -1,84 +0,0 @@ -0) -{ -if(isset($_SESSION['username']) and $_SESSION['username']==$admin) -{ -?> - - - - - - Supprimer une catégorie - <?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?> - forum - - -
- forum -
-
- -
-
- Index du forum > > Supprimer la catégorie -
- -
-
-"'.$dn1['position'].'"')) - { - ?> -
La catégorie et ses sujets a bien été supprimée.
- Retourner à l'index du forum
- -
- Êtes-vous sûr de vouloir supprimer cette catégorie et l'ensemble de ses sujets? - - -
- -
-
Simple PHP forum Script - Support du Web
- - -Vous devez être connecté en tant qu\'administrateur pour accéder à cette page: Connexion - Inscription'; -} -} -else -{ - echo '

La catégorie que vous désirez supprimer n\'existe pas.

'; -} -} -else -{ - echo '

L\'identifiant de la catégorie à supprimer n\'est pas défini

'; -} -?> diff --git a/delete_topic.php b/delete_topic.php deleted file mode 100644 index 8e2d700..0000000 --- a/delete_topic.php +++ /dev/null @@ -1,91 +0,0 @@ -0) -{ -if($_SESSION['username']==$admin) -{ -?> - - - - - - Supprimer un sujet - <?php echo htmlentities($dn1['title'], ENT_QUOTES, 'UTF-8'); ?> - <?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?> - forum - - -
- forum -
-
- -
-
- Index du forum > > > Supprimer le sujet -
- -
-
- -
Le sujet a bien été supprimé.
- Retourner au sujet
- -
- Êtes-vous sûr de vouloir supprimer ce sujet? - - -
- -
-
Simple PHP forum Script - Support du Web
- - -Vous n\'avez pas le droit de supprimer ce sujet.'; -} -} -else -{ - echo '

Le sujet que vous désirez supprimer n\'existe pas.

'; -} -} -else -{ - echo '

Vous devez être connecté en tant qu\'administrateur pour accéder à cette page: Connexion - Inscription

'; -} -} -else -{ - echo '

Un identifiant du sujet que vous désirez supprimer n\'est pas défini.

'; -} -?> diff --git a/edit_category.php b/edit_category.php deleted file mode 100644 index d84760e..0000000 --- a/edit_category.php +++ /dev/null @@ -1,94 +0,0 @@ -0) -{ -if(isset($_SESSION['username']) and $_SESSION['username']==$admin) -{ -?> - - - - - - Modifier une catégorie - <?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?> - forum - - -
- forum -
-
- -
-
- Index du forum > > Modifier la catégorie -
- -
-
- -
La catégorie a bien été modifiée.
- Retourner à l'index du forum
- -
-
- (html accepté)
-
- -
- -
-
Simple PHP forum Script - Support du Web
- - -Vous devez être connecté en tant qu\'administrateur pour accéder à cette page: Connexion - Inscription'; -} -} -else -{ - echo '

La catégorie que vous désirez modifier n\'existe pas.

'; -} -} -else -{ - echo '

L\'identifiant de la catégorie à modifier n\'est pas défini

'; -} -?> diff --git a/edit_message.php b/edit_message.php deleted file mode 100644 index 1aa79f8..0000000 --- a/edit_message.php +++ /dev/null @@ -1,156 +0,0 @@ -0) -{ -if($_SESSION['userid']==$dn1['authorid'] or $_SESSION['username']==$admin) -{ -include('bbcode_function.php'); -?> - - - - - - - - - - Festiv'Algo - Editer un message - - - -
- -
- -
-
- Index du forum > > > Modifier -
- -
-
- -
Le message a bien été modifié.
- Retourner au sujet
- -
- - - -
-
- -
-
- -
- -
- - -
- - - -Vous n\'avez pas le droit de modifier ce message.'; -} -} -else -{ - echo '

Le message que vous désirez modifier n\'existe pas.

'; -} -} -else -{ -?> -

Vous devez être connecté pour accéder à cette page:

-
-
-
-
- -
- -
-
-
-Un identifiant du message que vous désirez modifier n\'est pas défini.'; -} -?> \ No newline at end of file diff --git a/edit_profile.php b/edit_profile.php deleted file mode 100644 index 8d5aa11..0000000 --- a/edit_profile.php +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - Modifier ses informations personnelles - - -
- Espace Membre -
-
- -
-
- Index du forum > Modifier ses informations personnelles -
- -
-
-=6) - { - if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email'])) - { - $username = mysql_real_escape_string($_POST['username']); - $password = mysql_real_escape_string($_POST['password']); - $email = mysql_real_escape_string($_POST['email']); - $avatar = mysql_real_escape_string($_POST['avatar']); - $dn = mysql_fetch_array(mysql_query('select count(*) as nb from users where username="'.$username.'"')); - if($dn['nb']==0 or $_POST['username']==$_SESSION['username']) - { - if(mysql_query('update users set username="'.$username.'", password="'.$password.'", email="'.$email.'", avatar="'.$avatar.'" where id="'.mysql_real_escape_string($_SESSION['userid']).'"')) - { - $form = false; - unset($_SESSION['username'], $_SESSION['userid']); -?> -
Vos informations ont bien été modififée. Vous devez vous reconnecter.
-Se connecter
-'.$message.''; - } - if(isset($_POST['username'],$_POST['password'],$_POST['email'])) - { - $username = htmlentities($_POST['username'], ENT_QUOTES, 'UTF-8'); - if($_POST['password']==$_POST['passverif']) - { - $password = htmlentities($_POST['password'], ENT_QUOTES, 'UTF-8'); - } - else - { - $password = ''; - } - $email = htmlentities($_POST['email'], ENT_QUOTES, 'UTF-8'); - $avatar = htmlentities($_POST['avatar'], ENT_QUOTES, 'UTF-8'); - } - else - { - $dnn = mysql_fetch_array(mysql_query('select username,password,email,avatar from users where username="'.$_SESSION['username'].'"')); - $username = htmlentities($dnn['username'], ENT_QUOTES, 'UTF-8'); - $password = htmlentities($dnn['password'], ENT_QUOTES, 'UTF-8'); - $email = htmlentities($dnn['email'], ENT_QUOTES, 'UTF-8'); - $avatar = htmlentities($dnn['avatar'], ENT_QUOTES, 'UTF-8'); - } -?> -
- Vous pouvez modifier vos informations:
-
-
-
-
-
-
- -
-
- - -
Pour accéder à cette page, vous devez être connecté.
-
-
-
-
- -
- -
-
-
- -
-
Simple PHP forum Script - Support du Web
- - diff --git a/exemples.php b/exemples.php index b25a11a..0ab2f1a 100644 --- a/exemples.php +++ b/exemples.php @@ -1,5 +1,128 @@ 'Algorithme d\'Euclide', + 'auteur' => 'Nitrosax', + 'description' => 'Calcule le Plus Grand Commun Diviseur entre deux nombres entiers.', + 'programme' => '
Lire A
+
Lire B
+
Tant_que B ≠ 0
+
R Prend_la_valeur B * Partie_décimale(A/B)
+
A Prend_la_valeur B
+
B prend_la_valeur R
+
Fin_Tant_que
+
Afficher "PGCD :"
+
Afficher A
' + ], + [ + 'titre' => 'Plus ou moins', + 'auteur' => 'Paul', + 'description' => 'Petit jeu où il faut deviner un nombre.', + 'programme' => '
Afficher "Nombre maximal ?"
+
Lire A
+
A Prend_la_valeur Partie_entière (Hasard (a))
+
B Prend_la_valeur -1
+
Tant_que B ≠ A
+
Lire B
+
Si B = A
+
Alors Afficher "Well done"
+
Sinon Si B ≤ A
+
Alors Afficher " +"
+
Sinon Afficher "-"
+
Fin_si
+
Fin_si
+
Fin_Tant_que
', + ], + [ + 'titre' => 'Suite de Syracuse', + 'auteur' => 'Nitrosax', + 'description' => 'Affiche les termes de la suite de Syracuse en fonction du nombre de départ choisi par l\'utilisateur.', + 'programme' => '
Lire A
+
Tant_que A > 1
+
Si Partie_décimale (A/2) = 0
+
Alors A Prend_la_valeur A/2
+
Sinon A Prend_la_valeur 3*A+1
+
Fin_si
+
Afficher A
+
Fin_Tant_que
+
Afficher A
', + ], + [ + 'titre' => 'Suite de Fibonacci', + 'auteur' => 'Dark-Storm', + 'description' => 'Cet algorithme calcule les N premiers termes de la suite de Fibonacci. N est rentré par l\'utilisateur. +La suite de Fibonacci sert à déterminer une approximation du nombre d\'Or en divisant un terme par le terme précédent.', + 'programme' => '
A Prend_la_valeur 0
+
B Prend_la_valeur 1
+
C Prend_la_valeur 0
+
Lire N
+
Pour D Allant_de 1 à N
+
C Prend_la_valeur A+B
+
A Prend_la_valeur B
+
B Prend_la_valeur C
+
Afficher C
+
Fin_Pour
', + ], + [ + 'titre' => 'Suite géométrique', + 'auteur' => 'domPayeur', + 'description' => 'Une toute petite contribution pour essayer Festiv\'Algo. +Le programme génère les termes u_1, u_2 ... u_n d\'une suite géométrique avec un rappel de cours.', + 'programme' => '
Afficher " Programme suite géométrique"
+
Afficher " Un+1=q* Un"
+
Afficher " Un=Uo*q^n"
+
Afficher " ce programme calcule Un quand Uo et q sont connus "
+
Afficher "Saisir N"
+
Lire N
+
Afficher "Saisir Uo"
+
Lire U
+
Afficher "Saisir Q"
+
Lire Q
+
Pour I Allant_de 1 à n
+
U Prend_la_valeur u*q
+
Afficher "U="
+
Afficher U
+
Fin_Pour
', +], [ + 'titre' => 'Méthode de Monte Carlo ', + 'auteur' => 'domPayeur', + 'description' => 'Le hasard et la loi des grands nombres (ou stabilisation de la fréquence) pour déterminer une valeur approchée de PI. +Le principe: +Un point est généré de manière aléatoire dans un carré de côté 1. +On calcule la distance séparant ce point de l\'un des sommets du carré. +Si cette distance est inférieure à 1, le point est alors à l\'intérieur du quart de disque de rayon 1 ayant pour centre ce sommet. +L\'aire du quart de disque est Pi/4 et la fréquence d\'apparition du point dans ce quart de disque se stabilise pour un grand nombre de lancers autour de la valeur théorique qui est la probabilité de cet événement: ici le rapport aire du quart de disque / aire du carré soit ( Pi/4)/1 donc Pi/4; il ne reste plus qu\'à multiplier par 4 pour obtenir une valeur approchée de Pi.', + 'programme' => '
Afficher "Méthode de Monte-Carlo"
+
Afficher "Valeur approchée de pi"
+
Afficher "Grâce au rand !"
+
D Prend_la_valeur 0
+
Pour I Allant_de 1 à 10000
+
X Prend_la_valeur Hasard (1)
+
Y Prend_la_valeur Hasard (1)
+
L Prend_la_valeur X*X+Y*Y
+
Si (L < 1)
+
Alors D Prend_la_valeur D+1
+
Fin_si
+
V Prend_la_valeur 4*D/I
+
Afficher V
+
Fin_Pour
+
Fin_programme
', + ], + [ + 'titre' => 'R.O.C. du Bac S', + 'auteur' => 'Nitrosax', + 'description' => 'Une restitution organisée de connaissance que les candidats du Bac S doivent connaître par coeur. Elle permet de montrer que pour tout nombre A rentré par l\'utilisateur, il existe un rang N tel que Un > A. L\'exemple utilise la suite : Un = 3^N.', + 'programme' => '
Lire A
+
N Prend_la_valeur 0
+
Tant_que 3^n ≤ A
+
N Prend_la_valeur N+1
+
Fin_Tant_que
+
Afficher N
' + ] +]; + ?> @@ -21,8 +144,7 @@ include('config.php');
query('select id, titre, auteur, description from exemples ORDER BY titre ASC'); - while ($dnn = $stmt->fetch()) + foreach ($db_examples as $key => $dnn) { ?>
@@ -30,7 +152,10 @@ include('config.php');

Auteur :

Description :


- Tester cet algorithme +
+ + +
diff --git a/forum.php b/forum.php deleted file mode 100644 index f5c7aca..0000000 --- a/forum.php +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - Festiv'Algo - forum - - - - - -
- - -
- - - - - - Nouvelle Catégorie - - - - - - Nouvelle Catégorie - - - - - - - - - - - - - - - - - - - - -
CatégorieSujetsRéponsesAction
-
Delete - 1){ ?>Faire Monter - Faire Descendre - Edit
-
- -
- - - diff --git a/ie8.php b/ie8.php deleted file mode 100644 index bab0b1b..0000000 --- a/ie8.php +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - Festiv'Algo - Navigateur obsolète - - - - Votre navigateur est obsolète et est incapable d'afficher correctement ce site (comme une majorité de sites).
- Pour accéder à cette page, merci de le mettre à jour ici.

- contact@festivalgo.fr - - \ No newline at end of file diff --git a/index.php b/index.php index 2853dc0..8c86df1 100644 --- a/index.php +++ b/index.php @@ -1,21 +1,11 @@ @@ -89,25 +79,10 @@
@@ -173,7 +148,6 @@

- Publier cet algorithme diff --git a/init.php b/init.php index 1d42a7e..63cbe47 100644 --- a/init.php +++ b/init.php @@ -1,15 +1,3 @@ 0) - { - $_SESSION['username'] = $_COOKIE['username']; - $_SESSION['userid'] = $dn_cnn['id']; - } -} -?> \ No newline at end of file diff --git a/lien.php b/lien.php deleted file mode 100644 index 2235f8f..0000000 --- a/lien.php +++ /dev/null @@ -1 +0,0 @@ -Lien diff --git a/list_pm.php b/list_pm.php deleted file mode 100644 index 1cf783b..0000000 --- a/list_pm.php +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - Festiv'Algo - Messages Personnels - - -
- - -
- -
-
- Index du forum > Messages Personnels -
- -
-
-Nouveau message privé
-

Messages non-lus():

- - - - - - - - - - - - - - - - - - - -
TitreRéponsesExpéditeurDate d'envoi
Vous n'avez aucun message non-lu.
-
-

Messages lus():

- - - - - - - - - - - - - - - - - - - -
TitreRéponsesExpéditeurDate d'envoi
Vous n'avez aucun message lu.
- -Vous devez être connecté pour accéder à cette page. - - -
- -
- - \ No newline at end of file diff --git a/list_topics.php b/list_topics.php deleted file mode 100644 index a94c2ed..0000000 --- a/list_topics.php +++ /dev/null @@ -1,127 +0,0 @@ -0) -{ -?> - - - - - - - Festiv'Algo - <?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?> - - - - - -
- -
- - - -
- - -
-
- - Nouveau Sujet -0) -{ -?> - - - - - - - - - - - - - - - - - - - -
SujetAuteurRéponsesAction
Delete
- -
Cette catégorie ne contient aucun sujet.
- -
-
- - - -La catégorie que vous désirez visiter n\'existe pas.'; -} -} -else -{ - echo '

L\'identifiant de la catégorie que vous désirez visiter n\'est pas défini.

'; -} -?> diff --git a/login.php b/login.php deleted file mode 100644 index dc4471b..0000000 --- a/login.php +++ /dev/null @@ -1,61 +0,0 @@ -0) - { - $form = false; - $_SESSION['username'] = $_POST['username']; - $_SESSION['userid'] = $dn['id']; - if(isset($_POST['memorize']) and $_POST['memorize']=='yes') - { - $one_year = time()+(60*60*24*365); - setcookie('username', $_POST['username'], $one_year); - setcookie('password', sha1($password), $one_year); - } - } - else - { - $form = true; - } - } - else - { - $form = true; - } - if($form) - { -if(isset($message)) -{ - echo '
'.$message.'
'; -} -$nb_new_pm = mysql_fetch_array(mysql_query('select count(*) as nb_new_pm from pm where ((user1="'.$_SESSION['userid'].'" and user1read="no") or (user2="'.$_SESSION['userid'].'" and user2read="no")) and id2="1"')); -$nb_new_pm = $nb_new_pm['nb_new_pm']; - } -} - -echo ''; -?> \ No newline at end of file diff --git a/mail.php b/mail.php deleted file mode 100644 index 08fc121..0000000 --- a/mail.php +++ /dev/null @@ -1,2343 +0,0 @@ -IsSMTP(); - $mail->Host='localhost'; - $mail->Port = 25; - $mail->SMTPAuth = true; - $mail->Username = 'festivalgo.contact@gmail.com'; - $mail->Password = 'studio3607'; - $mail->IsHTML(true); - $mail->CharSet = 'UTF-8'; - $mail->From ='festivalgo.contact@gmail.com'; - $mail->FromName = "Festiv'Algo"; - $mail->AddAddress($adresse); - $mail->Subject=$sujet; - $mail->Body=$message; - if(!$mail->Send()) { - $_REQUEST['error'] = $mail->ErrorInfo; - } - $mail->SmtpClose(); - unset($mail); - } - -/*~ class.phpmailer.php -.---------------------------------------------------------------------------. -| Software: PHPMailer - PHP email class | -| Version: 5.1 | -| Contact: via sourceforge.net support pages (also www.worxware.com) | -| Info: http://phpmailer.sourceforge.net | -| Support: http://sourceforge.net/projects/phpmailer/ | -| ------------------------------------------------------------------------- | -| Admin: Andy Prevost (project admininistrator) | -| Authors: Andy Prevost (codeworxtech) codeworxtech@users.sourceforge.net | -| : Marcus Bointon (coolbru) coolbru@users.sourceforge.net | -| Founder: Brent R. Matzelle (original founder) | -| Copyright (c) 2004-2009, Andy Prevost. All Rights Reserved. | -| Copyright (c) 2001-2003, Brent R. Matzelle | -| ------------------------------------------------------------------------- | -| License: Distributed under the Lesser General Public License (LGPL) | -| http://www.gnu.org/copyleft/lesser.html | -| This program is distributed in the hope that it will be useful - WITHOUT | -| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | -| FITNESS FOR A PARTICULAR PURPOSE. | -| ------------------------------------------------------------------------- | -| We offer a number of paid services (www.worxware.com): | -| - Web Hosting on highly optimized fast and secure servers | -| - Technology Consulting | -| - Oursourcing (highly qualified programmers and graphic designers) | -'---------------------------------------------------------------------------' -*/ - -/** - * PHPMailer - PHP email transport class - * NOTE: Requires PHP version 5 or later - * @package PHPMailer - * @author Andy Prevost - * @author Marcus Bointon - * @copyright 2004 - 2009 Andy Prevost - * @version $Id: class.phpmailer.php 447 2009-05-25 01:36:38Z codeworxtech $ - * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License - */ - -if (version_compare(PHP_VERSION, '5.0.0', '<') ) exit("Sorry, this version of PHPMailer will only run on PHP version 5 or greater!\n"); - -class PHPMailer { - - ///////////////////////////////////////////////// - // PROPERTIES, PUBLIC - ///////////////////////////////////////////////// - - /** - * Email priority (1 = High, 3 = Normal, 5 = low). - * @var int - */ - public $Priority = 3; - - /** - * Sets the CharSet of the message. - * @var string - */ - public $CharSet = 'iso-8859-1'; - - /** - * Sets the Content-type of the message. - * @var string - */ - public $ContentType = 'text/plain'; - - /** - * Sets the Encoding of the message. Options for this are - * "8bit", "7bit", "binary", "base64", and "quoted-printable". - * @var string - */ - public $Encoding = '8bit'; - - /** - * Holds the most recent mailer error message. - * @var string - */ - public $ErrorInfo = ''; - - /** - * Sets the From email address for the message. - * @var string - */ - public $From = 'root@localhost'; - - /** - * Sets the From name of the message. - * @var string - */ - public $FromName = 'Root User'; - - /** - * Sets the Sender email (Return-Path) of the message. If not empty, - * will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode. - * @var string - */ - public $Sender = ''; - - /** - * Sets the Subject of the message. - * @var string - */ - public $Subject = ''; - - /** - * Sets the Body of the message. This can be either an HTML or text body. - * If HTML then run IsHTML(true). - * @var string - */ - public $Body = ''; - - /** - * Sets the text-only body of the message. This automatically sets the - * email to multipart/alternative. This body can be read by mail - * clients that do not have HTML email capability such as mutt. Clients - * that can read HTML will view the normal Body. - * @var string - */ - public $AltBody = ''; - - /** - * Sets word wrapping on the body of the message to a given number of - * characters. - * @var int - */ - public $WordWrap = 0; - - /** - * Method to send mail: ("mail", "sendmail", or "smtp"). - * @var string - */ - public $Mailer = 'mail'; - - /** - * Sets the path of the sendmail program. - * @var string - */ - public $Sendmail = '/usr/sbin/sendmail'; - - /** - * Path to PHPMailer plugins. Useful if the SMTP class - * is in a different directory than the PHP include path. - * @var string - */ - public $PluginDir = ''; - - /** - * Sets the email address that a reading confirmation will be sent. - * @var string - */ - public $ConfirmReadingTo = ''; - - /** - * Sets the hostname to use in Message-Id and Received headers - * and as default HELO string. If empty, the value returned - * by SERVER_NAME is used or 'localhost.localdomain'. - * @var string - */ - public $Hostname = ''; - - /** - * Sets the message ID to be used in the Message-Id header. - * If empty, a unique id will be generated. - * @var string - */ - public $MessageID = ''; - - ///////////////////////////////////////////////// - // PROPERTIES FOR SMTP - ///////////////////////////////////////////////// - - /** - * Sets the SMTP hosts. All hosts must be separated by a - * semicolon. You can also specify a different port - * for each host by using this format: [hostname:port] - * (e.g. "smtp1.example.com:25;smtp2.example.com"). - * Hosts will be tried in order. - * @var string - */ - public $Host = 'localhost'; - - /** - * Sets the default SMTP server port. - * @var int - */ - public $Port = 25; - - /** - * Sets the SMTP HELO of the message (Default is $Hostname). - * @var string - */ - public $Helo = ''; - - /** - * Sets connection prefix. - * Options are "", "ssl" or "tls" - * @var string - */ - public $SMTPSecure = ''; - - /** - * Sets SMTP authentication. Utilizes the Username and Password variables. - * @var bool - */ - public $SMTPAuth = false; - - /** - * Sets SMTP username. - * @var string - */ - public $Username = ''; - - /** - * Sets SMTP password. - * @var string - */ - public $Password = ''; - - /** - * Sets the SMTP server timeout in seconds. - * This function will not work with the win32 version. - * @var int - */ - public $Timeout = 10; - - /** - * Sets SMTP class debugging on or off. - * @var bool - */ - public $SMTPDebug = false; - - /** - * Prevents the SMTP connection from being closed after each mail - * sending. If this is set to true then to close the connection - * requires an explicit call to SmtpClose(). - * @var bool - */ - public $SMTPKeepAlive = false; - - /** - * Provides the ability to have the TO field process individual - * emails, instead of sending to entire TO addresses - * @var bool - */ - public $SingleTo = false; - - /** - * If SingleTo is true, this provides the array to hold the email addresses - * @var bool - */ - public $SingleToArray = array(); - - /** - * Provides the ability to change the line ending - * @var string - */ - public $LE = "\n"; - - /** - * Used with DKIM DNS Resource Record - * @var string - */ - public $DKIM_selector = 'phpmailer'; - - /** - * Used with DKIM DNS Resource Record - * optional, in format of email address 'you@yourdomain.com' - * @var string - */ - public $DKIM_identity = ''; - - /** - * Used with DKIM DNS Resource Record - * optional, in format of email address 'you@yourdomain.com' - * @var string - */ - public $DKIM_domain = ''; - - /** - * Used with DKIM DNS Resource Record - * optional, in format of email address 'you@yourdomain.com' - * @var string - */ - public $DKIM_private = ''; - - /** - * Callback Action function name - * the function that handles the result of the send email action. Parameters: - * bool $result result of the send action - * string $to email address of the recipient - * string $cc cc email addresses - * string $bcc bcc email addresses - * string $subject the subject - * string $body the email body - * @var string - */ - public $action_function = ''; //'callbackAction'; - - /** - * Sets the PHPMailer Version number - * @var string - */ - public $Version = '5.1'; - - ///////////////////////////////////////////////// - // PROPERTIES, PRIVATE AND PROTECTED - ///////////////////////////////////////////////// - - private $smtp = NULL; - private $to = array(); - private $cc = array(); - private $bcc = array(); - private $ReplyTo = array(); - private $all_recipients = array(); - private $attachment = array(); - private $CustomHeader = array(); - private $message_type = ''; - private $boundary = array(); - protected $language = array(); - private $error_count = 0; - private $sign_cert_file = ""; - private $sign_key_file = ""; - private $sign_key_pass = ""; - private $exceptions = false; - - ///////////////////////////////////////////////// - // CONSTANTS - ///////////////////////////////////////////////// - - const STOP_MESSAGE = 0; // message only, continue processing - const STOP_CONTINUE = 1; // message?, likely ok to continue processing - const STOP_CRITICAL = 2; // message, plus full stop, critical error reached - - ///////////////////////////////////////////////// - // METHODS, VARIABLES - ///////////////////////////////////////////////// - - /** - * Constructor - * @param boolean $exceptions Should we throw external exceptions? - */ - public function __construct($exceptions = false) { - $this->exceptions = ($exceptions == true); - } - - /** - * Sets message type to HTML. - * @param bool $ishtml - * @return void - */ - public function IsHTML($ishtml = true) { - if ($ishtml) { - $this->ContentType = 'text/html'; - } else { - $this->ContentType = 'text/plain'; - } - } - - /** - * Sets Mailer to send message using SMTP. - * @return void - */ - public function IsSMTP() { - $this->Mailer = 'smtp'; - } - - /** - * Sets Mailer to send message using PHP mail() function. - * @return void - */ - public function IsMail() { - $this->Mailer = 'mail'; - } - - /** - * Sets Mailer to send message using the $Sendmail program. - * @return void - */ - public function IsSendmail() { - if (!stristr(ini_get('sendmail_path'), 'sendmail')) { - $this->Sendmail = '/var/qmail/bin/sendmail'; - } - $this->Mailer = 'sendmail'; - } - - /** - * Sets Mailer to send message using the qmail MTA. - * @return void - */ - public function IsQmail() { - if (stristr(ini_get('sendmail_path'), 'qmail')) { - $this->Sendmail = '/var/qmail/bin/sendmail'; - } - $this->Mailer = 'sendmail'; - } - - ///////////////////////////////////////////////// - // METHODS, RECIPIENTS - ///////////////////////////////////////////////// - - /** - * Adds a "To" address. - * @param string $address - * @param string $name - * @return boolean true on success, false if address already used - */ - public function AddAddress($address, $name = '') { - return $this->AddAnAddress('to', $address, $name); - } - - /** - * Adds a "Cc" address. - * Note: this function works with the SMTP mailer on win32, not with the "mail" mailer. - * @param string $address - * @param string $name - * @return boolean true on success, false if address already used - */ - public function AddCC($address, $name = '') { - return $this->AddAnAddress('cc', $address, $name); - } - - /** - * Adds a "Bcc" address. - * Note: this function works with the SMTP mailer on win32, not with the "mail" mailer. - * @param string $address - * @param string $name - * @return boolean true on success, false if address already used - */ - public function AddBCC($address, $name = '') { - return $this->AddAnAddress('bcc', $address, $name); - } - - /** - * Adds a "Reply-to" address. - * @param string $address - * @param string $name - * @return boolean - */ - public function AddReplyTo($address, $name = '') { - return $this->AddAnAddress('ReplyTo', $address, $name); - } - - /** - * Adds an address to one of the recipient arrays - * Addresses that have been added already return false, but do not throw exceptions - * @param string $kind One of 'to', 'cc', 'bcc', 'ReplyTo' - * @param string $address The email address to send to - * @param string $name - * @return boolean true on success, false if address already used or invalid in some way - * @access private - */ - private function AddAnAddress($kind, $address, $name = '') { - if (!preg_match('/^(to|cc|bcc|ReplyTo)$/', $kind)) { - echo 'Invalid recipient array: ' . kind; - return false; - } - $address = trim($address); - $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim - if (!self::ValidateAddress($address)) { - $this->SetError($this->Lang('invalid_address').': '. $address); - if ($this->exceptions) { - throw new phpmailerException($this->Lang('invalid_address').': '.$address); - } - echo $this->Lang('invalid_address').': '.$address; - return false; - } - if ($kind != 'ReplyTo') { - if (!isset($this->all_recipients[strtolower($address)])) { - array_push($this->$kind, array($address, $name)); - $this->all_recipients[strtolower($address)] = true; - return true; - } - } else { - if (!array_key_exists(strtolower($address), $this->ReplyTo)) { - $this->ReplyTo[strtolower($address)] = array($address, $name); - return true; - } - } - return false; -} - -/** - * Set the From and FromName properties - * @param string $address - * @param string $name - * @return boolean - */ - public function SetFrom($address, $name = '',$auto=1) { - $address = trim($address); - $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim - if (!self::ValidateAddress($address)) { - $this->SetError($this->Lang('invalid_address').': '. $address); - if ($this->exceptions) { - throw new phpmailerException($this->Lang('invalid_address').': '.$address); - } - echo $this->Lang('invalid_address').': '.$address; - return false; - } - $this->From = $address; - $this->FromName = $name; - if ($auto) { - if (empty($this->ReplyTo)) { - $this->AddAnAddress('ReplyTo', $address, $name); - } - if (empty($this->Sender)) { - $this->Sender = $address; - } - } - return true; - } - - /** - * Check that a string looks roughly like an email address should - * Static so it can be used without instantiation - * Tries to use PHP built-in validator in the filter extension (from PHP 5.2), falls back to a reasonably competent regex validator - * Conforms approximately to RFC2822 - * @link http://www.hexillion.com/samples/#Regex Original pattern found here - * @param string $address The email address to check - * @return boolean - * @static - * @access public - */ - public static function ValidateAddress($address) { - if (function_exists('filter_var')) { //Introduced in PHP 5.2 - if(filter_var($address, FILTER_VALIDATE_EMAIL) === FALSE) { - return false; - } else { - return true; - } - } else { - return preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $address); - } - } - - ///////////////////////////////////////////////// - // METHODS, MAIL SENDING - ///////////////////////////////////////////////// - - /** - * Creates message and assigns Mailer. If the message is - * not sent successfully then it returns false. Use the ErrorInfo - * variable to view description of the error. - * @return bool - */ - public function Send() { - try { - if ((count($this->to) + count($this->cc) + count($this->bcc)) < 1) { - throw new phpmailerException($this->Lang('provide_address'), self::STOP_CRITICAL); - } - - // Set whether the message is multipart/alternative - if(!empty($this->AltBody)) { - $this->ContentType = 'multipart/alternative'; - } - - $this->error_count = 0; // reset errors - $this->SetMessageType(); - $header = $this->CreateHeader(); - $body = $this->CreateBody(); - - if (empty($this->Body)) { - throw new phpmailerException($this->Lang('empty_message'), self::STOP_CRITICAL); - } - - // digitally sign with DKIM if enabled - if ($this->DKIM_domain && $this->DKIM_private) { - $header_dkim = $this->DKIM_Add($header,$this->Subject,$body); - $header = str_replace("\r\n","\n",$header_dkim) . $header; - } - - // Choose the mailer and send through it - switch($this->Mailer) { - case 'sendmail': - return $this->SendmailSend($header, $body); - case 'smtp': - return $this->SmtpSend($header, $body); - default: - return $this->MailSend($header, $body); - } - - } catch (phpmailerException $e) { - $this->SetError($e->getMessage()); - if ($this->exceptions) { - throw $e; - } - echo $e->getMessage()."\n"; - return false; - } - } - - /** - * Sends mail using the $Sendmail program. - * @param string $header The message headers - * @param string $body The message body - * @access protected - * @return bool - */ - protected function SendmailSend($header, $body) { - if ($this->Sender != '') { - $sendmail = sprintf("%s -oi -f %s -t", escapeshellcmd($this->Sendmail), escapeshellarg($this->Sender)); - } else { - $sendmail = sprintf("%s -oi -t", escapeshellcmd($this->Sendmail)); - } - if ($this->SingleTo === true) { - foreach ($this->SingleToArray as $key => $val) { - if(!@$mail = popen($sendmail, 'w')) { - throw new phpmailerException($this->Lang('execute') . $this->Sendmail, self::STOP_CRITICAL); - } - fputs($mail, "To: " . $val . "\n"); - fputs($mail, $header); - fputs($mail, $body); - $result = pclose($mail); - // implement call back function if it exists - $isSent = ($result == 0) ? 1 : 0; - $this->doCallback($isSent,$val,$this->cc,$this->bcc,$this->Subject,$body); - if($result != 0) { - throw new phpmailerException($this->Lang('execute') . $this->Sendmail, self::STOP_CRITICAL); - } - } - } else { - if(!@$mail = popen($sendmail, 'w')) { - throw new phpmailerException($this->Lang('execute') . $this->Sendmail, self::STOP_CRITICAL); - } - fputs($mail, $header); - fputs($mail, $body); - $result = pclose($mail); - // implement call back function if it exists - $isSent = ($result == 0) ? 1 : 0; - $this->doCallback($isSent,$this->to,$this->cc,$this->bcc,$this->Subject,$body); - if($result != 0) { - throw new phpmailerException($this->Lang('execute') . $this->Sendmail, self::STOP_CRITICAL); - } - } - return true; - } - - /** - * Sends mail using the PHP mail() function. - * @param string $header The message headers - * @param string $body The message body - * @access protected - * @return bool - */ - protected function MailSend($header, $body) { - $toArr = array(); - foreach($this->to as $t) { - $toArr[] = $this->AddrFormat($t); - } - $to = implode(', ', $toArr); - - $params = sprintf("-oi -f %s", $this->Sender); - if ($this->Sender != '' && strlen(ini_get('safe_mode'))< 1) { - $old_from = ini_get('sendmail_from'); - ini_set('sendmail_from', $this->Sender); - if ($this->SingleTo === true && count($toArr) > 1) { - foreach ($toArr as $key => $val) { - $rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); - // implement call back function if it exists - $isSent = ($rt == 1) ? 1 : 0; - $this->doCallback($isSent,$val,$this->cc,$this->bcc,$this->Subject,$body); - } - } else { - $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); - // implement call back function if it exists - $isSent = ($rt == 1) ? 1 : 0; - $this->doCallback($isSent,$to,$this->cc,$this->bcc,$this->Subject,$body); - } - } else { - if ($this->SingleTo === true && count($toArr) > 1) { - foreach ($toArr as $key => $val) { - $rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); - // implement call back function if it exists - $isSent = ($rt == 1) ? 1 : 0; - $this->doCallback($isSent,$val,$this->cc,$this->bcc,$this->Subject,$body); - } - } else { - $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header); - // implement call back function if it exists - $isSent = ($rt == 1) ? 1 : 0; - $this->doCallback($isSent,$to,$this->cc,$this->bcc,$this->Subject,$body); - } - } - if (isset($old_from)) { - ini_set('sendmail_from', $old_from); - } - if(!$rt) { - throw new phpmailerException($this->Lang('instantiate'), self::STOP_CRITICAL); - } - return true; - } - - /** - * Sends mail via SMTP using PhpSMTP - * Returns false if there is a bad MAIL FROM, RCPT, or DATA input. - * @param string $header The message headers - * @param string $body The message body - * @uses SMTP - * @access protected - * @return bool - */ - protected function SmtpSend($header, $body) { - require_once $this->PluginDir . 'class.smtp.php'; - $bad_rcpt = array(); - - if(!$this->SmtpConnect()) { - throw new phpmailerException($this->Lang('smtp_connect_failed'), self::STOP_CRITICAL); - } - $smtp_from = ($this->Sender == '') ? $this->From : $this->Sender; - if(!$this->smtp->Mail($smtp_from)) { - throw new phpmailerException($this->Lang('from_failed') . $smtp_from, self::STOP_CRITICAL); - } - - // Attempt to send attach all recipients - foreach($this->to as $to) { - if (!$this->smtp->Recipient($to[0])) { - $bad_rcpt[] = $to[0]; - // implement call back function if it exists - $isSent = 0; - $this->doCallback($isSent,$to[0],'','',$this->Subject,$body); - } else { - // implement call back function if it exists - $isSent = 1; - $this->doCallback($isSent,$to[0],'','',$this->Subject,$body); - } - } - foreach($this->cc as $cc) { - if (!$this->smtp->Recipient($cc[0])) { - $bad_rcpt[] = $cc[0]; - // implement call back function if it exists - $isSent = 0; - $this->doCallback($isSent,'',$cc[0],'',$this->Subject,$body); - } else { - // implement call back function if it exists - $isSent = 1; - $this->doCallback($isSent,'',$cc[0],'',$this->Subject,$body); - } - } - foreach($this->bcc as $bcc) { - if (!$this->smtp->Recipient($bcc[0])) { - $bad_rcpt[] = $bcc[0]; - // implement call back function if it exists - $isSent = 0; - $this->doCallback($isSent,'','',$bcc[0],$this->Subject,$body); - } else { - // implement call back function if it exists - $isSent = 1; - $this->doCallback($isSent,'','',$bcc[0],$this->Subject,$body); - } - } - - - if (count($bad_rcpt) > 0 ) { //Create error message for any bad addresses - $badaddresses = implode(', ', $bad_rcpt); - throw new phpmailerException($this->Lang('recipients_failed') . $badaddresses); - } - if(!$this->smtp->Data($header . $body)) { - throw new phpmailerException($this->Lang('data_not_accepted'), self::STOP_CRITICAL); - } - if($this->SMTPKeepAlive == true) { - $this->smtp->Reset(); - } - return true; - } - - /** - * Initiates a connection to an SMTP server. - * Returns false if the operation failed. - * @uses SMTP - * @access public - * @return bool - */ - public function SmtpConnect() { - if(is_null($this->smtp)) { - $this->smtp = new SMTP(); - } - - $this->smtp->do_debug = $this->SMTPDebug; - $hosts = explode(';', $this->Host); - $index = 0; - $connection = $this->smtp->Connected(); - - // Retry while there is no connection - try { - while($index < count($hosts) && !$connection) { - $hostinfo = array(); - if (preg_match('/^(.+):([0-9]+)$/', $hosts[$index], $hostinfo)) { - $host = $hostinfo[1]; - $port = $hostinfo[2]; - } else { - $host = $hosts[$index]; - $port = $this->Port; - } - - $tls = ($this->SMTPSecure == 'tls'); - $ssl = ($this->SMTPSecure == 'ssl'); - - if ($this->smtp->Connect(($ssl ? 'ssl://':'').$host, $port, $this->Timeout)) { - - $hello = ($this->Helo != '' ? $this->Helo : $this->ServerHostname()); - $this->smtp->Hello($hello); - - if ($tls) { - if (!$this->smtp->StartTLS()) { - throw new phpmailerException($this->Lang('tls')); - } - - //We must resend HELO after tls negotiation - $this->smtp->Hello($hello); - } - - $connection = true; - if ($this->SMTPAuth) { - if (!$this->smtp->Authenticate($this->Username, $this->Password)) { - throw new phpmailerException($this->Lang('authenticate')); - } - } - } - $index++; - if (!$connection) { - throw new phpmailerException($this->Lang('connect_host')); - } - } - } catch (phpmailerException $e) { - $this->smtp->Reset(); - throw $e; - } - return true; - } - - /** - * Closes the active SMTP session if one exists. - * @return void - */ - public function SmtpClose() { - if(!is_null($this->smtp)) { - if($this->smtp->Connected()) { - $this->smtp->Quit(); - $this->smtp->Close(); - } - } - } - - /** - * Sets the language for all class error messages. - * Returns false if it cannot load the language file. The default language is English. - * @param string $langcode ISO 639-1 2-character language code (e.g. Portuguese: "br") - * @param string $lang_path Path to the language file directory - * @access public - */ - function SetLanguage($langcode = 'en', $lang_path = 'language/') { - //Define full set of translatable strings - $PHPMAILER_LANG = array( - 'provide_address' => 'You must provide at least one recipient email address.', - 'mailer_not_supported' => ' mailer is not supported.', - 'execute' => 'Could not execute: ', - 'instantiate' => 'Could not instantiate mail function.', - 'authenticate' => 'SMTP Error: Could not authenticate.', - 'from_failed' => 'The following From address failed: ', - 'recipients_failed' => 'SMTP Error: The following recipients failed: ', - 'data_not_accepted' => 'SMTP Error: Data not accepted.', - 'connect_host' => 'SMTP Error: Could not connect to SMTP host.', - 'file_access' => 'Could not access file: ', - 'file_open' => 'File Error: Could not open file: ', - 'encoding' => 'Unknown encoding: ', - 'signing' => 'Signing Error: ', - 'smtp_error' => 'SMTP server error: ', - 'empty_message' => 'Message body empty', - 'invalid_address' => 'Invalid address', - 'variable_set' => 'Cannot set or reset variable: ' - ); - //Overwrite language-specific strings. This way we'll never have missing translations - no more "language string failed to load"! - $l = true; - if ($langcode != 'en') { //There is no English translation file - $l = @include $lang_path.'phpmailer.lang-'.$langcode.'.php'; - } - $this->language = $PHPMAILER_LANG; - return ($l == true); //Returns false if language not found - } - - /** - * Return the current array of language strings - * @return array - */ - public function GetTranslations() { - return $this->language; - } - - ///////////////////////////////////////////////// - // METHODS, MESSAGE CREATION - ///////////////////////////////////////////////// - - /** - * Creates recipient headers. - * @access public - * @return string - */ - public function AddrAppend($type, $addr) { - $addr_str = $type . ': '; - $addresses = array(); - foreach ($addr as $a) { - $addresses[] = $this->AddrFormat($a); - } - $addr_str .= implode(', ', $addresses); - $addr_str .= $this->LE; - - return $addr_str; - } - - /** - * Formats an address correctly. - * @access public - * @return string - */ - public function AddrFormat($addr) { - if (empty($addr[1])) { - return $this->SecureHeader($addr[0]); - } else { - return $this->EncodeHeader($this->SecureHeader($addr[1]), 'phrase') . " <" . $this->SecureHeader($addr[0]) . ">"; - } - } - - /** - * Wraps message for use with mailers that do not - * automatically perform wrapping and for quoted-printable. - * Original written by philippe. - * @param string $message The message to wrap - * @param integer $length The line length to wrap to - * @param boolean $qp_mode Whether to run in Quoted-Printable mode - * @access public - * @return string - */ - public function WrapText($message, $length, $qp_mode = false) { - $soft_break = ($qp_mode) ? sprintf(" =%s", $this->LE) : $this->LE; - // If utf-8 encoding is used, we will need to make sure we don't - // split multibyte characters when we wrap - $is_utf8 = (strtolower($this->CharSet) == "utf-8"); - - $message = $this->FixEOL($message); - if (substr($message, -1) == $this->LE) { - $message = substr($message, 0, -1); - } - - $line = explode($this->LE, $message); - $message = ''; - for ($i=0 ;$i < count($line); $i++) { - $line_part = explode(' ', $line[$i]); - $buf = ''; - for ($e = 0; $e $length)) { - $space_left = $length - strlen($buf) - 1; - if ($e != 0) { - if ($space_left > 20) { - $len = $space_left; - if ($is_utf8) { - $len = $this->UTF8CharBoundary($word, $len); - } elseif (substr($word, $len - 1, 1) == "=") { - $len--; - } elseif (substr($word, $len - 2, 1) == "=") { - $len -= 2; - } - $part = substr($word, 0, $len); - $word = substr($word, $len); - $buf .= ' ' . $part; - $message .= $buf . sprintf("=%s", $this->LE); - } else { - $message .= $buf . $soft_break; - } - $buf = ''; - } - while (strlen($word) > 0) { - $len = $length; - if ($is_utf8) { - $len = $this->UTF8CharBoundary($word, $len); - } elseif (substr($word, $len - 1, 1) == "=") { - $len--; - } elseif (substr($word, $len - 2, 1) == "=") { - $len -= 2; - } - $part = substr($word, 0, $len); - $word = substr($word, $len); - - if (strlen($word) > 0) { - $message .= $part . sprintf("=%s", $this->LE); - } else { - $buf = $part; - } - } - } else { - $buf_o = $buf; - $buf .= ($e == 0) ? $word : (' ' . $word); - - if (strlen($buf) > $length and $buf_o != '') { - $message .= $buf_o . $soft_break; - $buf = $word; - } - } - } - $message .= $buf . $this->LE; - } - - return $message; - } - - /** - * Finds last character boundary prior to maxLength in a utf-8 - * quoted (printable) encoded string. - * Original written by Colin Brown. - * @access public - * @param string $encodedText utf-8 QP text - * @param int $maxLength find last character boundary prior to this length - * @return int - */ - public function UTF8CharBoundary($encodedText, $maxLength) { - $foundSplitPos = false; - $lookBack = 3; - while (!$foundSplitPos) { - $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack); - $encodedCharPos = strpos($lastChunk, "="); - if ($encodedCharPos !== false) { - // Found start of encoded character byte within $lookBack block. - // Check the encoded byte value (the 2 chars after the '=') - $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2); - $dec = hexdec($hex); - if ($dec < 128) { // Single byte character. - // If the encoded char was found at pos 0, it will fit - // otherwise reduce maxLength to start of the encoded char - $maxLength = ($encodedCharPos == 0) ? $maxLength : - $maxLength - ($lookBack - $encodedCharPos); - $foundSplitPos = true; - } elseif ($dec >= 192) { // First byte of a multi byte character - // Reduce maxLength to split at start of character - $maxLength = $maxLength - ($lookBack - $encodedCharPos); - $foundSplitPos = true; - } elseif ($dec < 192) { // Middle byte of a multi byte character, look further back - $lookBack += 3; - } - } else { - // No encoded character found - $foundSplitPos = true; - } - } - return $maxLength; - } - - - /** - * Set the body wrapping. - * @access public - * @return void - */ - public function SetWordWrap() { - if($this->WordWrap < 1) { - return; - } - - switch($this->message_type) { - case 'alt': - case 'alt_attachments': - $this->AltBody = $this->WrapText($this->AltBody, $this->WordWrap); - break; - default: - $this->Body = $this->WrapText($this->Body, $this->WordWrap); - break; - } - } - - /** - * Assembles message header. - * @access public - * @return string The assembled header - */ - public function CreateHeader() { - $result = ''; - - // Set the boundaries - $uniq_id = md5(uniqid(time())); - $this->boundary[1] = 'b1_' . $uniq_id; - $this->boundary[2] = 'b2_' . $uniq_id; - - $result .= $this->HeaderLine('Date', self::RFCDate()); - if($this->Sender == '') { - $result .= $this->HeaderLine('Return-Path', trim($this->From)); - } else { - $result .= $this->HeaderLine('Return-Path', trim($this->Sender)); - } - - // To be created automatically by mail() - if($this->Mailer != 'mail') { - if ($this->SingleTo === true) { - foreach($this->to as $t) { - $this->SingleToArray[] = $this->AddrFormat($t); - } - } else { - if(count($this->to) > 0) { - $result .= $this->AddrAppend('To', $this->to); - } elseif (count($this->cc) == 0) { - $result .= $this->HeaderLine('To', 'undisclosed-recipients:;'); - } - } - } - - $from = array(); - $from[0][0] = trim($this->From); - $from[0][1] = $this->FromName; - $result .= $this->AddrAppend('From', $from); - - // sendmail and mail() extract Cc from the header before sending - if(count($this->cc) > 0) { - $result .= $this->AddrAppend('Cc', $this->cc); - } - - // sendmail and mail() extract Bcc from the header before sending - if((($this->Mailer == 'sendmail') || ($this->Mailer == 'mail')) && (count($this->bcc) > 0)) { - $result .= $this->AddrAppend('Bcc', $this->bcc); - } - - if(count($this->ReplyTo) > 0) { - $result .= $this->AddrAppend('Reply-to', $this->ReplyTo); - } - - // mail() sets the subject itself - if($this->Mailer != 'mail') { - $result .= $this->HeaderLine('Subject', $this->EncodeHeader($this->SecureHeader($this->Subject))); - } - - if($this->MessageID != '') { - $result .= $this->HeaderLine('Message-ID',$this->MessageID); - } else { - $result .= sprintf("Message-ID: <%s@%s>%s", $uniq_id, $this->ServerHostname(), $this->LE); - } - $result .= $this->HeaderLine('X-Priority', $this->Priority); - $result .= $this->HeaderLine('X-Mailer', 'PHPMailer '.$this->Version.' (phpmailer.sourceforge.net)'); - - if($this->ConfirmReadingTo != '') { - $result .= $this->HeaderLine('Disposition-Notification-To', '<' . trim($this->ConfirmReadingTo) . '>'); - } - - // Add custom headers - for($index = 0; $index < count($this->CustomHeader); $index++) { - $result .= $this->HeaderLine(trim($this->CustomHeader[$index][0]), $this->EncodeHeader(trim($this->CustomHeader[$index][1]))); - } - if (!$this->sign_key_file) { - $result .= $this->HeaderLine('MIME-Version', '1.0'); - $result .= $this->GetMailMIME(); - } - - return $result; - } - - /** - * Returns the message MIME. - * @access public - * @return string - */ - public function GetMailMIME() { - $result = ''; - switch($this->message_type) { - case 'plain': - $result .= $this->HeaderLine('Content-Transfer-Encoding', $this->Encoding); - $result .= sprintf("Content-Type: %s; charset=\"%s\"", $this->ContentType, $this->CharSet); - break; - case 'attachments': - case 'alt_attachments': - if($this->InlineImageExists()){ - $result .= sprintf("Content-Type: %s;%s\ttype=\"text/html\";%s\tboundary=\"%s\"%s", 'multipart/related', $this->LE, $this->LE, $this->boundary[1], $this->LE); - } else { - $result .= $this->HeaderLine('Content-Type', 'multipart/mixed;'); - $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); - } - break; - case 'alt': - $result .= $this->HeaderLine('Content-Type', 'multipart/alternative;'); - $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); - break; - } - - if($this->Mailer != 'mail') { - $result .= $this->LE.$this->LE; - } - - return $result; - } - - /** - * Assembles the message body. Returns an empty string on failure. - * @access public - * @return string The assembled message body - */ - public function CreateBody() { - $body = ''; - - if ($this->sign_key_file) { - $body .= $this->GetMailMIME(); - } - - $this->SetWordWrap(); - - switch($this->message_type) { - case 'alt': - $body .= $this->GetBoundary($this->boundary[1], '', 'text/plain', ''); - $body .= $this->EncodeString($this->AltBody, $this->Encoding); - $body .= $this->LE.$this->LE; - $body .= $this->GetBoundary($this->boundary[1], '', 'text/html', ''); - $body .= $this->EncodeString($this->Body, $this->Encoding); - $body .= $this->LE.$this->LE; - $body .= $this->EndBoundary($this->boundary[1]); - break; - case 'plain': - $body .= $this->EncodeString($this->Body, $this->Encoding); - break; - case 'attachments': - $body .= $this->GetBoundary($this->boundary[1], '', '', ''); - $body .= $this->EncodeString($this->Body, $this->Encoding); - $body .= $this->LE; - $body .= $this->AttachAll(); - break; - case 'alt_attachments': - $body .= sprintf("--%s%s", $this->boundary[1], $this->LE); - $body .= sprintf("Content-Type: %s;%s" . "\tboundary=\"%s\"%s", 'multipart/alternative', $this->LE, $this->boundary[2], $this->LE.$this->LE); - $body .= $this->GetBoundary($this->boundary[2], '', 'text/plain', '') . $this->LE; // Create text body - $body .= $this->EncodeString($this->AltBody, $this->Encoding); - $body .= $this->LE.$this->LE; - $body .= $this->GetBoundary($this->boundary[2], '', 'text/html', '') . $this->LE; // Create the HTML body - $body .= $this->EncodeString($this->Body, $this->Encoding); - $body .= $this->LE.$this->LE; - $body .= $this->EndBoundary($this->boundary[2]); - $body .= $this->AttachAll(); - break; - } - - if ($this->IsError()) { - $body = ''; - } elseif ($this->sign_key_file) { - try { - $file = tempnam('', 'mail'); - file_put_contents($file, $body); //TODO check this worked - $signed = tempnam("", "signed"); - if (@openssl_pkcs7_sign($file, $signed, "file://".$this->sign_cert_file, array("file://".$this->sign_key_file, $this->sign_key_pass), NULL)) { - @unlink($file); - @unlink($signed); - $body = file_get_contents($signed); - } else { - @unlink($file); - @unlink($signed); - throw new phpmailerException($this->Lang("signing").openssl_error_string()); - } - } catch (phpmailerException $e) { - $body = ''; - if ($this->exceptions) { - throw $e; - } - } - } - - return $body; - } - - /** - * Returns the start of a message boundary. - * @access private - */ - private function GetBoundary($boundary, $charSet, $contentType, $encoding) { - $result = ''; - if($charSet == '') { - $charSet = $this->CharSet; - } - if($contentType == '') { - $contentType = $this->ContentType; - } - if($encoding == '') { - $encoding = $this->Encoding; - } - $result .= $this->TextLine('--' . $boundary); - $result .= sprintf("Content-Type: %s; charset = \"%s\"", $contentType, $charSet); - $result .= $this->LE; - $result .= $this->HeaderLine('Content-Transfer-Encoding', $encoding); - $result .= $this->LE; - - return $result; - } - - /** - * Returns the end of a message boundary. - * @access private - */ - private function EndBoundary($boundary) { - return $this->LE . '--' . $boundary . '--' . $this->LE; - } - - /** - * Sets the message type. - * @access private - * @return void - */ - private function SetMessageType() { - if(count($this->attachment) < 1 && strlen($this->AltBody) < 1) { - $this->message_type = 'plain'; - } else { - if(count($this->attachment) > 0) { - $this->message_type = 'attachments'; - } - if(strlen($this->AltBody) > 0 && count($this->attachment) < 1) { - $this->message_type = 'alt'; - } - if(strlen($this->AltBody) > 0 && count($this->attachment) > 0) { - $this->message_type = 'alt_attachments'; - } - } - } - - /** - * Returns a formatted header line. - * @access public - * @return string - */ - public function HeaderLine($name, $value) { - return $name . ': ' . $value . $this->LE; - } - - /** - * Returns a formatted mail line. - * @access public - * @return string - */ - public function TextLine($value) { - return $value . $this->LE; - } - - ///////////////////////////////////////////////// - // CLASS METHODS, ATTACHMENTS - ///////////////////////////////////////////////// - - /** - * Adds an attachment from a path on the filesystem. - * Returns false if the file could not be found - * or accessed. - * @param string $path Path to the attachment. - * @param string $name Overrides the attachment name. - * @param string $encoding File encoding (see $Encoding). - * @param string $type File extension (MIME) type. - * @return bool - */ - public function AddAttachment($path, $name = '', $encoding = 'base64', $type = 'application/octet-stream') { - try { - if ( !@is_file($path) ) { - throw new phpmailerException($this->Lang('file_access') . $path, self::STOP_CONTINUE); - } - $filename = basename($path); - if ( $name == '' ) { - $name = $filename; - } - - $this->attachment[] = array( - 0 => $path, - 1 => $filename, - 2 => $name, - 3 => $encoding, - 4 => $type, - 5 => false, // isStringAttachment - 6 => 'attachment', - 7 => 0 - ); - - } catch (phpmailerException $e) { - $this->SetError($e->getMessage()); - if ($this->exceptions) { - throw $e; - } - echo $e->getMessage()."\n"; - if ( $e->getCode() == self::STOP_CRITICAL ) { - return false; - } - } - return true; - } - - /** - * Return the current array of attachments - * @return array - */ - public function GetAttachments() { - return $this->attachment; - } - - /** - * Attaches all fs, string, and binary attachments to the message. - * Returns an empty string on failure. - * @access private - * @return string - */ - private function AttachAll() { - // Return text of body - $mime = array(); - $cidUniq = array(); - $incl = array(); - - // Add all attachments - foreach ($this->attachment as $attachment) { - // Check for string attachment - $bString = $attachment[5]; - if ($bString) { - $string = $attachment[0]; - } else { - $path = $attachment[0]; - } - - if (in_array($attachment[0], $incl)) { continue; } - $filename = $attachment[1]; - $name = $attachment[2]; - $encoding = $attachment[3]; - $type = $attachment[4]; - $disposition = $attachment[6]; - $cid = $attachment[7]; - $incl[] = $attachment[0]; - if ( $disposition == 'inline' && isset($cidUniq[$cid]) ) { continue; } - $cidUniq[$cid] = true; - - $mime[] = sprintf("--%s%s", $this->boundary[1], $this->LE); - $mime[] = sprintf("Content-Type: %s; name=\"%s\"%s", $type, $this->EncodeHeader($this->SecureHeader($name)), $this->LE); - $mime[] = sprintf("Content-Transfer-Encoding: %s%s", $encoding, $this->LE); - - if($disposition == 'inline') { - $mime[] = sprintf("Content-ID: <%s>%s", $cid, $this->LE); - } - - $mime[] = sprintf("Content-Disposition: %s; filename=\"%s\"%s", $disposition, $this->EncodeHeader($this->SecureHeader($name)), $this->LE.$this->LE); - - // Encode as string attachment - if($bString) { - $mime[] = $this->EncodeString($string, $encoding); - if($this->IsError()) { - return ''; - } - $mime[] = $this->LE.$this->LE; - } else { - $mime[] = $this->EncodeFile($path, $encoding); - if($this->IsError()) { - return ''; - } - $mime[] = $this->LE.$this->LE; - } - } - - $mime[] = sprintf("--%s--%s", $this->boundary[1], $this->LE); - - return join('', $mime); - } - - /** - * Encodes attachment in requested format. - * Returns an empty string on failure. - * @param string $path The full path to the file - * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable' - * @see EncodeFile() - * @access private - * @return string - */ - private function EncodeFile($path, $encoding = 'base64') { - try { - if (!is_readable($path)) { - throw new phpmailerException($this->Lang('file_open') . $path, self::STOP_CONTINUE); - } - if (function_exists('get_magic_quotes')) { - function get_magic_quotes() { - return false; - } - } - if (PHP_VERSION < 6) { - $magic_quotes = get_magic_quotes_runtime(); - set_magic_quotes_runtime(0); - } - $file_buffer = file_get_contents($path); - $file_buffer = $this->EncodeString($file_buffer, $encoding); - if (PHP_VERSION < 6) { set_magic_quotes_runtime($magic_quotes); } - return $file_buffer; - } catch (Exception $e) { - $this->SetError($e->getMessage()); - return ''; - } - } - - /** - * Encodes string to requested format. - * Returns an empty string on failure. - * @param string $str The text to encode - * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable' - * @access public - * @return string - */ - public function EncodeString ($str, $encoding = 'base64') { - $encoded = ''; - switch(strtolower($encoding)) { - case 'base64': - $encoded = chunk_split(base64_encode($str), 76, $this->LE); - break; - case '7bit': - case '8bit': - $encoded = $this->FixEOL($str); - //Make sure it ends with a line break - if (substr($encoded, -(strlen($this->LE))) != $this->LE) - $encoded .= $this->LE; - break; - case 'binary': - $encoded = $str; - break; - case 'quoted-printable': - $encoded = $this->EncodeQP($str); - break; - default: - $this->SetError($this->Lang('encoding') . $encoding); - break; - } - return $encoded; - } - - /** - * Encode a header string to best (shortest) of Q, B, quoted or none. - * @access public - * @return string - */ - public function EncodeHeader($str, $position = 'text') { - $x = 0; - - switch (strtolower($position)) { - case 'phrase': - if (!preg_match('/[\200-\377]/', $str)) { - // Can't use addslashes as we don't know what value has magic_quotes_sybase - $encoded = addcslashes($str, "\0..\37\177\\\""); - if (($str == $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) { - return ($encoded); - } else { - return ("\"$encoded\""); - } - } - $x = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches); - break; - case 'comment': - $x = preg_match_all('/[()"]/', $str, $matches); - // Fall-through - case 'text': - default: - $x += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches); - break; - } - - if ($x == 0) { - return ($str); - } - - $maxlen = 75 - 7 - strlen($this->CharSet); - // Try to select the encoding which should produce the shortest output - if (strlen($str)/3 < $x) { - $encoding = 'B'; - if (function_exists('mb_strlen') && $this->HasMultiBytes($str)) { - // Use a custom function which correctly encodes and wraps long - // multibyte strings without breaking lines within a character - $encoded = $this->Base64EncodeWrapMB($str); - } else { - $encoded = base64_encode($str); - $maxlen -= $maxlen % 4; - $encoded = trim(chunk_split($encoded, $maxlen, "\n")); - } - } else { - $encoding = 'Q'; - $encoded = $this->EncodeQ($str, $position); - $encoded = $this->WrapText($encoded, $maxlen, true); - $encoded = str_replace('='.$this->LE, "\n", trim($encoded)); - } - - $encoded = preg_replace('/^(.*)$/m', " =?".$this->CharSet."?$encoding?\\1?=", $encoded); - $encoded = trim(str_replace("\n", $this->LE, $encoded)); - - return $encoded; - } - - /** - * Checks if a string contains multibyte characters. - * @access public - * @param string $str multi-byte text to wrap encode - * @return bool - */ - public function HasMultiBytes($str) { - if (function_exists('mb_strlen')) { - return (strlen($str) > mb_strlen($str, $this->CharSet)); - } else { // Assume no multibytes (we can't handle without mbstring functions anyway) - return false; - } - } - - /** - * Correctly encodes and wraps long multibyte strings for mail headers - * without breaking lines within a character. - * Adapted from a function by paravoid at http://uk.php.net/manual/en/function.mb-encode-mimeheader.php - * @access public - * @param string $str multi-byte text to wrap encode - * @return string - */ - public function Base64EncodeWrapMB($str) { - $start = "=?".$this->CharSet."?B?"; - $end = "?="; - $encoded = ""; - - $mb_length = mb_strlen($str, $this->CharSet); - // Each line must have length <= 75, including $start and $end - $length = 75 - strlen($start) - strlen($end); - // Average multi-byte ratio - $ratio = $mb_length / strlen($str); - // Base64 has a 4:3 ratio - $offset = $avgLength = floor($length * $ratio * .75); - - for ($i = 0; $i < $mb_length; $i += $offset) { - $lookBack = 0; - - do { - $offset = $avgLength - $lookBack; - $chunk = mb_substr($str, $i, $offset, $this->CharSet); - $chunk = base64_encode($chunk); - $lookBack++; - } - while (strlen($chunk) > $length); - - $encoded .= $chunk . $this->LE; - } - - // Chomp the last linefeed - $encoded = substr($encoded, 0, -strlen($this->LE)); - return $encoded; - } - - /** - * Encode string to quoted-printable. - * Only uses standard PHP, slow, but will always work - * @access public - * @param string $string the text to encode - * @param integer $line_max Number of chars allowed on a line before wrapping - * @return string - */ - public function EncodeQPphp( $input = '', $line_max = 76, $space_conv = false) { - $hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'); - $lines = preg_split('/(?:\r\n|\r|\n)/', $input); - $eol = "\r\n"; - $escape = '='; - $output = ''; - while( list(, $line) = each($lines) ) { - $linlen = strlen($line); - $newline = ''; - for($i = 0; $i < $linlen; $i++) { - $c = substr( $line, $i, 1 ); - $dec = ord( $c ); - if ( ( $i == 0 ) && ( $dec == 46 ) ) { // convert first point in the line into =2E - $c = '=2E'; - } - if ( $dec == 32 ) { - if ( $i == ( $linlen - 1 ) ) { // convert space at eol only - $c = '=20'; - } else if ( $space_conv ) { - $c = '=20'; - } - } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { // always encode "\t", which is *not* required - $h2 = floor($dec/16); - $h1 = floor($dec%16); - $c = $escape.$hex[$h2].$hex[$h1]; - } - if ( (strlen($newline) + strlen($c)) >= $line_max ) { // CRLF is not counted - $output .= $newline.$escape.$eol; // soft line break; " =\r\n" is okay - $newline = ''; - // check if newline first character will be point or not - if ( $dec == 46 ) { - $c = '=2E'; - } - } - $newline .= $c; - } // end of for - $output .= $newline.$eol; - } // end of while - return $output; - } - - /** - * Encode string to RFC2045 (6.7) quoted-printable format - * Uses a PHP5 stream filter to do the encoding about 64x faster than the old version - * Also results in same content as you started with after decoding - * @see EncodeQPphp() - * @access public - * @param string $string the text to encode - * @param integer $line_max Number of chars allowed on a line before wrapping - * @param boolean $space_conv Dummy param for compatibility with existing EncodeQP function - * @return string - * @author Marcus Bointon - */ - public function EncodeQP($string, $line_max = 76, $space_conv = false) { - if (function_exists('quoted_printable_encode')) { //Use native function if it's available (>= PHP5.3) - return quoted_printable_encode($string); - } - $filters = stream_get_filters(); - if (!in_array('convert.*', $filters)) { //Got convert stream filter? - return $this->EncodeQPphp($string, $line_max, $space_conv); //Fall back to old implementation - } - $fp = fopen('php://temp/', 'r+'); - $string = preg_replace('/\r\n?/', $this->LE, $string); //Normalise line breaks - $params = array('line-length' => $line_max, 'line-break-chars' => $this->LE); - $s = stream_filter_append($fp, 'convert.quoted-printable-encode', STREAM_FILTER_READ, $params); - fputs($fp, $string); - rewind($fp); - $out = stream_get_contents($fp); - stream_filter_remove($s); - $out = preg_replace('/^\./m', '=2E', $out); //Encode . if it is first char on a line, workaround for bug in Exchange - fclose($fp); - return $out; - } - - /** - * Encode string to q encoding. - * @link http://tools.ietf.org/html/rfc2047 - * @param string $str the text to encode - * @param string $position Where the text is going to be used, see the RFC for what that means - * @access public - * @return string - */ - public function EncodeQ ($str, $position = 'text') { - // There should not be any EOL in the string - $encoded = preg_replace('/[\r\n]*/', '', $str); - - switch (strtolower($position)) { - case 'phrase': - $encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); - break; - case 'comment': - $encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); - case 'text': - default: - // Replace every high ascii, control =, ? and _ characters - //TODO using /e (equivalent to eval()) is probably not a good idea - $encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e', - "'='.sprintf('%02X', ord('\\1'))", $encoded); - break; - } - - // Replace every spaces to _ (more readable than =20) - $encoded = str_replace(' ', '_', $encoded); - - return $encoded; - } - - /** - * Adds a string or binary attachment (non-filesystem) to the list. - * This method can be used to attach ascii or binary data, - * such as a BLOB record from a database. - * @param string $string String attachment data. - * @param string $filename Name of the attachment. - * @param string $encoding File encoding (see $Encoding). - * @param string $type File extension (MIME) type. - * @return void - */ - public function AddStringAttachment($string, $filename, $encoding = 'base64', $type = 'application/octet-stream') { - // Append to $attachment array - $this->attachment[] = array( - 0 => $string, - 1 => $filename, - 2 => basename($filename), - 3 => $encoding, - 4 => $type, - 5 => true, // isStringAttachment - 6 => 'attachment', - 7 => 0 - ); - } - - /** - * Adds an embedded attachment. This can include images, sounds, and - * just about any other document. Make sure to set the $type to an - * image type. For JPEG images use "image/jpeg" and for GIF images - * use "image/gif". - * @param string $path Path to the attachment. - * @param string $cid Content ID of the attachment. Use this to identify - * the Id for accessing the image in an HTML form. - * @param string $name Overrides the attachment name. - * @param string $encoding File encoding (see $Encoding). - * @param string $type File extension (MIME) type. - * @return bool - */ - public function AddEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = 'application/octet-stream') { - - if ( !@is_file($path) ) { - $this->SetError($this->Lang('file_access') . $path); - return false; - } - - $filename = basename($path); - if ( $name == '' ) { - $name = $filename; - } - - // Append to $attachment array - $this->attachment[] = array( - 0 => $path, - 1 => $filename, - 2 => $name, - 3 => $encoding, - 4 => $type, - 5 => false, // isStringAttachment - 6 => 'inline', - 7 => $cid - ); - - return true; - } - - /** - * Returns true if an inline attachment is present. - * @access public - * @return bool - */ - public function InlineImageExists() { - foreach($this->attachment as $attachment) { - if ($attachment[6] == 'inline') { - return true; - } - } - return false; - } - - ///////////////////////////////////////////////// - // CLASS METHODS, MESSAGE RESET - ///////////////////////////////////////////////// - - /** - * Clears all recipients assigned in the TO array. Returns void. - * @return void - */ - public function ClearAddresses() { - foreach($this->to as $to) { - unset($this->all_recipients[strtolower($to[0])]); - } - $this->to = array(); - } - - /** - * Clears all recipients assigned in the CC array. Returns void. - * @return void - */ - public function ClearCCs() { - foreach($this->cc as $cc) { - unset($this->all_recipients[strtolower($cc[0])]); - } - $this->cc = array(); - } - - /** - * Clears all recipients assigned in the BCC array. Returns void. - * @return void - */ - public function ClearBCCs() { - foreach($this->bcc as $bcc) { - unset($this->all_recipients[strtolower($bcc[0])]); - } - $this->bcc = array(); - } - - /** - * Clears all recipients assigned in the ReplyTo array. Returns void. - * @return void - */ - public function ClearReplyTos() { - $this->ReplyTo = array(); - } - - /** - * Clears all recipients assigned in the TO, CC and BCC - * array. Returns void. - * @return void - */ - public function ClearAllRecipients() { - $this->to = array(); - $this->cc = array(); - $this->bcc = array(); - $this->all_recipients = array(); - } - - /** - * Clears all previously set filesystem, string, and binary - * attachments. Returns void. - * @return void - */ - public function ClearAttachments() { - $this->attachment = array(); - } - - /** - * Clears all custom headers. Returns void. - * @return void - */ - public function ClearCustomHeaders() { - $this->CustomHeader = array(); - } - - ///////////////////////////////////////////////// - // CLASS METHODS, MISCELLANEOUS - ///////////////////////////////////////////////// - - /** - * Adds the error message to the error container. - * @access protected - * @return void - */ - protected function SetError($msg) { - $this->error_count++; - if ($this->Mailer == 'smtp' and !is_null($this->smtp)) { - $lasterror = $this->smtp->getError(); - if (!empty($lasterror) and array_key_exists('smtp_msg', $lasterror)) { - $msg .= '

' . $this->Lang('smtp_error') . $lasterror['smtp_msg'] . "

\n"; - } - } - $this->ErrorInfo = $msg; - } - - /** - * Returns the proper RFC 822 formatted date. - * @access public - * @return string - * @static - */ - public static function RFCDate() { - $tz = date('Z'); - $tzs = ($tz < 0) ? '-' : '+'; - $tz = abs($tz); - $tz = (int)($tz/3600)*100 + ($tz%3600)/60; - $result = sprintf("%s %s%04d", date('D, j M Y H:i:s'), $tzs, $tz); - - return $result; - } - - /** - * Returns the server hostname or 'localhost.localdomain' if unknown. - * @access private - * @return string - */ - private function ServerHostname() { - if (!empty($this->Hostname)) { - $result = $this->Hostname; - } elseif (isset($_SERVER['SERVER_NAME'])) { - $result = $_SERVER['SERVER_NAME']; - } else { - $result = 'localhost.localdomain'; - } - - return $result; - } - - /** - * Returns a message in the appropriate language. - * @access private - * @return string - */ - private function Lang($key) { - if(count($this->language) < 1) { - $this->SetLanguage('en'); // set the default language - } - - if(isset($this->language[$key])) { - return $this->language[$key]; - } else { - return 'Language string failed to load: ' . $key; - } - } - - /** - * Returns true if an error occurred. - * @access public - * @return bool - */ - public function IsError() { - return ($this->error_count > 0); - } - - /** - * Changes every end of line from CR or LF to CRLF. - * @access private - * @return string - */ - private function FixEOL($str) { - $str = str_replace("\r\n", "\n", $str); - $str = str_replace("\r", "\n", $str); - $str = str_replace("\n", $this->LE, $str); - return $str; - } - - /** - * Adds a custom header. - * @access public - * @return void - */ - public function AddCustomHeader($custom_header) { - $this->CustomHeader[] = explode(':', $custom_header, 2); - } - - /** - * Evaluates the message and returns modifications for inline images and backgrounds - * @access public - * @return $message - */ - public function MsgHTML($message, $basedir = '') { - preg_match_all("/(src|background)=\"(.*)\"/Ui", $message, $images); - if(isset($images[2])) { - foreach($images[2] as $i => $url) { - // do not change urls for absolute images (thanks to corvuscorax) - if (!preg_match('#^[A-z]+://#',$url)) { - $filename = basename($url); - $directory = dirname($url); - ($directory == '.')?$directory='':''; - $cid = 'cid:' . md5($filename); - $ext = pathinfo($filename, PATHINFO_EXTENSION); - $mimeType = self::_mime_types($ext); - if ( strlen($basedir) > 1 && substr($basedir,-1) != '/') { $basedir .= '/'; } - if ( strlen($directory) > 1 && substr($directory,-1) != '/') { $directory .= '/'; } - if ( $this->AddEmbeddedImage($basedir.$directory.$filename, md5($filename), $filename, 'base64',$mimeType) ) { - $message = preg_replace("/".$images[1][$i]."=\"".preg_quote($url, '/')."\"/Ui", $images[1][$i]."=\"".$cid."\"", $message); - } - } - } - } - $this->IsHTML(true); - $this->Body = $message; - $textMsg = trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/s','',$message))); - if (!empty($textMsg) && empty($this->AltBody)) { - $this->AltBody = html_entity_decode($textMsg); - } - if (empty($this->AltBody)) { - $this->AltBody = 'To view this email message, open it in a program that understands HTML!' . "\n\n"; - } - } - - /** - * Gets the MIME type of the embedded or inline image - * @param string File extension - * @access public - * @return string MIME type of ext - * @static - */ - public static function _mime_types($ext = '') { - $mimes = array( - 'hqx' => 'application/mac-binhex40', - 'cpt' => 'application/mac-compactpro', - 'doc' => 'application/msword', - 'bin' => 'application/macbinary', - 'dms' => 'application/octet-stream', - 'lha' => 'application/octet-stream', - 'lzh' => 'application/octet-stream', - 'exe' => 'application/octet-stream', - 'class' => 'application/octet-stream', - 'psd' => 'application/octet-stream', - 'so' => 'application/octet-stream', - 'sea' => 'application/octet-stream', - 'dll' => 'application/octet-stream', - 'oda' => 'application/oda', - 'pdf' => 'application/pdf', - 'ai' => 'application/postscript', - 'eps' => 'application/postscript', - 'ps' => 'application/postscript', - 'smi' => 'application/smil', - 'smil' => 'application/smil', - 'mif' => 'application/vnd.mif', - 'xls' => 'application/vnd.ms-excel', - 'ppt' => 'application/vnd.ms-powerpoint', - 'wbxml' => 'application/vnd.wap.wbxml', - 'wmlc' => 'application/vnd.wap.wmlc', - 'dcr' => 'application/x-director', - 'dir' => 'application/x-director', - 'dxr' => 'application/x-director', - 'dvi' => 'application/x-dvi', - 'gtar' => 'application/x-gtar', - 'php' => 'application/x-httpd-php', - 'php4' => 'application/x-httpd-php', - 'php3' => 'application/x-httpd-php', - 'phtml' => 'application/x-httpd-php', - 'phps' => 'application/x-httpd-php-source', - 'js' => 'application/x-javascript', - 'swf' => 'application/x-shockwave-flash', - 'sit' => 'application/x-stuffit', - 'tar' => 'application/x-tar', - 'tgz' => 'application/x-tar', - 'xhtml' => 'application/xhtml+xml', - 'xht' => 'application/xhtml+xml', - 'zip' => 'application/zip', - 'mid' => 'audio/midi', - 'midi' => 'audio/midi', - 'mpga' => 'audio/mpeg', - 'mp2' => 'audio/mpeg', - 'mp3' => 'audio/mpeg', - 'aif' => 'audio/x-aiff', - 'aiff' => 'audio/x-aiff', - 'aifc' => 'audio/x-aiff', - 'ram' => 'audio/x-pn-realaudio', - 'rm' => 'audio/x-pn-realaudio', - 'rpm' => 'audio/x-pn-realaudio-plugin', - 'ra' => 'audio/x-realaudio', - 'rv' => 'video/vnd.rn-realvideo', - 'wav' => 'audio/x-wav', - 'bmp' => 'image/bmp', - 'gif' => 'image/gif', - 'jpeg' => 'image/jpeg', - 'jpg' => 'image/jpeg', - 'jpe' => 'image/jpeg', - 'png' => 'image/png', - 'tiff' => 'image/tiff', - 'tif' => 'image/tiff', - 'css' => 'text/css', - 'html' => 'text/html', - 'htm' => 'text/html', - 'shtml' => 'text/html', - 'txt' => 'text/plain', - 'text' => 'text/plain', - 'log' => 'text/plain', - 'rtx' => 'text/richtext', - 'rtf' => 'text/rtf', - 'xml' => 'text/xml', - 'xsl' => 'text/xml', - 'mpeg' => 'video/mpeg', - 'mpg' => 'video/mpeg', - 'mpe' => 'video/mpeg', - 'qt' => 'video/quicktime', - 'mov' => 'video/quicktime', - 'avi' => 'video/x-msvideo', - 'movie' => 'video/x-sgi-movie', - 'doc' => 'application/msword', - 'word' => 'application/msword', - 'xl' => 'application/excel', - 'eml' => 'message/rfc822' - ); - return (!isset($mimes[strtolower($ext)])) ? 'application/octet-stream' : $mimes[strtolower($ext)]; - } - - /** - * Set (or reset) Class Objects (variables) - * - * Usage Example: - * $page->set('X-Priority', '3'); - * - * @access public - * @param string $name Parameter Name - * @param mixed $value Parameter Value - * NOTE: will not work with arrays, there are no arrays to set/reset - * @todo Should this not be using __set() magic function? - */ - public function set($name, $value = '') { - try { - if (isset($this->$name) ) { - $this->$name = $value; - } else { - throw new phpmailerException($this->Lang('variable_set') . $name, self::STOP_CRITICAL); - } - } catch (Exception $e) { - $this->SetError($e->getMessage()); - if ($e->getCode() == self::STOP_CRITICAL) { - return false; - } - } - return true; - } - - /** - * Strips newlines to prevent header injection. - * @access public - * @param string $str String - * @return string - */ - public function SecureHeader($str) { - $str = str_replace("\r", '', $str); - $str = str_replace("\n", '', $str); - return trim($str); - } - - /** - * Set the private key file and password to sign the message. - * - * @access public - * @param string $key_filename Parameter File Name - * @param string $key_pass Password for private key - */ - public function Sign($cert_filename, $key_filename, $key_pass) { - $this->sign_cert_file = $cert_filename; - $this->sign_key_file = $key_filename; - $this->sign_key_pass = $key_pass; - } - - /** - * Set the private key file and password to sign the message. - * - * @access public - * @param string $key_filename Parameter File Name - * @param string $key_pass Password for private key - */ - public function DKIM_QP($txt) { - $tmp=""; - $line=""; - for ($i=0;$iDKIM_private); - if ($this->DKIM_passphrase!='') { - $privKey = openssl_pkey_get_private($privKeyStr,$this->DKIM_passphrase); - } else { - $privKey = $privKeyStr; - } - if (openssl_sign($s, $signature, $privKey)) { - return base64_encode($signature); - } - } - - /** - * Generate DKIM Canonicalization Header - * - * @access public - * @param string $s Header - */ - public function DKIM_HeaderC($s) { - $s=preg_replace("/\r\n\s+/"," ",$s); - $lines=explode("\r\n",$s); - foreach ($lines as $key=>$line) { - list($heading,$value)=explode(":",$line,2); - $heading=strtolower($heading); - $value=preg_replace("/\s+/"," ",$value) ; // Compress useless spaces - $lines[$key]=$heading.":".trim($value) ; // Don't forget to remove WSP around the value - } - $s=implode("\r\n",$lines); - return $s; - } - - /** - * Generate DKIM Canonicalization Body - * - * @access public - * @param string $body Message Body - */ - public function DKIM_BodyC($body) { - if ($body == '') return "\r\n"; - // stabilize line endings - $body=str_replace("\r\n","\n",$body); - $body=str_replace("\n","\r\n",$body); - // END stabilize line endings - while (substr($body,strlen($body)-4,4) == "\r\n\r\n") { - $body=substr($body,0,strlen($body)-2); - } - return $body; - } - - /** - * Create the DKIM header, body, as new header - * - * @access public - * @param string $headers_line Header lines - * @param string $subject Subject - * @param string $body Body - */ - public function DKIM_Add($headers_line,$subject,$body) { - $DKIMsignatureType = 'rsa-sha1'; // Signature & hash algorithms - $DKIMcanonicalization = 'relaxed/simple'; // Canonicalization of header/body - $DKIMquery = 'dns/txt'; // Query method - $DKIMtime = time() ; // Signature Timestamp = seconds since 00:00:00 - Jan 1, 1970 (UTC time zone) - $subject_header = "Subject: $subject"; - $headers = explode("\r\n",$headers_line); - foreach($headers as $header) { - if (strpos($header,'From:') === 0) { - $from_header=$header; - } elseif (strpos($header,'To:') === 0) { - $to_header=$header; - } - } - $from = str_replace('|','=7C',$this->DKIM_QP($from_header)); - $to = str_replace('|','=7C',$this->DKIM_QP($to_header)); - $subject = str_replace('|','=7C',$this->DKIM_QP($subject_header)) ; // Copied header fields (dkim-quoted-printable - $body = $this->DKIM_BodyC($body); - $DKIMlen = strlen($body) ; // Length of body - $DKIMb64 = base64_encode(pack("H*", sha1($body))) ; // Base64 of packed binary SHA-1 hash of body - $ident = ($this->DKIM_identity == '')? '' : " i=" . $this->DKIM_identity . ";"; - $dkimhdrs = "DKIM-Signature: v=1; a=" . $DKIMsignatureType . "; q=" . $DKIMquery . "; l=" . $DKIMlen . "; s=" . $this->DKIM_selector . ";\r\n". - "\tt=" . $DKIMtime . "; c=" . $DKIMcanonicalization . ";\r\n". - "\th=From:To:Subject;\r\n". - "\td=" . $this->DKIM_domain . ";" . $ident . "\r\n". - "\tz=$from\r\n". - "\t|$to\r\n". - "\t|$subject;\r\n". - "\tbh=" . $DKIMb64 . ";\r\n". - "\tb="; - $toSign = $this->DKIM_HeaderC($from_header . "\r\n" . $to_header . "\r\n" . $subject_header . "\r\n" . $dkimhdrs); - $signed = $this->DKIM_Sign($toSign); - return "X-PHPMAILER-DKIM: phpmailer.worxware.com\r\n".$dkimhdrs.$signed."\r\n"; - } - - protected function doCallback($isSent,$to,$cc,$bcc,$subject,$body) { - if (!empty($this->action_function) && function_exists($this->action_function)) { - $params = array($isSent,$to,$cc,$bcc,$subject,$body); - call_user_func_array($this->action_function,$params); - } - } -} - -class phpmailerException extends Exception { - public function errorMessage() { - $errorMsg = '' . $this->getMessage() . "
\n"; - return $errorMsg; - } -} -?> \ No newline at end of file diff --git a/menu.php b/menu.php index 3fda4e7..c6a0f5c 100644 --- a/menu.php +++ b/menu.php @@ -1,6 +1,3 @@ -
@@ -18,8 +15,7 @@

Programmation

Exemples

-

Forum

-

Aide

-

A propos

+

Aide

+

A propos

diff --git a/message_envoye.php b/message_envoye.php deleted file mode 100644 index d4973e4..0000000 --- a/message_envoye.php +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - Festiv'Algo - Contact - - - -
- -
- >> https://vmheb49238.ikoula.com:8443/smb/email-address/list# <<<"); - echo "
Votre Message à été envoyé.
Vous recevrez une réponse par mail.
"; - } - else - { - echo "
Vous n'avez pas rempli tous les champs du formulaire.
"; - } - ?> -
-
- - - \ No newline at end of file diff --git a/move_category.php b/move_category.php deleted file mode 100644 index 432e5e7..0000000 --- a/move_category.php +++ /dev/null @@ -1,64 +0,0 @@ -0) -{ -if(isset($_SESSION['username']) and $_SESSION['username']==$admin) -{ - if($action=='up') - { - if($dn1['position']>1) - { - if(mysql_query('update categories as c, categories as c2 set c.position=c.position-1, c2.position=c2.position+1 where c.id="'.$id.'" and c2.position=c.position-1')) - { - header('Location: '.$url_home); - } - else - { - echo 'Une erreur s\'est produite lors du déplacement de la catégorie.'; - } - } - else - { - echo '

L\'action que vous désirez effectuer est impossible.

'; - } - } - else - { - if($dn1['position']<$dn1['nb2']) - { - if(mysql_query('update categories as c, categories as c2 set c.position=c.position+1, c2.position=c2.position-1 where c.id="'.$id.'" and c2.position=c.position+1')) - { - header('Location: '.$url_home); - } - else - { - echo 'Une erreur s\'est produite lors du déplacement de la catégorie.'; - } - } - else - { - echo '

L\'action que vous désirez effectuer est impossible.

'; - } - } -} -else -{ - echo '

Vous devez être connecté en tant qu\'administrateur pour accéder à cette page: Connexion - Inscription

'; -} -} -else -{ - echo '

La catégorie que vous désirez déplacer n\'existe pas.

'; -} -} -else -{ - echo '

L\'identifiant de la catégorie ou la direction du déplacement ne sont pas définis.

'; -} -?> \ No newline at end of file diff --git a/new_category.php b/new_category.php deleted file mode 100644 index 617d284..0000000 --- a/new_category.php +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - Nouvelle catégorie - forum - - -
- forum -
-
- -
-
- Index du forum > Nouvelle catégorie -
- -
-
- -
La catégorie a bien été créée.
- Retourner à l'index du forum
- -
-
- (html accepté)
-
- -
- -
- - - -Vous devez être connecté en tant qu\'administrateur pour accéder à cette page: Connexion - Inscription'; -} -?> diff --git a/new_pm.php b/new_pm.php deleted file mode 100644 index 8a71771..0000000 --- a/new_pm.php +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - Festiv'Algo - Nouveau Message Personnel - - -
- - -
Le message a bien été envoyé.
- Liste de mes messages privés
- '.$error.'
'; -} -?> -
- -
-
- Index du forum > Messages Personnels > Nouveau Message -
- -
-
-

Nouveau message privé




-
-
-
-
- -
-
- -
Vous devez être connecté pour accéder à cette page.
- - -
- - - - - \ No newline at end of file diff --git a/new_reply.php b/new_reply.php deleted file mode 100644 index 293c41a..0000000 --- a/new_reply.php +++ /dev/null @@ -1,130 +0,0 @@ -0) -{ -?> - - - - - - - - - - Festiv'Algo - <?php echo htmlentities($dn1['title'], ENT_QUOTES, 'UTF-8'); ?> - - - -
- -
- -
-
- Index du forum > > > Répondre -
- -
-
-
" - .$_POST['message']."

-
>>> lien <<<
- "; - - send_mail("bruno-godefroy@sfr.fr", "Nouveau message sur Festiv'Algo", $message); - ?> -
Le message a bien été envoyé.
- Retourner au sujet
- -
-
- -
-
- -
- -
- - -
- - - -Le sujet auquel vous désirez répondre n\'existe pas.'; -} -} -else -{ -?> -

Vous devez être connecté pour accéder à cette page:

- -L\'identifiant du sujet auquel vous désirez répondre n\'est pas défini.'; -} -?> \ No newline at end of file diff --git a/new_topic.php b/new_topic.php deleted file mode 100644 index 180b88f..0000000 --- a/new_topic.php +++ /dev/null @@ -1,119 +0,0 @@ -0) -{ -?> - - - - - - - - - - Festiv'Algo - Nouveau Sujet - - - -
- -
- -
-
- Index du forum > > Nouveau Sujet -
- -
-
-
" - .$_POST['message']."

-
>>> lien <<<
- "; - - send_mail("bruno-godefroy@sfr.fr", "Nouveau topic sur Festiv'Algo", $message); - ?> -
Le sujet a bien été créé.
- Retourner au forum
- -
-

-
- -
-
- -
- -
-
- - - -La catégorie dans laquelle vous désirez ajouter un sujet n\'existe pas.'; -} -} -} -else -{ - echo '

L\'identifiant dans laquelle vous désirez ajouter un sujet n\'est pas défini.

'; -} -?> \ No newline at end of file diff --git a/profile.php b/profile.php deleted file mode 100644 index 6c489c0..0000000 --- a/profile.php +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - Festiv'Algo - Profil - - -
- - -
- - - - -0) - { - $dnn = mysql_fetch_array($dn); -?> - - - - - - -
-


- Statut :
- Date d'inscription :
- -
Envoyer un MP à "" - -
- -
- - \ No newline at end of file diff --git a/pub.php b/pub.php deleted file mode 100644 index 3f9d9fc..0000000 --- a/pub.php +++ /dev/null @@ -1,3 +0,0 @@ -
- -
diff --git a/publier.js b/publier.js deleted file mode 100644 index 8d22a25..0000000 --- a/publier.js +++ /dev/null @@ -1,81 +0,0 @@ -$(document).ready(function() { - var texte = readCookie("algorithme"); - - if(texte == "failed") - document.location.href="algo_soumis.php"; - - while(texte.indexOf("@") != -1) - texte = texte.replace("@",";"); - - var balises = [ - "", start); - - if(start != -1 && end != -1) - { - if(k < 13) - texte = texte.substring(0, start) + texte.substring(end + 1, texte.length); - else - texte = texte.substring(0, start) + balises[k].substring(0, balises[k].length - 1) + ">" + texte.substring(end + 1, texte.length); - } - } - } - - while(texte.indexOf("") != -1) - texte = texte.replace("","
"); - - while(texte.indexOf("") != -1) - texte = texte.replace("","
"); - - $('#code').replaceWith("
" + texte + "
"); - - while(texte.indexOf(";") != -1) - texte = texte.replace(";","@"); - - while(texte.indexOf("+") != -1) - texte = texte.replace("+","¤"); - - createCookie("algo",texte,1); -}); - -function readCookie(name) { - var nameEQ = name + "="; - var ca = document.cookie.split(';'); - for(var i=0;i < ca.length;i++) { - var c = ca[i]; - while (c.charAt(0)==' ') c = c.substring(1,c.length); - if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); - } - return null; -} - - -function createCookie(name,value,days) { - if (days) { - var date = new Date(); - date.setTime(date.getTime()+(days*24*60*60*1000)); - var expires = "; expires="+date.toGMTString(); - } - else var expires = ""; - document.cookie = name+"="+value; -} - \ No newline at end of file diff --git a/publier.php b/publier.php deleted file mode 100644 index ff81f46..0000000 --- a/publier.php +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - Festiv'Algo - Publier un algorithme - - - -
- -
-
-
-

Auteur

-
-

E-mail

-
-

Titre

-

-

Description

-

-

Algorithme

-



-
- En soumettant ainsi un algorithme, vous vous engagez à : -
    -
  • Avoir vérifié que celui-ci n'existe pas déjà dans les exemples
  • -
  • Posséder les droits sur cet algorithme
  • -
  • Avoir vérifié que cet algorithme fonctionne parfaitement
  • -
  • Ne divulguer aucune publicité ou contenu choquant.
  • -
-


- -
-
-
-
- - - \ No newline at end of file diff --git a/publier_admin.js b/publier_admin.js deleted file mode 100644 index cfb4ce3..0000000 --- a/publier_admin.js +++ /dev/null @@ -1,9 +0,0 @@ -function createCookie(name,value,days) { - if (days) { - var date = new Date(); - date.setTime(date.getTime()+(days*24*60*60*1000)); - var expires = "; expires="+date.toGMTString(); - } - else var expires = ""; - document.cookie = name+"="+value; -} \ No newline at end of file diff --git a/publier_admin.php b/publier_admin.php deleted file mode 100644 index c91b24a..0000000 --- a/publier_admin.php +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - Festiv'Algo - Publier un algorithme - - - -
- createCookie('last_algo','".$req['programme']."',30); createCookie('last_language',1,30);"; - ?> -
- -
-
- - - \ No newline at end of file diff --git a/read_pm.php b/read_pm.php deleted file mode 100644 index 18a6f71..0000000 --- a/read_pm.php +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - - - - - Festiv'Algo - Lecture d'un MP - - -
- - -
Votre message a bien été envoyé.
-Retour à la discussion
- -
Une erreur c'est produite lors de l'envoi du message.
-Retour à la discussion
- -
- - - - - -

- - - - - - - - - - - -
UtilisateurMessage
'; -} -?>
-

-

Répondre

-
-
-
- -
-
-
-Vous n\'avez pas le droit d\'accéder à cette page.
'; -} -} -else -{ - echo '
Ce message n\'existe pas.
'; -} -} -else -{ - echo '
L\'identifiant du message n\'est pas défini.
'; -} -} -else -{ -?> -
Vous devez être connecté pour accéder à cette page:
- - - - - - \ No newline at end of file diff --git a/read_topic.php b/read_topic.php deleted file mode 100644 index e6b3bff..0000000 --- a/read_topic.php +++ /dev/null @@ -1,112 +0,0 @@ -0) -{ -?> - - - - - - - - - - <?php echo htmlentities($dn1['title'], ENT_QUOTES, 'UTF-8'); ?> - <?php echo htmlentities($dn1['name'], ENT_QUOTES, 'UTF-8'); ?> - forum - - -
- -
- -
-
- Index du forum > > > Lecture -
- -
-
- -
-
- Index du forum > > > Lecture -
- -
-
- -



- - - - - - - - - - - - -
AuteurMessage
'; -} -?>
Modifier
-
-
- - Répondre - -
- -
- - - -La catégorie que vous désirez visiter n\'existe pas.'; -} -} -else -{ - echo '

L\'identifiant de la catégorie que vous désirez visiter n\'est pas défini.

'; -} -?> diff --git a/readme.txt b/readme.txt deleted file mode 100644 index e87d45b..0000000 --- a/readme.txt +++ /dev/null @@ -1,3 +0,0 @@ -Access to this directory is available only to you. -The directory cannot be accessed via any web or system services, so you can -store any private information here. \ No newline at end of file diff --git a/recaptchalib.php b/recaptchalib.php deleted file mode 100644 index 32c4f4d..0000000 --- a/recaptchalib.php +++ /dev/null @@ -1,277 +0,0 @@ - $value ) - $req .= $key . '=' . urlencode( stripslashes($value) ) . '&'; - - // Cut the last '&' - $req=substr($req,0,strlen($req)-1); - return $req; -} - - - -/** - * Submits an HTTP POST to a reCAPTCHA server - * @param string $host - * @param string $path - * @param array $data - * @param int port - * @return array response - */ -function _recaptcha_http_post($host, $path, $data, $port = 80) { - - $req = _recaptcha_qsencode ($data); - - $http_request = "POST $path HTTP/1.0\r\n"; - $http_request .= "Host: $host\r\n"; - $http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n"; - $http_request .= "Content-Length: " . strlen($req) . "\r\n"; - $http_request .= "User-Agent: reCAPTCHA/PHP\r\n"; - $http_request .= "\r\n"; - $http_request .= $req; - - $response = ''; - if( false == ( $fs = @fsockopen($host, $port, $errno, $errstr, 10) ) ) { - die ('Could not open socket'); - } - - fwrite($fs, $http_request); - - while ( !feof($fs) ) - $response .= fgets($fs, 1160); // One TCP-IP packet - fclose($fs); - $response = explode("\r\n\r\n", $response, 2); - - return $response; -} - - - -/** - * Gets the challenge HTML (javascript and non-javascript version). - * This is called from the browser, and the resulting reCAPTCHA HTML widget - * is embedded within the HTML form it was called from. - * @param string $pubkey A public key for reCAPTCHA - * @param string $error The error given by reCAPTCHA (optional, default is null) - * @param boolean $use_ssl Should the request be made over ssl? (optional, default is false) - - * @return string - The HTML to be embedded in the user's form. - */ -function recaptcha_get_html ($pubkey, $error = null, $use_ssl = false) -{ - if ($pubkey == null || $pubkey == '') { - die ("To use reCAPTCHA you must get an API key from https://www.google.com/recaptcha/admin/create"); - } - - if ($use_ssl) { - $server = RECAPTCHA_API_SECURE_SERVER; - } else { - $server = RECAPTCHA_API_SERVER; - } - - $errorpart = ""; - if ($error) { - $errorpart = "&error=" . $error; - } - return ' - - '; -} - - - - -/** - * A ReCaptchaResponse is returned from recaptcha_check_answer() - */ -class ReCaptchaResponse { - var $is_valid; - var $error; -} - - -/** - * Calls an HTTP POST function to verify if the user's guess was correct - * @param string $privkey - * @param string $remoteip - * @param string $challenge - * @param string $response - * @param array $extra_params an array of extra variables to post to the server - * @return ReCaptchaResponse - */ -function recaptcha_check_answer ($privkey, $remoteip, $challenge, $response, $extra_params = array()) -{ - if ($privkey == null || $privkey == '') { - die ("To use reCAPTCHA you must get an API key from https://www.google.com/recaptcha/admin/create"); - } - - if ($remoteip == null || $remoteip == '') { - die ("For security reasons, you must pass the remote ip to reCAPTCHA"); - } - - - - //discard spam submissions - if ($challenge == null || strlen($challenge) == 0 || $response == null || strlen($response) == 0) { - $recaptcha_response = new ReCaptchaResponse(); - $recaptcha_response->is_valid = false; - $recaptcha_response->error = 'incorrect-captcha-sol'; - return $recaptcha_response; - } - - $response = _recaptcha_http_post (RECAPTCHA_VERIFY_SERVER, "/recaptcha/api/verify", - array ( - 'privatekey' => $privkey, - 'remoteip' => $remoteip, - 'challenge' => $challenge, - 'response' => $response - ) + $extra_params - ); - - $answers = explode ("\n", $response [1]); - $recaptcha_response = new ReCaptchaResponse(); - - if (trim ($answers [0]) == 'true') { - $recaptcha_response->is_valid = true; - } - else { - $recaptcha_response->is_valid = false; - $recaptcha_response->error = $answers [1]; - } - return $recaptcha_response; - -} - -/** - * gets a URL where the user can sign up for reCAPTCHA. If your application - * has a configuration page where you enter a key, you should provide a link - * using this function. - * @param string $domain The domain where the page is hosted - * @param string $appname The name of your application - */ -function recaptcha_get_signup_url ($domain = null, $appname = null) { - return "https://www.google.com/recaptcha/admin/create?" . _recaptcha_qsencode (array ('domains' => $domain, 'app' => $appname)); -} - -function _recaptcha_aes_pad($val) { - $block_size = 16; - $numpad = $block_size - (strlen ($val) % $block_size); - return str_pad($val, strlen ($val) + $numpad, chr($numpad)); -} - -/* Mailhide related code */ - -function _recaptcha_aes_encrypt($val,$ky) { - if (! function_exists ("mcrypt_encrypt")) { - die ("To use reCAPTCHA Mailhide, you need to have the mcrypt php module installed."); - } - $mode=MCRYPT_MODE_CBC; - $enc=MCRYPT_RIJNDAEL_128; - $val=_recaptcha_aes_pad($val); - return mcrypt_encrypt($enc, $ky, $val, $mode, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"); -} - - -function _recaptcha_mailhide_urlbase64 ($x) { - return strtr(base64_encode ($x), '+/', '-_'); -} - -/* gets the reCAPTCHA Mailhide url for a given email, public key and private key */ -function recaptcha_mailhide_url($pubkey, $privkey, $email) { - if ($pubkey == '' || $pubkey == null || $privkey == "" || $privkey == null) { - die ("To use reCAPTCHA Mailhide, you have to sign up for a public and private key, " . - "you can do so at http://www.google.com/recaptcha/mailhide/apikey"); - } - - - $ky = pack('H*', $privkey); - $cryptmail = _recaptcha_aes_encrypt ($email, $ky); - - return "http://www.google.com/recaptcha/mailhide/d?k=" . $pubkey . "&c=" . _recaptcha_mailhide_urlbase64 ($cryptmail); -} - -/** - * gets the parts of the email to expose to the user. - * eg, given johndoe@example,com return ["john", "example.com"]. - * the email is then displayed as john...@example.com - */ -function _recaptcha_mailhide_email_parts ($email) { - $arr = preg_split("/@/", $email ); - - if (strlen ($arr[0]) <= 4) { - $arr[0] = substr ($arr[0], 0, 1); - } else if (strlen ($arr[0]) <= 6) { - $arr[0] = substr ($arr[0], 0, 3); - } else { - $arr[0] = substr ($arr[0], 0, 4); - } - return $arr; -} - -/** - * Gets html to display an email address given a public an private key. - * to get a key, go to: - * - * http://www.google.com/recaptcha/mailhide/apikey - */ -function recaptcha_mailhide_html($pubkey, $privkey, $email) { - $emailparts = _recaptcha_mailhide_email_parts ($email); - $url = recaptcha_mailhide_url ($pubkey, $privkey, $email); - - return htmlentities($emailparts[0]) . "...@" . htmlentities ($emailparts [1]); - -} - - -?> diff --git a/refus_publication.php b/refus_publication.php deleted file mode 100644 index 29566ce..0000000 --- a/refus_publication.php +++ /dev/null @@ -1,3 +0,0 @@ -
-Mot de passe -
\ No newline at end of file diff --git a/scene_en_chantier/KITCHENPOLICE.TTF b/scene_en_chantier/KITCHENPOLICE.TTF deleted file mode 100644 index 0385881..0000000 Binary files a/scene_en_chantier/KITCHENPOLICE.TTF and /dev/null differ diff --git a/scene_en_chantier/style.css b/scene_en_chantier/style.css deleted file mode 100644 index cf6b43a..0000000 --- a/scene_en_chantier/style.css +++ /dev/null @@ -1,6 +0,0 @@ - - - Untitled - -
@font-face {
font-family: 'titre';
src: url('./KITCHENPOLICE.TTF');
}

- diff --git a/signup.php b/signup.php deleted file mode 100644 index b42076c..0000000 --- a/signup.php +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - - - - - Festiv'Algo - Inscription - - -
- -is_valid) { - // What happens when the CAPTCHA was entered incorrectly - $form = true; - $message = 'Votre réponse au test anti-spam est incorrecte.'; - } else { - // Your code here to handle a successful verification - - //On enleve lechappement si get_magic_quotes_gpc est active - if(get_magic_quotes_gpc()) - { - $_POST['username'] = stripslashes($_POST['username']); - $_POST['password'] = stripslashes($_POST['password']); - $_POST['passverif'] = stripslashes($_POST['passverif']); - $_POST['email'] = stripslashes($_POST['email']); - } - if($_POST['password']==$_POST['passverif']) - { - if(strlen($_POST['password'])>=6) - { - if(preg_match('#^(([a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+\.?)*[a-z0-9!\#$%&\\\'*+/=?^_`{|}~-]+)@(([a-z0-9-_]+\.?)*[a-z0-9-_]+)\.[a-z]{2,}$#i',$_POST['email'])) - { - $username = mysql_real_escape_string($_POST['username']); - $password = mysql_real_escape_string($_POST['password']); - $email = mysql_real_escape_string($_POST['email']); - $dn = mysql_num_rows(mysql_query('select id from users where username="'.$username.'"')); - if($dn==0) - { - $dn2 = mysql_num_rows(mysql_query('select id from users')); - $id = $dn2+1; - //On enregistre les informations dans la base de donnee - if(mysql_query('insert into users(id, username, password, email, signup_date) values ('.$id.', "'.$username.'", "'.$password.'", "'.$email.'", "'.time().'")')) - { - $form = false; - - //echo ''; - echo '
Inscription effectuée avec succès !
Vous pouvez désormais vous connecter sur le forum
'; - - } - else - { - $form = true; - $message = 'Une erreur est survenue lors de l\'inscription.'; - } - } - else - { - $form = true; - $message = 'Un autre utilisateur utilise déjà ce nom.'; - } - } - else - { - $form = true; - $message = 'L\'adresse mail que vous avez entrée n\'est pas valide.'; - } - } - else - { - $form = true; - $message = 'Votre mot de passe contient moins de 6 caractères.'; - } - } - else - { - $form = true; - $message = 'Vos mots de passe ne sont pas identiques.'; - } - } -} -else -{ - $form = true; -} -if($form) -{ - if(isset($message)) - { - echo '
'.$message.'
'; - } - //On affiche le formulaire -?> -
-
-
- Index du forum > Inscription -
- -
-
-
-

Festiv'Algo est un site entièrement gratuit et sécurisé.
Il ne divulguera pas votre adresse mail et vos données personnelles.

-
-
-
-
-
- -
- ".recaptcha_get_html($publickey)."
"; - ?> -
-
- -
- - - - - \ No newline at end of file diff --git a/users.php b/users.php deleted file mode 100644 index 12baa58..0000000 --- a/users.php +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - - - - Festiv'Algo - Liste des membres - - -
- -
- -
-
- Index du forum > Liste des utilisateurs -
- -
-
- -
-
- Index du forum > Liste des utilisateurs -
- -
-
- - - - - - - - - - - - - -
Nom d'utilisateurStatut
-
-
- - - \ No newline at end of file