PHPIndex

This page lists files in the current directory. You can view content, get download/execute commands for Wget, Curl, or PowerShell, or filter the list using wildcards (e.g., `*.sh`).

admin
data
documentation
fic
file
img
inc
install
mobile
pages
photo
plugins
save
skins
.htaccess
wget 'https://lists2.roe3.org/guppy/.htaccess'
View Content
AddDefaultCharset UTF-8
<IfModule mod_headers.c>
Header set X-XSS-Protection "1; mode=block"
</IfModule>
### Blocage Iframes externes
 Header set X-Frame-Options SAMEORIGIN
### Accès au seul fichier index.php, les autres sont interdits
DirectoryIndex index.php
<IfDefine !Free>
 ### Interdire les .php/
 RewriteEngine On
 RewriteCond %{REQUEST_URI} ^/(.*).php/
 RewriteRule (.*) - [F]
 ### Filtre contre  XSS, Redirections HTTP, base64_encode, Variable PHP GLOBALS via URL
 ### Modifier VARIABLE _REQUEST via URL, Test de faille PHP, Injection SQL simple
 RewriteEngine On
 RewriteCond %{REQUEST_METHOD} (GET|POST) [NC]
 RewriteCond %{QUERY_STRING} ^(.*)(%3C|<)/?script(.*)$ [NC,OR]
 RewriteCond %{QUERY_STRING} ^(.*)(%3D|=)?javascript(%3A|:)(.*)$ [NC,OR]
 RewriteCond %{QUERY_STRING} ^(.*)document\.location\.href(.*)$ [OR]
 RewriteCond %{QUERY_STRING} ^.*(%24&x).* [NC,OR]
 RewriteCond %{QUERY_STRING} ^.*(127\.0).* [NC,OR]
 RewriteCond %{QUERY_STRING} ^(.*)(%3D|=)(https?|ftp|mosConfig)(%3A|:)//(.*)$ [NC,OR]
 ### Desactive les méthodes de requêtes TRACE TRACK DELETE
 RewriteEngine On
 RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|TRACK) [NC]
 RewriteRule ^.* - [F]
</IfDefine>
OPTIONS -Indexes
<Files ~ "^\.ht">
 Order allow,deny
 Deny from all
 Satisfy All
</Files>
### Interdire les autres types de fichier index
<Files ~ "^(index)\.(p?s?x?htm?|txt|aspx?|cfml?|cgi|pl|php[3-9]|jsp|xml)$">
order allow,deny
deny from all
</Files>
<Files ~ "\.(inc|dtb)$">
Order allow,deny
Deny from all
Satisfy all
</Files>
ErrorDocument 400 /error.php?err=400
ErrorDocument 403 /error.php?err=403
ErrorDocument 404 /error.php?err=404
ErrorDocument 500 /error.php?err=500
Manifest
wget 'https://lists2.roe3.org/guppy/Manifest'
View Content
[infos]
Nom='guppy60020'
Description="Contient les corrections et ajouts de la version 6.00.20.
Contain all fixes and addings from 6.00.20."
Version='12/11/2024'
Auteur='GuppY Team'

[check]
guppy_vmin='6.00.19'

[script]
include='renfilesantispam.inc'
function='rename_antispam_files'
agenda.php
wget 'https://lists2.roe3.org/guppy/agenda.php'
View Content
<?php
/*******************************************************************************
 *   Agenda
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2023 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.11 (March 09, 2023) : correction event display 
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/agenda.inc';
$gyagv  = new GY_agenda();
$result = $gyagv->AGV_ok($userprefs[1], $lng);
if (is_array($result)) {
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
	{
        htable1($topmess, $result[0].$tconfig, '100%');
	}
    else
        htable($topmess.'mmm', '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
if ($result == 1 ) 	$result = $gyagv->AGV_day($lng);
if ($result == 2 || $result == '') $result = $gyagv->AGV_month($lng);

$topmess = $gyagv->topmess;
$tconfig = $gyagv->tconfig;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
{
    htable1($topmess, $result[0].$tconfig, '100%');
}
else
    htable($topmess, '100%');
echo $result[1];
btable();
include CHEMIN.'inc/bpage.inc';
?>
articles.php
wget 'https://lists2.roe3.org/guppy/articles.php'
View Content
<?php
/*******************************************************************************
 *   Articles
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/articles.inc';
$gyart      = new GY_articles();
$result     = $gyart->ART_content();
$userprefs3 = $gyart->userprefs3;
$widepage   = $gyart->widepage;
$tconfig    = $gyart->tconfig;
$topmess    = $gyart->topmess;
if ($gyart->countit === false) {
    if ($site[10] != '') header('location:'.$site[3].'error.php?lng='.$lng.'&err=404');
    else header('HTTP/1.0 404 Not Found');
}
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($gyart->img.'<a href="'.$site[3].$gyart->urltitre.'" title="'.$web[511].'">'.$topmess.'</a>', 'ART'.$tconfig, '100%');
else
    htable($gyart->img.'<a href="'.$site[3].$gyart->urltitre.'" title="'.$web[511].'">'.$topmess.'</a>', '100%');
echo $gyart->txtart2;
btable();
$result = $gyart->ART_react();
if (!is_null($result)) {
    htable($result[0], '100%');
    echo $result[1];
    btable();
}
include 'inc/bpage.inc';
?>
blog.php
wget 'https://lists2.roe3.org/guppy/blog.php'
View Content
<?php
/*******************************************************************************
 *   Blog
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/blog.inc';
$gybl      = new GY_blog();
$gybl->typ = 'BL';
$result    = $gybl->BLS_ok($userprefs[1], $lng);
$tconfig   = $gybl->tconfig;
$topmess   = $gybl->topmess;
switch ($result[0]) {
case 'h0' : header('HTTP/1.0 403 Forbidden');
case 'h1' : header('location:'.$site[3].'error.php?lng='.$lng.'&err=404');
case 'h2' : header('HTTP/1.0 404 Not Found');
case 'BL' :
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gybl->BL_content();
$topmess = $gybl->topmess;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $gybl->typ.$tconfig, '100%');
else
    htable($topmess, '100%');
echo $gybl->txtart2;
btable();
include 'inc/bpage.inc';
?>
blogarch.php
wget 'https://lists2.roe3.org/guppy/blogarch.php'
View Content
<?php
/*******************************************************************************
 *   Archived Blog
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/blog.inc';
$gybl      = new GY_blog();
$gybl->typ = 'BGA';
$result    = $gybl->BLS_ok($userprefs[1], $lng);
$tconfig   = $gybl->tconfig;
$topmess   = $gybl->topmess;
switch ($result[0]) {
case 0 : header('HTTP/1.0 403 Forbidden'); break;
case 1 : header('location:'.$site[3].'error.php?lng='.$lng.'&err=404'); break;
case 2 : header('HTTP/1.0 404 Not Found'); break;
case 'BGA' :
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, 'BGA'.$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gybl->BLA_content();
$topmess = $gybl->topmess;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, 'BGA'.$tconfig, '100%');
else
    htable($topmess, '100%');
echo $gybl->txtart2;
btable();
include 'inc/bpage.inc';
?>
blogrss.php
wget 'https://lists2.roe3.org/guppy/blogrss.php'
View Content
<?php
/*******************************************************************************
 *   Blog
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/blog.inc';
$gybl      = new GY_blog();
$gybl->typ = 'BSS';
$result    = $gybl->BLS_ok($userprefs[1], $lng);
$tconfig   = $gybl->tconfig;
$topmess   = $gybl->topmess;
switch ($result[0]) {
case 0 : header('HTTP/1.0 403 Forbidden'); break;
case 1 : header('location:'.$site[3].'error.php?lng='.$lng.'&err=404'); break;
case 2 : header('HTTP/1.0 404 Not Found'); break;
case 'BSS' :
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gybl->BSS_content();
$topmess = $gybl->topmess;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
blogs.php
wget 'https://lists2.roe3.org/guppy/blogs.php'
View Content
<?php
/*******************************************************************************
 *   Blog
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/blog.inc';
$gybl      = new GY_blog();
$gybl->typ = 'BLS';
$result    = $gybl->BLS_ok($userprefs[1], $lng);
$tconfig   = $gybl->tconfig;
$topmess   = $gybl->topmess;
switch ($result[0]) {
case 'h0' : header('HTTP/1.0 403 Forbidden');
case 'h1' : header('location:'.$site[3].'error.php?lng='.$lng.'&err=404');
case 'h2' : header('HTTP/1.0 404 Not Found');
case 'BLS' :
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, 'BLS'.$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gybl->BLS_content();
$topmess = $gybl->topmess;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, 'BLS'.$tconfig, '100%');
else
    htable($topmess, '100%');
echo $gybl->txtart2;
btable();
include 'inc/bpage.inc';
?>
blogsarch.php
wget 'https://lists2.roe3.org/guppy/blogsarch.php'
View Content
<?php
/*******************************************************************************
 *   Archived Blog
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/blog.inc';
$gybl      = new GY_blog();
$gybl->typ = 'BGSA';
$result    = $gybl->BLS_ok($userprefs[1], $lng);
$tconfig   = $gybl->tconfig;
$topmess   = $gybl->topmess;
switch ($result[0]) {
case 0 : header('HTTP/1.0 403 Forbidden'); break;
case 1 : header('location:'.$site[3].'error.php?lng='.$lng.'&err=404'); break;
case 2 : header('HTTP/1.0 404 Not Found'); break;
case 'ABG' :
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, 'BGSA'.$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gybl->BLSA_content();
$topmess = $gybl->topmess;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, 'BGSA'.$tconfig, '100%');
else
    htable($topmess, '100%');
echo $gybl->txtart2;
btable();
include 'inc/bpage.inc';
?>
compte.php
wget 'https://lists2.roe3.org/guppy/compte.php'
View Content
<?php
/*******************************************************************************
 *   Account
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/user.inc';
$gyusr   = new GY_user();
$result  = $gyusr->CMPT_ok($userprefs[1], $lng);
$tconfig = $gyusr->tconfig;
if (!empty($result[0])) {
    $topmess = $gyusr->topmess;
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gyusr->CMPT_content();
$topmess = $gyusr->topmess;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
connect.php
wget 'https://lists2.roe3.org/guppy/connect.php'
View Content
<?php
/*******************************************************************************
 *   Connect User 
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/user.inc';
$gycnct  = new GY_user();
$result  = $gycnct->CNCT_ok($userprefs[1], $lng);
$tconfig = $gycnct->tconfig;
$topmess = $gycnct->topmess;
if (!empty($result[0])) {
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gycnct->CNCT_content();
$topmess = $gycnct->topmess;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
contact.php
wget 'https://lists2.roe3.org/guppy/contact.php'
View Content
<?php
/*******************************************************************************
 *   Form Advanced contact
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2023 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.15 (November 29, 2023) : Correction illegal variable
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';

$crypt   = isset($_POST['crypt']) ? strip_tags($_POST['crypt']) : NULL;
$cryptok = (!$crypt) ? false : chk_crypt($crypt);

$lng      = import('lng');
$ctconfig = import('ctconfig');
$ctconfig = empty($ctconfig) ? 'ctconfig' : $ctconfig;
$dbct     = SelectDBFieldsByField(ReadDBFields(CONFIGREP.'ctconfigs.dtb'), 1, $ctconfig);
$okct     = !empty($dbct) && $dbct[0][1] == $ctconfig && $dbct[0][2] == 'a' ? true : false;
if ($okct && is_file(CONFIGREP.$ctconfig.'.inc')) {
    include CONFIGREP.$ctconfig.'.inc';
} else {
    echo BeginJavascript().'
alert("STOP ! Config file not found !");
window.history.back();'.EndJavascript();
    die();
}

function FindIndexDBFields($fic, $submit0, $submit1, $submit2) {
    if (FileDBExist($fic)) {
        $DataDB = ReadDBFields($fic);
        for ($i = 0; $i < count($DataDB); $i++) {
            if (@stristr($DataDB[$i][0],$submit0)
            &&  @stristr($DataDB[$i][1],$submit1)
            &&  @stristr($DataDB[$i][2],$submit2)) {
                return $i;
            }
        }
    }
    return FALSE;
}

$t = ($lng == $lang[0]) ? 0 : 10 ;
$n = ($lng == $lang[0]) ? 3 : 4 ;

if (import('act', 'GET') != NULL) die('STOP ! Variable $act : illegal origine !');
$act       = import('act', 'POST');
$antispam  = import('antispam');
$ctrl_spam = import('code_pseudo', 'POST');
$tconfig   = $menuico[21] == 'ALL' ? import('tconfig', '', true, 0) : $menuico[21];

$REMOTE_ADDR = getIPadress($site[6] == 'on' ? (isset($_SERVER['HTTP_X_FORWARDED_FOR'])? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']): $_SERVER['REMOTE_ADDR']);
switch ($act) {
case NULL :
    $token      = uniqid(rand(), true);
    $token_time = time();
    setcookie(CTCT_COOKIE, $token.CONNECTOR.$token_time, time() + (30 * 60), '/', $_DOMAIN, $_SECURE, $_HTTPONLY);
    break;
case 'send' :
    $tokens = explode(CONNECTOR, $_COOKIE[CTCT_COOKIE]);
	if (empty($tokens[0]) || $tokens[1] < time() - (30 * 60)) {
        echo BeginJavascript().'
var sto = "'.str_replace('<br />', '\n', stripslashes($web[681])).'";
alert(sto);
'.EndJavascript();
        $act        = NULL;
        $token      = uniqid(rand(), true);
        $token_time = time();
        setcookie(CTCT_COOKIE, $token.CONNECTOR.$token_time, time() + (30 * 60), '/', $_DOMAIN, $_SECURE, $_HTTPONLY);
    }
	elseif ($tokens[1] + 2 > time()) {
        echo BeginJavascript().'
var sto = "'.str_replace('<br />', '\n', stripslashes($web[682])).'";
alert(sto);
'.EndJavascript();
        $act        = NULL;
        $token      = uniqid(rand(), true);
        $token_time = time();
        if (!isset($_COOKIE[CTCT_COOKIE]))
			setcookie(CTCT_COOKIE, $token.CONNECTOR.$token_time, time() + (30 * 60), '/', $_DOMAIN, $_SECURE, $_HTTPONLY);
    }
    break;
}

$form0 = import('form0');
$form1 = import('form1');
$form2 = import('form2');
$text1 = import('text1');
$text2 = import('text2');
$text3 = import('text3');
$text4 = import('text4');
$text5 = import('text5');
$text6 = import('text6');
$sel0  = import('sel0');
$rad0  = import('rad0');
$chk1  = import('chk1');
$chk2  = import('chk2');
$chk3  = import('chk3');
$chk4  = import('chk4');
$chkar = import('chkar');
$rgpd  = import('rgpd', 'POST', true, '');

require CHEMIN.'inc/ckeditor_config/editors_functions.php';
require_once CHEMIN.'inc/htmlpurifier/library/HTMLPurifier.auto.php';
$configpg = HTMLPurifier_Config::createDefault();
$configpg->set('HTML.Allowed', '
  p[class|id|style],div[class|id|style],strong,em,u,b,sub,sup,span[class|style],pre[class],blockquote[class|style],
  a[href|target|title|style],img[src|alt|style],ul[style],ol[start|style],li');
$configpg->set('Attr.AllowedFrameTargets', array('_blank', '_self'));
$purifier = new HTMLPurifier($configpg);
$ptxt     = import('ptxt', 'POST', FALSE);
$ptxt     = $purifier->purify(isAuthorImg($userprefs[1]) ? $ptxt : getPGTXT($ptxt));

if (!empty($ctrl_spam)) $act = null;

$topmess = $lng == $lang[0] ? $ctlbl0 : $ctlbl1;
$okmail  = false;
$typ     = TYP_MAIL;

$err_form1  = empty($form1) && $act == 'send';
$err_form11 = !$err_form1 && 1 != preg_match('/^.{2,40}$/', $form1) && $act == 'send';
$err_form2  = empty(checkEmail($form2)) && $act == 'send';
$err_txt1   = $chtxt[1] == 'fix' && empty($text1) && $act == 'send';
$err_txt2   = $chtxt[2] == 'fix' && empty($text2) && $act == 'send';
$err_txt3   = $chtxt[3] == 'fix' && empty($text3) && $act == 'send';
$err_txt4   = $chtxt[4] == 'fix' && empty($text4) && $act == 'send';
$err_txt5   = $chtxt[5] == 'fix' && empty($text5) && $act == 'send';
$err_txt6   = $chtxt[6] == 'fix' && empty($text6) && $act == 'send';
$err_crypt  = $serviz[100] != '0' && $serviz[95] == 'on' && ($userprefs[1] == '' || $serviz[98] == '') && !$cryptok && $act == 'send' ? true : false;
$err_ptxt   = empty($ptxt) && $act == 'send' ? true : false;
$err_rgpd   = !empty($serviz[177]) && empty($rgpd) && !OK_RGPD_date($userprefs[1]) && $act == 'send' ? true: false;

$erreur  = '';
$erreur .= $err_form1  ? '<li>'.$web[40].'</li>': '';
$erreur .= $err_form11 ? '<li>'.$web[266].'</li>': '';
$erreur .= $err_form2  ? '<li>'.$web[42].'</li>': '';
$erreur .= $err_txt1   ? '<li>'.$web[545].$ftxt[1 + $t].$web[546].'</li>': '';
$erreur .= $err_txt2   ? '<li>'.$web[545].$ftxt[2 + $t].$web[546].'</li>': '';
$erreur .= $err_txt3   ? '<li>'.$web[545].$ftxt[3 + $t].$web[546].'</li>': '';
$erreur .= $err_txt4   ? '<li>'.$web[545].$ftxt[4 + $t].$web[546].'</li>': '';
$erreur .= $err_txt5   ? '<li>'.$web[545].$ftxt[5 + $t].$web[546].'</li>': '';
$erreur .= $err_txt6   ? '<li>'.$web[545].$ftxt[6 + $t].$web[546].'</li>': '';
$erreur .= $err_ptxt   ? '<li>'.$web[43].'</li>': '';
$erreur .= $err_crypt  ? '<li>'.$web[529].'</li>': '';
$erreur .= $err_rgpd   ? '<li>'.$web[405].'</li>': '';

if ($act == 'send' && empty($erreur)) { // envoi du mail
    
    include CONFIG;
        
    if (!empty($userprefs[1]) && $rgpd == 'on') setRGPDdate();

    $okmail = true;
    $eFiles = array();
    for ($f = 0; $f < $chfic[0]; $f++) {
        $filename = $_FILES['fil_in'.$f]['name'];
        $tmpname  = $_FILES['fil_in'.$f]['tmp_name'];
        if ($filename != '') {
            if (!is_uploaded_file($tmpname)) {
                $erreur .= '- '.basename($filename)." : ".$web[547].'\n';
                $okmail = false;
            } else {
                $eFiles[] = array($tmpname, $filename);
            }
        }
    }
	$index = FindIndexDBFields(DBANTISPAM, $antispam, getIPadress($site[6] == 'on' ? (isset($_SERVER['HTTP_X_FORWARDED_FOR'])? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']): $_SERVER['REMOTE_ADDR']), $typ);
	if ($index === false) {
		if (is_file('inc/postguest_antispam.inc')) include 'inc/postguest_antispam.inc';
		die('STOP ! Anti-SPAM !');
	} else {
		$fmail0 = $fdest[1];
		for ($d = 2; $d < count($fdest); $d++)
		{
			if (!isset($f2name[$d])) $f2name[$d] = '';
			if ($form0 == ($lang[0] == $lng ? $fname[$d] : $f2name[$d])) {
				$fmail0 = $fdest[$d];
				break;
			}
		}
        $bcc    = !empty($chkcc) ? 'bcc='.$user[1].'&' : '';
		$corps  = '<table style="width:100%;">';
		$corps .= '<tr><td style="width:30%;"><u>'.$web[330].'</u> : </td><td style="width:70%;">'.$form1.'</td></tr>'."\n";
		$corps .= '<tr><td><u> '.$web[101].'<br />'.$web[476].'</u>&nbsp;</td><td><a href="mailto:'.$form2.'?'.$bcc.'subject=Re: '.$web[330].stripslashes($site[($lang[0] == $lng ? 0 : 11)]).'">'.stripslashes($form2).'</a></td></tr>'."\n";
		$corps .= '<tr><td colspan="2"><hr /></td></tr>'."\n";
    // zones texte 1 à 3
		if ($text1) $corps .= '<tr><td><u> '.$ftxt[1 + $t].'</u> : </td><td>'.stripslashes($text1).'</td></tr>'."\n";
		if ($text2) $corps .= '<tr><td><u> '.$ftxt[2 + $t].'</u> : </td><td>'.stripslashes($text2).'</td></tr>'."\n";
		if ($text3) $corps .= '<tr><td><u> '.$ftxt[3 + $t].'</u> : </td><td>'.stripslashes($text3).'</td></tr>'."\n";
    //zone select
        if ($sel0 != '') $corps .= '<tr><td><u> '.$fsel[0 + $t].'</u> : </td><td>'.stripslashes($sel0).'</td></tr>'."\n";
    //zone boutons radio
		if ($rad0) $corps .= '<tr><td><u> '.$frad[0 + $t].'</u> : </td><td>'.stripslashes($rad0).'</td></tr>'."\n";
    // zone cases à cocher
		if ($chchk[0] != '' && $chk1 || $chk2 || $chk3 || $chk4) {
			$corps .= '<tr><td style="vertical-align:top"><u> '.$fchk[0 + $t].'</u> : </td><td>'."\n";
			if ($chk1) $corps .= '<span style="text-align:right;">- '.$fchk[1 + $t].'</span><br />'."\n";
			if ($chk2) $corps .= '<span style="text-align:right;">- '.$fchk[2 + $t].'</span><br />'."\n";
			if ($chk3) $corps .= '<span style="text-align:right;">- '.$fchk[3 + $t].'</span><br />'."\n";
			if ($chk4) $corps .= '<span style="text-align:right;">- '.$fchk[4 + $t].'</span><br />'."\n";
			$corps .= '</td></tr>'."\n";
		}
    // zones texte 4 à 6
		if ($text4) $corps .= '<tr><td><u> '.$ftxt[4 + $t].'</u> : </td><td>'.stripslashes($text4).'</td></tr>'."\n";
		if ($text5) $corps .= '<tr><td><u> '.$ftxt[5 + $t].'</u> : </td><td>'.stripslashes($text5).'</td></tr>'."\n";
		if ($text6) $corps .= '<tr><td><u> '.$ftxt[6 + $t].'</u> : </td><td>'.stripslashes($text6).'</td></tr>'."\n";
    // zone message
        $corps .= '<tr><td colspan="2"><hr /><u> '.$web[552].'</u> :<br />'.$ptxt.'</td></tr></table>'."\n";        
/*
    // confection de l'email
		$delimiteur = $serviz[155] == 'standard' ? '==S=E=P=A=R=A=T=O=R==' : '-----='.md5(uniqid(rand()));
        $eol   = $serviz[155] == 'standard' ? "\r\n" : "\n";
		$msg1  = "Ceci est un message au format MIME 1.0 multipart/mixed.".$eol;
		$msg1 .= "--$delimiteur".$eol;
		$msg1 .= "Content-Type: text/html; charset=utf-8".$eol;
		$msg1 .= "Content-Transfer-Encoding:8bit".$eol;
		$msg1 .= $eol; 
		$msg2 = '';
*/
        $nbf  = 0;
		$efilesattaches = '';
		$dossierDestination = CHEMIN.'fic/';

        for ($f = 0; $f < $chfic[0]; $f++) {
            $fichier_photo  = $_FILES['fil_in'.$f]['name'];
            $fichier_photo_tmpname  = $_FILES['fil_in'.$f]['tmp_name'];
			$prefix = time()."_";
			if ($fichier_photo != '')
			{
				$fichier_photo = $prefix.$fichier_photo;
				if (move_uploaded_file($fichier_photo_tmpname, $dossierDestination.$fichier_photo)) 
				{						
					SetChmod($dossierDestination.$fichier_photo);
					$fp = fopen($dossierDestination.$fichier_photo, 'rb');
					$attachment = fread($fp, filesize($dossierDestination.$fichier_photo));
					fclose($fp);
					$efilesattaches .= $fichier_photo.' ';
					$nbf++;
				}
			}
        }
    // confection partie texte
        $texte1  = strip_tags(preg_replace("!<br />|<br />|</p>!i", "\n", preg_replace("!<hr>|<hr />!i", "\n \n", $corps)));

    // envoi de l'email
		$msobj = $web[330].stripslashes($site[($lang[0] == $lng ? 0 : 11)]);
		$msobj = strtr($msobj, array('à'=>'a', 'é'=>'e', 'è'=>'e', 'ê'=>'e', 'ë'=>'e', 'î'=>'i', 'ï'=>'i', 'ô'=>'o', 'û'=>'u', 'û'=>'u'));
		$msobj = preg_replace('![^-a-zA-Z0-9_ ]!i', '.', $msobj);
		$eAR = '';
		if ($fdest[0] != '') $destinataireencopy = $fdest[0].' ';
		else $destinataireencopy = '';
		$eFrom    = $user[1];
		$FromTo   = $form1;
		$eTo      = $fmail0;
		$eSubject = $msobj;
		$eMsgHtml = $corps;
		$actioncomplete = 'C'; // pour contact
		$eMsgText = strip_tags(preg_replace("!<br />|<br />|</p>!i", "\n", preg_replace("!<hr>|<hr />!i", "\n \n", $eMsgHtml)));
		$eAR      = $chkar != '' ? $form2 : '';
		sendmail($eTo, $eFrom,$eSubject, $eMsgHtml, $efilesattaches, $actioncomplete, $destinataireencopy, $eAR, $form2, $form1='');
	}
}
else {
    $antispam = md5(uniqid(rand()));
    $antispams = ReadDBFields(DBANTISPAM);
    $timestamp = microtime(TRUE);
    array_push($antispams, array($antispam, getIPadress($site[6] == 'on' ? (isset($_SERVER['HTTP_X_FORWARDED_FOR'])? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']): $_SERVER['REMOTE_ADDR']), TYP_MAIL, $timestamp));
    $timestamp -= $serviz[52] * 60;
    while($antispams[0][3] < $timestamp) {
        array_shift($antispams);
    }
    if (count($antispams) > $serviz[51]) {
        array_shift($antispams);
    }
    WriteDBFields(DBANTISPAM, $antispams);
}

$headinc .= BeginJavascript().'
function VerifyForm() {
    var sto = "";
    var messok = "";
    var erreur = false;

    if (document.rapporter.form1.value == "") {
        sto += "  - '.addslashes($web[40]).'\n";
		document.rapporter.form1.className = "errorInputText";
        erreur = true;
    } else {
        regexp = /^.{2,'.max($serviz[148], 40).'}$/;
        if (!regexp.test(document.rapporter.form1.value)) {
            sto += "  - '.addslashes($web[266]).'\n";
			document.rapporter.form1.className = "errorInputText";
            erreur = true;
        }
    }
    regexp = /^[^\.\s]+(\.[^\.\s]+)*@[^\.\s]+(\.[^\.\s]+)+$/;
    if (!regexp.test(document.rapporter.form2.value)) {
        sto += "  - '.addslashes($web[42]).'\n";
		document.rapporter.form2.className = "errorInputText";
        erreur = true;
    }';
for ($i = 1; $i <= 6; $i++) {
    if ($chtxt[$i] == 'fix') {
        $headinc .= '
    if (document.rapporter.text'.$i.'.value == "") {
        sto += "  - '.addslashes($web[545].$ftxt[$i + $t].$web[546]).'\n";
		document.rapporter.text'.$i.'.className = "errorInputText";
        erreur = true;
    }';
    }
}
if ($chsel[0] == 'fix') 
    $headinc .= '
    if (document.rapporter.sel0.value == "???") {
        sto += "  - '.addslashes($web[545].$fsel[0 + $t].$web[549]).'\n";
		document.rapporter.sel0.className = "errorInputText";
        erreur = true;
    }';
if ($chrad[0] == 'fix') 
    $headinc .= '
    if (document.rapporter.rad0.value == "") {
        sto += "  - '.addslashes($web[545].$frad[0 + $t].$web[549]).'\n";
        erreur = true;
    }';
if ($chchk[0] == 'fix') {
    $chk = '';
    for ($i = 1; $i <= 4; $i++) {
        if ($fchk[$i + $t] != '') $chk .= '!document.rapporter.chk'.$i.'.checked && ';
    }
    $chk = substr($chk, 0, -3);
    $headinc .= '
    if ('.$chk.') {
        sto += "  - '.addslashes($web[545].$fchk[0 + $t].$web[550]).'\n";
        erreur = true;
    }';
}
$headinc .= '
    if (erreur) {
        sto = "'.addslashes($web[44]).'\n\n" + sto;
        alert(sto);
    return false;
    }
}'.EndJavascript();

include 'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, 'CNT'.$tconfig, '100%');
else
    htable($topmess, '100%');

if (!isAccessGranted($members[20])) {
    echo '
<div class="container text-center web342">'.$web[342];
    if ($members[19] != '0' && $members[19] != '3') {
        $href1 = CHEMIN.($site['URLR'] == 'on' 
          ? $lng.'-'.$urlrw[3].'-0-'.$tconfig.$z2 
          : 'connect.php?lng='.$lng.'&tconfig='.$tconfig.$z2);
        $href2 = CHEMIN.($site['URLR'] == 'on' 
          ? $lng.'-'.$urlrw[15].'-5-new-'.$tconfig.$z2 
          : $site['USR'].'.php?lng='.$lng.'&uuser=new&tconfig='.$tconfig.$z2);
        echo '
  <p class="text-center">
    '.SubmitButton($web[630], 'self.location.href=\''.$href1.'\'').
      (empty($pseudo) ? '&nbsp;&nbsp;'.SubmitButton($web[160], 'self.location.href=\''.$href2.'\'') : '').'
  </p><br />';
    }
	echo '
</div>';
} else {
    if ($okmail) {
        CreateDir(TEMPREP);
        for ($f = 0; $f < $chfic[0]; $f++) {
            $filename = $_FILES['fil_in'.$f]['name'];
            if ($filename != '') {
                @unlink(TEMPREP.$filename);
            }
        }
        if ($chfic[0] != 0) $corps .= '<hr />';
		if ($efilesattaches != '')
		{
			$filename = explode(' ',$efilesattaches);
			for ($f = 0; $f < $chfic[0]; $f++) {
				if ($filename != '') {
					$corps .= '<u>PJ:</u> '.$filename[$f].'<br />';
					@unlink($dossierDestination.$filename[$f]);
				}
			}
		}
		
        echo '
<div class="container text-left dispMail">
  <p>'.$web[539].'</p>
  <div class="rep bord text-center dispMailBody">'.stripslashes($corps).'</div>
  <p class="text-left">'.$web[540].'</p>
</div>';
    } else {
        function msgtext($check, $name, $texte, $ftexte, $err_txt) {
			global $fix, $charset;
            if ($check == 'fix') $ftexte .= $fix;
            echo '
          <div class="d-table-row">
            <div class="d-table-cell">
              <div class="m-auto pg360 text-center">'.$ftexte.'</div>
              <div class="m-auto pg360 pb-2">
                <input class="'.($err_txt ? 'errorInputText' : 'texte').' form-control textFieldContact mx-auto" type="text" 
                  name="'.$name.'" value="'.htmlentities(stripslashes($texte), ENT_QUOTES, $charset).'" />
              </div>
            </div>
          </div>';
        }

		if (!empty($erreur))
			echo displayErrorMsg($web[542], $erreur);
        
        echo '
    <div class="text-center">';
	// Position Contact téléphonique  $ftelbelow[0] == '' => en haut
	if ($ftelbelow[0] == '') {
	// contact téléphonique
        if ($ftel[0] == 'on') {
            echo '  
    <div class="w-100 text-left">'.ForceToAbsolute(stripslashes($ftel[1 + $t])).'</div>';
        }
	}
	// Position Contact postal  $fletbelow[0] == '' => en haut
	if ($fletbelow[0] == '') {
    // contact par courrier
        if ($flet[0] == 'on') {
            echo '
    <div class="w-100 text-left">'.ForceToAbsolute(stripslashes($flet[1 + $t])).'</div>';
        }
	}	
    // contact par mail
        echo '
    <div class="mainct w-100 text-center">
      <form name="rapporter" 
        action="'.($site['URLR'] == 'on' 
          ? $lng.'-'.$urlrw[2].'-'.$tconfig.$z2 
          : $site['CT'].'.php?lng='.$lng.'&amp;tconfig='.$tconfig.$z2).'" 
        enctype="multipart/form-data" 
        method="post" 
        onsubmit="return VerifyForm(); return false;">
      <fieldset class="border rounded">
        <legend class="headContactW">&bull; '.$web[541].'</legend>
        <input type="hidden" name="antispam" value="'.$antispam.'" />
        <input type="hidden" name="act" value="send" />
        <input type="hidden" name="ctconfig" value="'.$ctconfig.'" />
        <div class="table-responsive-md">
        <div class="d-table w-100 m-auto text-left maxWidthContact">
          <div class="d-table-row">
            <div class="d-table-cell text-center">
              <div class="pb-2">'.$web[45].'</div>
              <span class="d-none"><input type="text" name="code_pseudo" value="" /></span>
            </div>
          </div>
          <div class="d-table-row">
            <div class="d-table-cell text-left pb-4">(<span class="text-danger"> * </span>)&nbsp;'.$web[543].'</div>
          </div>';
        $fix = '&nbsp;(<span class="text-danger"> * </span>)';
    // choix destinataire
        if (!isset($fdest[2])) { // si 1 seul destinataire pas de select
            echo '
          <div class="d-table-row">
            <div class="d-table-cell">
              <input type="hidden" name="form0" value="'.htmlentities($lang[0] == $lng ? $fname[1] : $f2name[1], ENT_QUOTES, $charset).'" />
            </div>
          </div>';
        } else {
            echo '
          <div class="d-table-row">
            <div class="d-table-cell">
              <div class="table-responsive-md">
              <div class="d-table w-100">
                <div class="d-table-row">
                  <div class="d-table-cell text-left w-45">'.htmlentities($lang[0] == $lng ? $fname[0] : $f2name[0], ENT_QUOTES, $charset).' : </div>
                  <div class="d-table-cell text-left w-55">
                    <select name="form0" class="form-control form-control-lg" style="max-width: 224px;">';
			for ($d = 1; $d < count($fdest); $d++) {
				if (!isset($f2name[$d])) $f2name[$d] = '';
                echo '
                      <option value="'.htmlentities($lang[0] == $lng 
                        ? $fname[$d] : $f2name[$d], ENT_QUOTES, $charset).'"'.Selected($form0 == ($lang[0] == $lng ? $fname[$d] 
                        : $f2name[$d])).'>
                      '.($lang[0] == $lng ? $fname[$d] : $f2name[$d]).'</option>';
			}
            echo '
			        </select>
                  </div>
                </div>
              </div>
              </div>
            </div>
          </div>';
        }
    // expéditeur
        $form1 = (empty($form1) && $userprefs[1] != '') ? $userprefs[1] : $form1;
        $form2 = (empty($form2) && $userprefs[2] != '') ? $userprefs[2] : $form2;
        echo '
          <div class="d-table-row">
            <div class="d-table-cell">
              <div class="input-group m-auto pg360 pb-2">
                <div class="input-group-prepend">
                  <span class="input-group-text"><i class="far fa-user"></i></span>
                </div>
                <input class="'.($err_form1 || $err_form11 ? 'errorInputText' : 'texte').' form-control" type="text" name="form1" 
                  value="'.htmlentities(stripslashes($form1), ENT_QUOTES, $charset).'" placeholder="'.$fmail[1 + $t].'" />'.$fix.'
              </div>
            </div>
          </div>


          <div class="d-table-row">
            <div class="d-table-cell">
              <div class="input-group m-auto pg360 pb-2">
                <div class="input-group-prepend">
                  <span class="input-group-text"><i class="fas fa-at"></i></span>
                </div>
                <input class="'.($err_form2 ? 'errorInputText' : 'texte').' form-control" type="text" name="form2" 
                  value="'.stripslashes($form2).'" placeholder="'.$fmail[2 + $t].'" />'.$fix.'
              </div>
            </div>
          </div>';
    // zones texte 1 à 3
        if ($chtxt[1] != '') msgtext ($chtxt[1], 'text1', $text1, $ftxt[1 + $t], $err_txt1);
        if ($chtxt[2] != '') msgtext ($chtxt[2], 'text2', $text2, $ftxt[2 + $t], $err_txt2);
        if ($chtxt[3] != '') msgtext ($chtxt[3], 'text3', $text3, $ftxt[3 + $t], $err_txt3);
    // zone select
        if ($chsel[0] != '') {
            if ($chsel[0] == 'fix') $fsel[0 + $t] .= $fix;
            echo '
          <div class="d-table-row">
            <div class="d-table-cell">
              <div class="input-group pg360 m-auto pb-2">
                <div class="input-group-prepend">
                  <span class="input-group-text">'.$fsel[0 + $t].'</span>
                </div>
                <select name="sel0" class="form-control" style="max-width: 224px;">
                      <option value="???">???</option>';
            if ($fsel[1]) {
                echo '
                  <option value="'.$fsel[1 + $t].'"'.Selected($sel0 == $fsel[1 + $t]).'>'.$fsel[1 + $t].'</option>';
            }
            if ($fsel[2]) {
                echo '
                  <option value="'.$fsel[2 + $t].'"'.Selected($sel0 == $fsel[2 + $t]).'>'.$fsel[2 + $t].'</option>';
            }
            if ($fsel[3]) {
                echo '
                  <option value="'.$fsel[3 + $t].'"'.Selected($sel0 == $fsel[3 + $t]).'>'.$fsel[3 + $t].'</option>';
            }
            if ($fsel[4]) {
                echo '
                  <option value="'.$fsel[4 + $t].'"'.Selected($sel0 == $fsel[4 + $t]).'>'.$fsel[4 + $t].'</option>';
            }
            echo '
                </select>
              </div>
            </div>
          </div>';
        }
    // zone boutons radio
        if ($chrad[0] != '') {
            echo '
          <div class="d-table-row"><div class="d-table-cell">&nbsp;</div></div>';
            if ($chrad[0] == 'fix') $frad[0 + $t] .= $fix;
            echo '
          <div class="d-table-row">
            <div class="d-table-cell">
              <div class="table-responsive-md">
              <div class="d-table w-100">
                <div class="d-table-row">
                  <div class="d-table-cell text-left w-45 align-top">'.$frad[0 + $t].' : </div>
                  <div class="d-table-cell text-left w-55">';
            if ($frad[1]) {
                echo '
                    <div class="form-check">
                      <label class="form-check-label">
                        <input type="radio" class="form-check-input" name="rad0" value="'.$frad[1 + $t].'"'.checked($rad0 == $frad[1 + $t]).' />
                          &nbsp;'.$frad[1 + $t].'
                      </label>
                    </div>';
            }
            if ($frad[2]) {
                echo '
                    <div class="form-check">
                      <label class="form-check-label">
                        <input type="radio" class="form-check-input" name="rad0" value="'.$frad[2 + $t].'"'.checked($rad0 == $frad[2 + $t]).' />
                          &nbsp;'.$frad[2 + $t].'
                      </label>
                    </div>';
            }
            if ($frad[3]) {
                echo '
                    <div class="form-check">
                      <label class="form-check-label">
                        <input type="radio" class="form-check-input" name="rad0" value="'.$frad[3 + $t].'"'.checked($rad0 == $frad[3 + $t]).' />
                          &nbsp;'.$frad[3 + $t].'
                      </label>
                    </div>';
            }
            if ($frad[4]) {
                echo '
                    <div class="form-check">
                      <label class="form-check-label">
                        <input type="radio" class="form-check-input" name="rad0" value="'.$frad[4 + $t].'"'.checked($rad0 == $frad[4 + $t]).' />
                          &nbsp;'.$frad[4 + $t].'
                      </label>
                    </div>';
            }
            echo '
                  </div>
                </div>
              </div>
              </div>
            </div>
          </div>';
        }
    // zone à cocher
        if ($chchk[0] != '') {
            echo '
          <div class="d-table-row"><div class="d-table-cell">&nbsp;</div></div>';
            if ($chchk[0] == 'fix') $fchk[0 + $t] .= $fix;
            echo '
          <div class="d-table-row">
            <div class="d-table-cell">
              <div class="table-responsive-md">
              <div class="d-table w-100">
                <div class="d-table-row">
                  <div class="d-table-cell text-left w-45 align-top">'.$fchk[0 + $t].' : </div>
                  <div class="d-table-cell text-left w-55">';
            if ($fchk[1]) {
                echo '
                    <div class="form-check">
                      <label class="form-check-label">
                        <input type="checkbox" class="form-check-input" name="chk1"'.checked($chk1).' />&nbsp;'.$fchk[1 + $t].'
                      </label>
                    </div>';
            }
            if ($fchk[2]) {
                echo '
                    <div class="form-check">
                      <label class="form-check-label">
                        <input type="checkbox" class="form-check-input" name="chk2"'.checked($chk2).' />&nbsp;'.$fchk[2 + $t].'
                      </label>
                    </div>';
            }
            if ($fchk[3]) {
                echo '
                    <div class="form-check">
                      <label class="form-check-label">
                        <input type="checkbox" class="form-check-input" name="chk3"'.checked($chk3).' />&nbsp;'.$fchk[3 + $t].'
                      </label>
                    </div>';
            }
            if ($fchk[4]) {
                echo '
                    <div class="form-check">
                      <label class="form-check-label">
                        <input type="checkbox" class="form-check-input" name="chk4"'.checked($chk4).' />&nbsp;'.$fchk[4 + $t].'
                      </label>
                    </div>';
            }
            echo '
                  </div>
                </div>
              </div>
              </div>
            </div>
          </div>';
        }
    //zones texte 4 à 6
        echo '
          <div class="d-table-row"><div class="d-table-cell">&nbsp;</div></div>';
        if ($chtxt[4] != '') msgtext ($chtxt[4], 'text4', $text4, $ftxt[4 + $t], $err_txt4);
        if ($chtxt[5] != '') msgtext ($chtxt[5], 'text5', $text5, $ftxt[5 + $t], $err_txt5);
        if ($chtxt[6] != '') msgtext ($chtxt[6], 'text6', $text6, $ftxt[6 + $t], $err_txt6);
        echo '
        </div>
        </div>
        <div class="table-responsive-md">
        <div class="d-table w-100 m-auto maxWidthContact">
          <div class="d-table-row">
            <div class="d-table-cell text-center">';
    // zone du message
        $ptxt = addslashes($ptxt);
        echo '
              <div class="text-center pt-5">'.$fmes[1 + $t].$fix.' :</div>';
        $cke_toolbar = !isAuthorImg($userprefs[1]) ? array('toolbarName'=>'Guppy_out_min') : array('toolbarName'=>'Guppy_out_min_img');
        echo display_editor('ptxt', '100%', 280, $ptxt, $cke_toolbar);
        // pièces jointes
        if ($chfic[0] != '0') {
            echo '
                <input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
                <div class="custom-files pt-5">'.$web[548].'</div>';
            for ($f = 0; $f < $chfic[0]; $f++) {
                echo '
                <input class="texte form-control-file border pg360 mx-auto" type="file" name="fil_in'.$f.'" size="40" value="" />';
            }
        }
        if ($far != '') { // accusé de réception
            echo '
            <div class="form-check py-5">
              <label class="form-check-label mr-4" for="chkar">'.$web[544].'</label>
              <input class="form-check-input mt-2" type="checkbox" id="chkar" name="chkar" />
            </div>';
        }
		echo '
		    </div>
		  </div>
        </div>
        </div>
        <div class="table-responsive-md">
        <div class="d-table w-100">';
        if (!empty($serviz[177]) && !OK_RGPD_date($userprefs[1])) echo '
          <div class="d-table-row">
            <div class="d-table-cell text-center">
              <fieldset class="w-95 m-auto text-left border rounded"><legend>'.$web[14].'</legend>
                <p><strong>'.$web[646].'</strong></p>
                <p>'.$web[684].'</p>
                <div class="form-check">
                  <label for="rgpd">'.$web[415].$fix.'&nbsp;:&nbsp;</label>
                  <input type="checkbox" class="form-check-input ml-2 mt-2" id="rgpd" name="rgpd"'.Checked($rgpd).' />
                </div>
              </fieldset>
            </div>
          </div>';
        if ($serviz[100] != '0' && $serviz[95] == 'on' && ($serviz[98] == '' || $userprefs[1] == '')) {
            $lbl = $serviz[100] == '3' ? $web[642] : '';
            echo '
          <div class="d-table-row">
            <div class="d-table-cell text-center mt-4 mx-auto">'.dsp_crypt(0, 1, 3, 2, $lbl, $serviz[115] == 'on' ? $web[643] : '').'</div>
          </div>
          <div class="d-table-row">
            <div class="d-table-cell text-center">
              '.($serviz[100] == '3' ? '' : $web[530]).'
              <input class="'.($err_crypt ? 'errorInputText' : 'texte').' inputcrypt m-auto form-control" 
                type="text" name="crypt" onpaste="return false;" />
            </div>
          </div>';
        }
        echo '
          <div class="d-table-row"><div class="d-table-cell text-center"><br />'.SubmitButton($web[52]).'</div></div>
        </div>
        </div>
      </fieldset>
      </form>
    </div>
    </div>'.displayQuickConfig(NULL, false, 'contact&act=2&ctconfig='.$ctconfig, '', '', 13);;
	// Position Contact téléphonique  $ftelbelow[0] == 'on' => en bas
	if ($ftelbelow[0] == 'on') {
	// contact téléphonique
        if ($ftel[0] == 'on') {
            echo '  
    <div class="w-100 text-left">'.ForceToAbsolute(stripslashes($ftel[1 + $t])).'</div>';
        }
	}
	// Position Contact postal  $fletbelow[0] == 'on' => en bas
	if ($fletbelow[0] == 'on') {
    // contact par courrier
        if ($flet[0] == 'on') {
            echo '
    <div class="w-100 text-left">'.ForceToAbsolute(stripslashes($flet[1 + $t])).'</div>';
        }
	}			
    }
}
btable();
include 'inc/bpage.inc';
?>
download.php
wget 'https://lists2.roe3.org/guppy/download.php'
View Content
<?php
/*******************************************************************************
 *   Download
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.04 (December 14, 2021) : correction php 8
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
//include(CHEMIN.INCREP."lang/".$lng."-web".INCEXT);
include CHEMIN.'inc/download.inc';
$gydwnl  = new GY_download();
$result  = $gydwnl->DWNL_ok($userprefs[1], $lng);
$tconfig = $gydwnl->tconfig;
$topmess = $gydwnl->topmess;
switch ($result[0]) {
case 'h0' : header('HTTP/1.0 403 Forbidden');
case 'h1' : header('location:'.$site[3].'error.php?lng='.$lng.'&err=404');
case 'h2' : header('HTTP/1.0 404 Not Found');
case 'DWNL' :
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gydwnl->DWNL_content();
$topmess = $gydwnl->topmess;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
dwnld.php
wget 'https://lists2.roe3.org/guppy/dwnld.php'
View Content
<?php
/*******************************************************************************
 *   Download (popup)
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
define('NO_CRYPT', true);
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/download.inc';
$gydwnl  = new GY_download();
$result  = $gydwnl->DWNL2_ok();
$tconfig = $gydwnl->tconfig;
$topmess = $gydwnl->topmess;
if (!empty($result[0])) {
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[1].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[2];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result = $gydwnl->DWNL2_content();
echo $result[0];
?>
error.php
wget 'https://lists2.roe3.org/guppy/error.php'
View Content
<?php
/*******************************************************************************
 *   Error Track
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2023 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.20 (October 24, 2024) : Integration news function about counter IP
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
@include CHEMIN.'inc/includes.inc';
$msg0 = '';
$msg1 = '';
$msg2 = '';
$msg3 = '';
$source = '';
$addr_ip = '';
$domaine = '';
$with_mail = '';
$msg = array();
@include 'inc/lang/'.$lng.'-help.inc';
if (empty($site[10])) $err = import('err');
$datjourl = new DateTime('now');
$dateheureminiutesecl = $datjourl->format('Y_m_d');
$nomficlog = CHEMIN.'data/log/error'.'_'.$dateheureminiutesecl.'.log';
$REMOTE_ADDR = strip_tags(addslashes(getIPadress($site[6] == 'on' ? (isset($_SERVER['HTTP_X_FORWARDED_FOR'])? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']): $_SERVER['REMOTE_ADDR'])));

if (!empty($err)) {
    $error_number = array('400', '401', '403', '404', '406', '500');
    if (!in_array(abs($err), $error_number)) {
        header('HTTP/1.0 403 Forbidden');
        die('STOP ! Bad error number ('.$err.')');
    }
    $with_mail = 'false';

    if (!is_numeric($err)) {
        header('HTTP/1.0 403 Forbidden');
        die('STOP ! $err is not numeric ('.$err.')');
    }
//		file_put_contents($nomficlog, date('Y-m-d H:i:s').'Adresse IP: '.$REMOTE_ADDR."\n", FILE_APPEND | LOCK_EX);
	$isvalidepoint = strpos($REMOTE_ADDR,'.');
	if ($isvalidepoint)
	{
		$ip = explode('.', $REMOTE_ADDR);
//			file_put_contents($nomficlog, date('Y-m-d H:i:s').'IP Count Adresse IP V4: '.count($ip)."\n", FILE_APPEND | LOCK_EX);
		if (count($ip) == 4)
		{
			foreach($ip as $n) {
				if (!is_numeric($n) || $n < 0 || $n > 255) {
//					file_put_contents($nomficlog, date('Y-m-d H:i:s').'Erreur Adresse IP V4: '.$REMOTE_ADDR."\n", FILE_APPEND | LOCK_EX);
					header('HTTP/1.0 403 Forbidden');
					die('STOP ! Bad IP ('.$REMOTE_ADDR.')');

				}
			}
		}
	}
	$isvalidepoint = strpos($REMOTE_ADDR,':');
	if ($isvalidepoint)
	{
		$ip = explode(':', $REMOTE_ADDR);
//		file_put_contents($nomficlog, date('Y-m-d H:i:s').'IP Count Adresse IP V6: '.count($ip)."\n", FILE_APPEND | LOCK_EX);
		if (count($ip) < 8)
		{
			header('HTTP/1.0 403 Forbidden');
			die('STOP ! Bad IP ('.$REMOTE_ADDR.')');

//			file_put_contents($nomficlog, date('Y-m-d H:i:s').'Erreur Adresse IP V6: '.$REMOTE_ADDR."\n", FILE_APPEND | LOCK_EX);
		}
	}
    if ($err < 0) {
        $with_mail = 'true';
        $err = abs($err);
    }

    $fichiers = array();
    if ($hd = opendir(DATAREP.'error')) {
        while ($fichier = readdir($hd)) {
            if (stristr($fichier, INCEXT) == TRUE ) {
                $fichiers[] = $fichier;
            }
        }
        closedir($hd);
    }
    $max_fic = 20;
    if (isset($serviz[50]) && ($serviz[50] > 0)) $max_fic = $serviz[50];
    $min_fic = max(0, $max_fic - 10);
    if (count($fichiers) > $max_fic) {
        for ($i=0; $i < count($fichiers) - $min_fic; $i++) {
            DestroyDBFile(DATAREP.'error/'.$fichiers[$i]);
        }
    }
    $msg0 = $errormsg[(string)$err][0];
    $msg1 = addslashes($errormsg[(string)$err][1]);
    $msg2 = addslashes($errormsg[(string)$err][2]);
    $msg3 = $errormsg[(string)$err][3];
    if (empty($msg0)) {
        $msg0 = 'Unattended error';
        $msg1 = 'Unattended error';
        $msg2 = 'See the <a href="http://www.apachefrance.com/Articles/7/page2.html" alt="">errors code HTTP</a>.';
        $msg3 = 'HTTP/1.0 403 Forbidden';
    }
    $date = date("d/m/Y H:i:s");
    $dest = $_SERVER['REQUEST_URI'];
    $domaine = gethostbyaddr($REMOTE_ADDR);

    $err = addslashes($err);
    $dest = strip_tags(addslashes($dest));
	$HTTP_REFERER = '';
	$HTTP_USER_AGENT = '';	
    if (isset($_SERVER['HTTP_REFERER'])) $HTTP_REFERER = strip_tags(addslashes($_SERVER['HTTP_REFERER']));
    if (isset($_SERVER['HTTP_USER_AGENT'])) $HTTP_USER_AGENT = strip_tags(addslashes($_SERVER['HTTP_USER_AGENT']));

    $mettre = "<?php
\$err = '$err';
\$msg0 = '$msg0';
\$msg1 = '$msg1';
\$msg2 = '$msg2';
\$msg3 = '$msg3';
\$date = 'Date : $date';
\$dest = 'Page requested : $dest';
\$source = 'Page source : $HTTP_REFERER';
\$browser = 'Browser : $HTTP_USER_AGENT';
\$addr_ip = 'IP address : $REMOTE_ADDR';
\$domaine = 'Domaine : $domaine';
\$with_mail = $with_mail;
";

    $errorId = date('Ymd_His_').$err;
    WriteFullDB(DATAREP."error/".$errorId.INCEXT, $mettre);
    header($msg3);
    header('location:'.$site[3].($site['URLR'] == 'on'? $lng.'-'.$urlrw[0].'-99-'.$errorId: 'error.php?lng='.$lng.'&errorId='.$errorId));
}
else {
    $errorId = preg_replace("`[^0-9_]`", "", import('errorId'));
    if (!is_file(DATAREP."error/".$errorId.INCEXT)) {
        header("HTTP/1.0 404 Not Found");
        if ($site[10] != '') {
            $err     = import('err');
            $aredir  = explode('.php', $site[10]);
            $tconfig = empty($site[12]) ? (isset($tconfig) ? $tconfig : 0) : $site[12];
            header('location:'.$site[3].$aredir[0].'.php?lng='.$lng.'&err='.$err.'&tconfig='.$tconfig);
            exit;
        }
        die('STOP ! No file !');
    }

    include DATAREP.'error/'.$errorId.INCEXT;

    header($msg3);
    $topmess = "Error ".$err." : ".$msg0;
    include 'inc/hpage.inc';
    htable($topmess, "100%");
    echo "<b>".stripslashes($msg1)."</b><br />".stripslashes($msg2);
    echo "<hr /><b>Context of the error</b><br />".$dest."<br />".$source."<br />".
        $browser."<br />".$addr_ip."<br />".$domaine;

    if ($with_mail) {
        echo "<br /><b>This context is recorded and communicated to the webmaster.</b>";
        eMailHtmlTo(
            stripslashes($site[($lang[0] == $lng ? 0 : 11)])." : ERROR ".$err,
            "Site : ".stripslashes($site[($lang[0] == $lng ? 0 : 11)])."<br />ERROR ".$err." : ".$msg0."<br />".$date."<br />".
            $dest."<br />".$source."\n".$browser."<br />".$addr_ip."<br />".$domaine);
    }
    btable();
    include 'inc/bpage.inc';
}
?>
error403.php
wget 'https://lists2.roe3.org/guppy/error403.php'
View Content
<?php
/*******************************************************************************
 *   Error Track
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2023 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.20 (October 24, 2024) : Integration news function about counter IP
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
@include CHEMIN.'inc/includes.inc';
$msg0 = '';
$msg1 = '';
$msg2 = '';
$msg3 = '';
$source = '';
$addr_ip = '';
$domaine = '';
$with_mail = '';
$msg = array();
@include 'inc/lang/'.$lng.'-help.inc';
$err = import('err');
$datjourl = new DateTime('now');
$dateheureminiutesecl = $datjourl->format('Y_m_d');
$nomficlog = CHEMIN.'data/log/error403'.'_'.$dateheureminiutesecl.'.log';

$REMOTE_ADDR = strip_tags(addslashes(getIPadress($site[6] == 'on' ? (isset($_SERVER['HTTP_X_FORWARDED_FOR'])? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']): $_SERVER['REMOTE_ADDR'])));

if (!empty($err)) {
    $error_number = array('400', '401', '403', '404', '406', '500');
    if (!in_array(abs($err), $error_number)) {
        header('HTTP/1.0 403 Forbidden');
        die('STOP ! Bad error number ('.$err.')');
    }
    $with_mail = 'false';

    if (!is_numeric($err)) {
        header('HTTP/1.0 403 Forbidden');
        die('STOP ! $err is not numeric ('.$err.')');
    }
//		file_put_contents($nomficlog, date('Y-m-d H:i:s').'Adresse IP: '.$REMOTE_ADDR."\n", FILE_APPEND | LOCK_EX);
	$isvalidepoint = strpos($REMOTE_ADDR,'.');
	if ($isvalidepoint)
	{
		$ip = explode('.', $REMOTE_ADDR);
//			file_put_contents($nomficlog, date('Y-m-d H:i:s').'IP Count Adresse IP V4: '.count($ip)."\n", FILE_APPEND | LOCK_EX);
		if (count($ip) == 4)
		{
			foreach($ip as $n) {
				if (!is_numeric($n) || $n < 0 || $n > 255) {
//					file_put_contents($nomficlog, date('Y-m-d H:i:s').'Erreur Adresse IP V4: '.$REMOTE_ADDR."\n", FILE_APPEND | LOCK_EX);
					header('HTTP/1.0 403 Forbidden');
					die('STOP ! Bad IP ('.$REMOTE_ADDR.')');

				}
			}
		}
	}
	$isvalidepoint = strpos($REMOTE_ADDR,':');
	if ($isvalidepoint)
	{
		$ip = explode(':', $REMOTE_ADDR);
//		file_put_contents($nomficlog, date('Y-m-d H:i:s').'IP Count Adresse IP V6: '.count($ip)."\n", FILE_APPEND | LOCK_EX);
		if (count($ip) < 8)
		{
			header('HTTP/1.0 403 Forbidden');
			die('STOP ! Bad IP ('.$REMOTE_ADDR.')');

//			file_put_contents($nomficlog, date('Y-m-d H:i:s').'Erreur Adresse IP V6: '.$REMOTE_ADDR."\n", FILE_APPEND | LOCK_EX);
		}
	}
    if ($err < 0) {
        $with_mail = 'true';
        $err = abs($err);
    }

    $fichiers = array();
    if ($hd = opendir(DATAREP.'error')) {
        while ($fichier = readdir($hd)) {
            if (stristr($fichier, INCEXT) == TRUE ) {
                $fichiers[] = $fichier;
            }
        }
        closedir($hd);
    }
    $max_fic = 20;
    if (isset($serviz[50]) && ($serviz[50] > 0)) $max_fic = $serviz[50];
    $min_fic = max(0, $max_fic - 10);
    if (count($fichiers) > $max_fic) {
        for ($i=0; $i < count($fichiers) - $min_fic; $i++) {
            DestroyDBFile(DATAREP.'error/'.$fichiers[$i]);
        }
    }
    $msg0 = $errormsg[(string)$err][0];
    $msg1 = addslashes($errormsg[(string)$err][1]);
    $msg2 = addslashes($errormsg[(string)$err][2]);
    $msg3 = $errormsg[(string)$err][3];
    if (empty($msg0)) {
        $msg0 = 'Unattended error';
        $msg1 = 'Unattended error';
        $msg2 = 'See the <a href="http://www.apachefrance.com/Articles/7/page2.html" alt="">errors code HTTP</a>.';
        $msg3 = 'HTTP/1.0 403 Forbidden';
    }
    $date = date("d/m/Y H:i:s");
    $dest = $_SERVER['REQUEST_URI'];
    $domaine = gethostbyaddr($REMOTE_ADDR);

    $err = addslashes($err);
    $dest = strip_tags(addslashes($dest));
	$HTTP_REFERER = '';
	$HTTP_USER_AGENT = '';	
	if (isset($_SERVER['HTTP_REFERER'])) $_SERVER['HTTP_REFERER'] = '';
    else
		$HTTP_REFERER = strip_tags(addslashes($_SERVER['HTTP_REFERER']));
	if (isset($_SERVER['HTTP_USER_AGENT'])) $_SERVER['HTTP_USER_AGENT'] = '';
	else
		$HTTP_USER_AGENT = strip_tags(addslashes($_SERVER['HTTP_USER_AGENT']));

    $mettre = "<?php
\$err = '$err';
\$msg0 = '$msg0';
\$msg1 = '$msg1';
\$msg2 = '$msg2';
\$msg3 = '$msg3';
\$date = 'Date : $date';
\$dest = 'Page requested : $dest';
\$source = 'Page source : $HTTP_REFERER';
\$browser = 'Browser : $HTTP_USER_AGENT';
\$addr_ip = 'IP address : $REMOTE_ADDR';
\$domaine = 'Domaine : $domaine';
\$with_mail = $with_mail;
";

    $errorId = date('Ymd_His_').$err;
    WriteFullDB(DATAREP."error/".$errorId.INCEXT, $mettre);
    header($msg3);
    header('location:'.$site[3].($site['URLR'] == 'on'? $lng.'-'.$urlrw[0].'-99-'.$errorId: 'error.php?lng='.$lng.'&errorId='.$errorId));
}
else {
    $errorId = preg_replace("`[^0-9_]`", "", import('errorId'));
    if (!is_file(DATAREP."error/".$errorId.INCEXT)) {
        header("HTTP/1.0 404 Not Found");
    }

    include DATAREP.'error/'.$errorId.INCEXT;

    header($msg3);
    $topmess = "Error ".$err." : ".$msg0;
    include 'inc/hpage.inc';
    htable($topmess, "100%");
    echo "<b>".stripslashes($msg1)."</b><br />".stripslashes($msg2);
    echo "<hr /><b>Context of the error</b><br />".$dest."<br />".$source."<br />".
        $browser."<br />".$addr_ip."<br />".$domaine;

    if ($with_mail) {
        echo "<br /><b>This context is recorded and communicated to the webmaster.</b>";
        eMailHtmlTo(
            stripslashes($site[($lang[0] == $lng ? 0 : 11)])." : ERROR ".$err,
            "Site : ".stripslashes($site[($lang[0] == $lng ? 0 : 11)])."<br />ERROR ".$err." : ".$msg0."<br />".$date."<br />".
            $dest."<br />".$source."\n".$browser."<br />".$addr_ip."<br />".$domaine);
    }
    btable();
    include 'inc/bpage.inc';
}
?>
faq.php
wget 'https://lists2.roe3.org/guppy/faq.php'
View Content
<?php
/*******************************************************************************
 *   FAQ
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/faq.inc';
$gyfaq   = new GY_faq();
$result  = $gyfaq->FAQ_ok($userprefs[1], $lng);
$tconfig = $gyfaq->tconfig;
$topmess = $gyfaq->topmess;
switch ($result[0]) {
case 'h1' : header('HTTP/1.0 403 Forbidden');
case 'h2' : header('location:'.$site[3].'error.php?lng='.$lng.'&err=404');
case 'h3' : header('HTTP/1.0 404 Not Found');
case 'FAQ' :
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gyfaq->FAQ_content();
$topmess = $gyfaq->topmess;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
favicon.ico
wget 'https://lists2.roe3.org/guppy/favicon.ico'
View Content
formyposts.php
wget 'https://lists2.roe3.org/guppy/formyposts.php'
View Content
<?php
/*******************************************************************************
 *   Forum My Publications
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 *  v6.00.11 (March 09, 2023) : correction access Forum
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/forum.inc';
if ($serviz[13] == '') {
        die('STOP ! Forum is not active !');
    }
$gyforum  = new GY_forum();
$gyforum->frtyp = 'FRMP';
$result  = $gyforum->FR_ok($userprefs[1], $lng);
$tconfig = $gyforum->tconfig;
$topmess = $gyforum->topmess;
if ($result[0] == 'FRMP') {
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    exit();
}
$result  = $gyforum->FR_myposts();
$topmess = $gyforum->topmess;
if (function_exists('htable1'))
    htable1($topmess, $result[0], '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
?>
fortopic.php
wget 'https://lists2.roe3.org/guppy/fortopic.php'
View Content
<?php
/*******************************************************************************
 *   Forum Topics
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 *  v6.00.11 (March 09, 2023) : correction accesss Forum
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/forum.inc';
if ($serviz[13] == '') {
        die('STOP ! Forum is not active !');
    }
$widepage = $forum[3];
$gyforum  = new GY_forum();
$gyforum->frtyp = 'FRT';
$result  = $gyforum->FR_ok($userprefs[1], $lng);
$tconfig = $gyforum->tconfig;
$topmess = $gyforum->topmess;
if ($result[0] == 'FRT') {
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result = $gyforum->FRT_content();
include CHEMIN.'inc/hpage.inc';
if ($userprefs[3] == '' || $userprefs[3] == BOX_LEFT.BOX_RIGHT) {
    $left_empty = array_reduce($xposbox[$tconfig][BOX_LEFT], 'EstNonVide', true);
    $userprefs3 = $left_empty ? BOX_RIGHT : BOX_LEFT;
}
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
fortopicarch.php
wget 'https://lists2.roe3.org/guppy/fortopicarch.php'
View Content
<?php
/*******************************************************************************
 *   Forum Topics Archive
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 *  v6.00.11 (March 09, 2023) : correction access Forum
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/funcarch.php';
include CHEMIN.'inc/forum.inc';
if ($serviz[13] == '') {
        die('STOP ! Forum is not active !');
    }
$widepage = $forum[3];
$gyforum  = new GY_forum();
$gyforum->frtyp = 'FRTA';
$result  = $gyforum->FR_ok($userprefs[1], $lng);
$tconfig = $gyforum->tconfig;
$topmess = $gyforum->topmess;
if ($result[0] == 'FRTA') {
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gyforum->FRTA_content();
$topmess = $gyforum->topmess;
if ($userprefs[3] == '' || $userprefs[3] == BOX_LEFT.BOX_RIGHT) {
    $left_empty = array_reduce($xposbox[$tconfig][BOX_LEFT], 'EstNonVide', true);
    $userprefs3 = $left_empty ? BOX_RIGHT : BOX_LEFT;
}
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
forum.php
wget 'https://lists2.roe3.org/guppy/forum.php'
View Content
<?php
/*******************************************************************************
 *   Forum
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaim�
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 *  v6.00.11 (March 09, 2023) : correction access Forum
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/forum.inc';
if ($serviz[13] == '') {
        die('STOP ! Forum is not active !');
    }
$widepage = $forum[3];
$gyforum  = new GY_forum();
$gyforum->frtyp = 'FR';
$result  = $gyforum->FR_ok($userprefs[1], $lng);
$tconfig = $gyforum->tconfig;
$topmess = $gyforum->topmess;
if ($result[0] == 'FR') {
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gyforum->FR_content();
$topmess = $gyforum->topmess;
if ($userprefs[3] == '' || $userprefs[3] == BOX_LEFT.BOX_RIGHT) {
    $left_empty = array_reduce($xposbox[$tconfig][BOX_LEFT], 'EstNonVide', true);
    $userprefs3 = $left_empty ? BOX_RIGHT : BOX_LEFT;
}
if ($result[1] == 1) {
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    header("location:index.php?lng=".$lng);
    btable();
    include 'inc/bpage.inc';
    exit();
}
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
forumarch.php
wget 'https://lists2.roe3.org/guppy/forumarch.php'
View Content
<?php
/*******************************************************************************
 *   Forum Archive
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 *  v6.00.15 (November 29, 2023) : Correction archive functionnality
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/funcarch.php';
include CHEMIN.'inc/forum.inc';
if ($serviz[13] == '') {
        die('STOP ! Forum is not active !');
    }
$widepage = $forum[3];
$gyforum  = new GY_forum();
$gyforum->frtyp = 'FRA';
$result  = $gyforum->FR_ok($userprefs[1], $lng);
$tconfig = $gyforum->tconfig;
$topmess = $gyforum->topmess;
if ($result[0] == 'FRA') {
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gyforum->FRA_content();
$topmess = $gyforum->topmess;
if ($userprefs[3] == '' || $userprefs[3] == BOX_LEFT.BOX_RIGHT) {
    $left_empty = array_reduce($xposbox[$tconfig][BOX_LEFT], 'EstNonVide', true);
    $userprefs3 = $left_empty ? BOX_RIGHT : BOX_LEFT;
}
if ($result[1] == 1) {
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    $location = CHEMIN.($site['URLR'] == 'on' ? 
      $lng.'-'.$urlrw[5].'-6-'.$tconfig.$z2 : 
      'fortopicarch.php?lng='.$lng.'&tconfig='.$tconfig.$z2);
    echo BeginJavascript().'window.location="'.$location.'"'.EndJavascript();
    btable();
    include 'inc/bpage.inc';
    exit();
}
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
guestbk.php
wget 'https://lists2.roe3.org/guppy/guestbk.php'
View Content
<?php
/*******************************************************************************
 *   Guestbook
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/guestbk.inc';
$gygbk   = new GY_guestbk();
$result  = $gygbk->GBK_ok($userprefs[1], $lng);
$tconfig = $gygbk->tconfig;
$topmess = $gygbk->topmess;
switch ($result[0]) {
case 'h1' : header('location:'.$site[3].'error.php?lng='.$lng.'&err=404');
case 'h2' : header('HTTP/1.0 404 Not Found');
case 'GBK' :
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gygbk->GBK_content();
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
links.php
wget 'https://lists2.roe3.org/guppy/links.php'
View Content
<?php
/*******************************************************************************
 *   Links
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/links.inc';
$gylnk   = new GY_links();
$topmess = $gylnk->topmess;
$tconfig = $gylnk->tconfig;
$result  = $gylnk->LNK_ok($userprefs[1], $lng);
switch ($result[0]) {
case 'h0' : header('HTTP/1.0 403 Forbidden');
case 'h1' : header('location:'.$site[3].'error.php?lng='.$lng.'&err=404');
case 'h2' : header('HTTP/1.0 404 Not Found');
case 'LNK' :
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gylnk->LNK_content();
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
lostpass.php
wget 'https://lists2.roe3.org/guppy/lostpass.php'
View Content
<?php
/*******************************************************************************
 *   Lost password
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/
header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/user.inc';
$gylost  = new GY_user();
$result  = $gylost->LOST_content();
$tconfig = $gylost->tconfig;
$topmess = $gylost->topmess;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
lstest.php
wget 'https://lists2.roe3.org/guppy/lstest.php'
View Content
<?php
/*******************************************************************************
 *   Text slideshow
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
define('LSDATAREP', CHEMIN.DATAREP.'other/liquidslider/');

$tconfig = import('tconfig', '', true, 0);
$idls    = import('idls', '', true, 0);

$lsdata  = SelectDBFieldsByField(ReadDBFields(LSDATAREP.'lsindex.dtb'), 0, $idls);
$topmess = $lsdata[0][$lng == $lang[0] ? 2 : 3];
$text    = ReadFullDB(LSDATAREP.'lsconstr_'.$idls.'.inc');

include 'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, 'LS'.$tconfig, '100%');
else
    htable($topmess, '100%');
if (!empty($text)) echo '
<div class="w-100">'.$text.'</div>';

btable();
include 'inc/bpage.inc';
?>
maintenance.php
wget 'https://lists2.roe3.org/guppy/maintenance.php'
View Content
<?php
/*******************************************************************************
 *   Maintenance
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

function ReadFullDB($fic) {
    $DataDB = Array();
    if (is_file($fic)) {
        $DataDB = implode('', file($fic));
    }
    return $DataDB;
}

include 'inc/constantes.php';
include CONFIG;
$charset = 'UTF-8';
$z2      = '';
$lng     = isset($_GET['lng']) ? strip_tags($_GET['lng']) : $lang[0];
if (empty($serviz[44])) header('location: index.php?lng='.$lng);
$lng      = empty($lng) ? $lang[0] : (!in_array($lng, $lang) ? $lang[0] : $lng);
$aml0     = 'articles.php?lng='.$lng.'&pg='.$serviz[177].'&tconfig='.$serviz[178];
$aml1     = $lng.'-'.$urlrw[20].'-102-'.$serviz[177].'-'.$serviz[178];
$aml      = '<a href="'.(!empty($serviz[177]) ? CHEMIN.($site['URLR'] == 'on' ? $aml1 : $aml0).$z2 : '#').'" title="">';
$wbm0     = $site['PG'].'.php?lng='.$lng.'&typ='.TYP_MAIL;
$wbm1     = $lng.'-'.$urlrw[14].'-'.TYP_MAIL;
$wbm      = '<a href="'.CHEMIN.($site['URLR'] == 'on' ? $wbm1 : $wbm0).$z2.'" title="">';
$web[691] = 'Site en maintenance';
$web[692] = '<p>Site en maintenance pour quelques minutes.</p><p>...</p><p>Nous sommes désolés pour la gêne occasionnée, à bientôt.</p>';
$title0   = ' - '.$web[691];
$texte0   = ' - '.$web[692];
$title1   = $texte1 = '';
$web[691] = 'Site under maintenance';
$web[692] = '<p>This site is currently under maintenance.</p><p>...</p><p>We apologize for the inconvenience. Please, come back soon...</p>';
$title1   = ' - '.$web[691];
$texte1   = ' - '.$web[692];

echo '<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset='.$charset.'" />
<title>'.stripslashes($site[($lang[0] == $lng ? 0 : 11)]).$title0.$title1.'</title>
<meta http-equiv="Refresh" Content="60; index.php" />
<link rel="stylesheet" href="'.CHEMIN.'inc/img/general/general.css" />
<style>
body {
    background-color: azure;
    text-align: center;
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 20px;
}
a, img, span, table {
    border-style: none;
    vertical-align: middle;
}
</style>
</head>
<body>
  <div style="width: 640px; border: 1px solid; text-align: center; margin: auto;">
    <div style="margin:auto; padding: 25px;">
      <strong>*** &nbsp;&nbsp;'.stripslashes($site[($lang[0] == $lng ? 0 : 11)]).'&nbsp;&nbsp; ***</strong>
    </div>
    <div style="display:inline-block; padding:5px; width: 200px; font-size: 0.85em;">
      '.$texte0.'
    </div>
    <div style="display:inline-block; padding: 72px 15px 5px 5px; text-align: center; vertical-align: top; width: 160px;">
      <i class="gen-maintenance"></i>
    </div>
    <div style="display:inline-block; padding: 5px; width: 200px; font-size: 0.85em;">
      '.$texte1.'
    </div>
    <p style="padding: 10px;">
	  <a href="http://www.freeguppy.org">
        <i class="gen-gyslogo"></i>
	  </a>
	  <br />
	  <a class="copyright" href="https://www.freeguppy.org/" title="" target="_blank">
        <i class="gen-gypower"></i>
      </a>
	  <span style="font-size: 0.7em; font-weight: normal;">  &nbsp; © '.MP_COPYRIGHT.' &nbsp;</span>
	  <a class="copyright" href="http://cecill.info/index.'.$lng.'.html" title="" target="_blank">
        <i class="gen-gycecill-'.($lng == 'fr' ? 'f' : 'e').'"></i>
      </a>
    </p>
  </div>
</body>
</html>';
?>
memberlist.php
wget 'https://lists2.roe3.org/guppy/memberlist.php'
View Content
<?php
/*******************************************************************************
 *   Member list
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/user.inc';
$gylstmb = new GY_user();
$result  = $gylstmb->LSTMB_ok($userprefs[1], $lng);
$tconfig = $gylstmb->tconfig;
if (!empty($result[0])) {
    $topmess = $gylstmb->topmess;
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gylstmb->LSTMB_content();
$topmess = $gylstmb->topmess;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
memberprf.php
wget 'https://lists2.roe3.org/guppy/memberprf.php'
View Content
<?php
/*******************************************************************************
 *   Member profile
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/user.inc';
$gymemb  = new GY_user();
$result  = $gymemb->MEMB_ok($userprefs[1], $lng);
$tconfig = $gymemb->tconfig;
if (!empty($result[0])) {
    $topmess = $gymemb->topmess;
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gymemb->MEMB_content();
$topmess = $gymemb->topmess;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
news.php
wget 'https://lists2.roe3.org/guppy/news.php'
View Content
<?php
/*******************************************************************************
 *   News
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/news.inc';
$gynews  = new GY_news();
$result  = $gynews->NEWS_ok($userprefs[1], $lng);
$tconfig = $gynews->tconfig;
$topmess = $gynews->topmess;
switch ($result[0]) {
case 'h1' : header('location:'.$site[3].'error.php?lng='.$lng.'&err=404');
case 'h2' : header('HTTP/1.0 404 Not Found');
case 'NEW' :
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result = $gynews->NEWS_content();
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
newsarch.php
wget 'https://lists2.roe3.org/guppy/newsarch.php'
View Content
<?php
/*******************************************************************************
 *   Archived News
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/newsarch.inc';
$gynwa   = new GY_newsarch();
$result  = $gynwa->NWA_ok($userprefs[1], $lng);
$tconfig = $gynwa->tconfig;
$topmess = $gynwa->topmess;
switch ($result[0]) {
case 'h1' : header('location:'.$site[3].'error.php?lng='.$lng.'&err=404');
case 'h2' : header('HTTP/1.0 404 Not Found');
case 'NWA' :
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result = $gynwa->NWA_content();
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
newsletter.php
wget 'https://lists2.roe3.org/guppy/newsletter.php'
View Content
<?php
/*******************************************************************************
 *   Newsletter
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/newsletter.inc';
$gynwl   = new GY_newsletter();
$result  = $gynwl->NWL_ok($userprefs[1], $lng);
$tconfig = $gynwl->tconfig;
$topmess = $gynwl->topmess;
if ($result[0] == 'NWL') {
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gynwl->NWL_content();
$tconfig = $gynwl->tconfig;
$topmess = $gynwl->topmess;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
newsrss.php
wget 'https://lists2.roe3.org/guppy/newsrss.php'
View Content
<?php
/*******************************************************************************
 *   News RSS
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/newsrss.inc';
$gyrss     = new GY_newsrss();
$result    = $gyrss->RSS_ok($userprefs[1], $lng);
$tconfig   = $gyrss->tconfig;
$topmess   = $gyrss->topmess;
if ($result[0] == 'BSS') {
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gyrss->RSS_content();
$topmess = $gyrss->topmess;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
photorama.php
wget 'https://lists2.roe3.org/guppy/photorama.php'
View Content
<?php
/*******************************************************************************
 *   Photos
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/photorama.inc';
$gyph        = new GY_photo();
$gyph->phtyp = 'PH';
$result      = $gyph->PH_ok($userprefs[1], $lng);
$tconfig     = $gyph->tconfig;
$widepage    = $gyph->widepage;
$topmess     = $gyph->topmess;
$userprefs3  = $gyph->userprefs3;
switch ($result[0]) {
case 'h1' : header('location:'.$site[3].'error.php?lng='.$lng.'&err=404');
case 'h2' : header('HTTP/1.0 404 Not Found');
case 'PH' :
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result = $gyph->PH_content();
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
photorama2.php
wget 'https://lists2.roe3.org/guppy/photorama2.php'
View Content
<?php
/*******************************************************************************
 *   Photos
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/photorama.inc';
$gyph        = new GY_photo();
$gyph->phtyp = 'PH2';
$result      = $gyph->PH_ok($userprefs[1], $lng);
$tconfig     = $gyph->tconfig;
$widepage    = $gyph->widepage;
switch ($result[0]) {
case 'h1'  : header('location:'.$site[3].'error.php?lng='.$lng.'&err=404');
case 'h2'  : header('HTTP/1.0 404 Not Found');
case 'PH2' :
    $topmess    = $gyph->topmess;
    $userprefs3 = $gyph->userprefs3;
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result     = $gyph->PH2_content();
$topmess    = $gyph->topmess;
$userprefs3 = $gyph->userprefs3;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
postguest.php
wget 'https://lists2.roe3.org/guppy/postguest.php'
View Content
<?php
/*******************************************************************************
 *   Guest Post Routine
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2023 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 *  v6.00.18 (February 11, 2024) : add crypt in unlock post
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';

$crypt   = isset($_POST['crypt']) ? strip_tags($_POST['crypt']) : NULL;
$cryptok = (!$crypt) ? false : chk_crypt($crypt);
$actioncomplete = '';
function TestCoherenceSoumission($typ, $pg, $num = null) {
    global $type, $fielda1;
    switch ($typ) {
    case TYP_REACT :
        if (FileDbExist(DBBASE.TestFileId($pg).INCEXT)) {
            ReadDoc($pg);
            return $type == TYP_ART;
        } else {
            return FALSE;
        }
        break;
    case TYP_REBLOG :
        if (FileDbExist(DBBASE.TestFileId($pg).INCEXT)) {
            ReadDoc($pg);
            return $type == TYP_BLOG;
        } else {
            return FALSE;
        }
        break;
    case TYP_THREAD :
        if (FileDbExist(DBBASE.TestFileId($pg).INCEXT)) {
            ReadDoc($pg);
            if ($type != TYP_FORUM) {
                return FALSE;
            } else {
                return $fielda1 == $num;
            }
        } else {
            return FALSE;
        }
        break;
    default :
        return TRUE;
    }
}

function FindIndexDBFields($fic, $submit0, $submit1, $submit2) {
    if (FileDBExist($fic)) {
        $DataDB = ReadDBFields($fic);
        for ($i = 0; $i < count($DataDB); $i++) {
            if (@stristr($DataDB[$i][0],$submit0)
            &&  @stristr($DataDB[$i][1],$submit1)
            &&  @stristr($DataDB[$i][2],$submit2)) {
                return $i;
            }
        }
    }
    return FALSE;
}

function ctrlMail($pseudo, $pemail) {
    global $userprefs;
    if ($pseudo == $userprefs[1]) {
        return ($pemail == $userprefs[2]);
    } else {
        $dbmail = array();
 //       $bad    = array('.', '..', 'index.php');
 //       $files  = scandir(MSGREP);
 //       $files  = array_diff($files, $bad);
		$files = opendir(MSGREP);
	    $retour = true;
		$retoura = '';
		while ($file = readdir($files)) 
		{
			if (substr($file, -3) == 'dtb') {
				$userdb = ReadDBFields(MSGREP.$file);
				if (count($userdb) > 1 ) 
				{		
                    if (isset($userdb[1][3]))
					{
					    $pos = strpos(@$userdb[1][3], "@");
						if ($pos != false)
						{
							if (@$userdb[1][3] == $pemail) $retour = FALSE;
						$retoura .= '
user: '.$file.' nbre ligne : '.count($userdb).' Mail: '.@$userdb[1][3]
;
						}
						else
						$retoura .= '
Erreur formatage zone pas de adresse user: '.$file.' nbre ligne : '.count(@$userdb).' Mail: '.@$userdb[1][3]
;
					}
					else $retoura .= '
Erreur formatage zone non présente user: '.$file.' nbre ligne : '.count($userdb).' Mail: '.@$userdb[1][3]
;
				}
				else
				 $retoura .= '
Erreur nombre de lignes user: '.$file.' nbre ligne : '.count($userdb)
;
					
				WriteFullDB(CONFIGREP.'suivipemail.dtb', $retoura);

			}
        }
		closedir($files);
        return $retour;
    }
}

$REMOTE_ADDR     = getIPadress($site[6] == 'on' ? (isset($_SERVER['HTTP_X_FORWARDED_FOR'])? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']): $_SERVER['REMOTE_ADDR']);
$PHP_SELF        = $_SERVER['PHP_SELF'];
$HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT'];
$SERVER_NAME     = $_SERVER['SERVER_NAME'];

if (import('add', 'GET') != NULL) die('STOP ! Variable $add : illegal origine');
$add = import('add', 'POST');
$lng = import('lng');
$typ = import('typ');

switch ($add) {
case NULL :
    $token      = uniqid(rand(), true);
    $token_time = time();
    setcookie(POST_COOKIE, $token.CONNECTOR.$token_time, time() + (30 * 60), '/', $_DOMAIN, $_SECURE, $_HTTPONLY);
    break;
case 1 :
	if (isset($_COOKIE[POST_COOKIE]))
	{
		$tokens     = explode(CONNECTOR, $_COOKIE[POST_COOKIE]);
		$token_time = time() - (15 * 60);
	}
	else
	{
		$tokens[0] = '';
		$tokens[1] = '0';
	}
	if (empty($tokens[0]) || $tokens[1] < time() - (30 * 60)) {
        echo BeginJavascript().'
var sto = "'.str_replace('<br />', '\n', stripslashes($web[681])).'";
alert(sto);
'.EndJavascript();
        $add = -1;
        $token      = uniqid(rand(), true);
        $token_time = time();
        setcookie(POST_COOKIE, $token.CONNECTOR.$token_time, time() + (30 * 60), '/', $_DOMAIN, $_SECURE, $_HTTPONLY);
    }
	elseif ($tokens[1] + 2 > time()) {
        echo BeginJavascript().'
var sto = "'.str_replace('<br />', '\n', stripslashes($web[682])).'"; // Pour lutter contre les robots spammeurs, 
alert(sto);
'.EndJavascript();
        $add = -1;
        $token      = uniqid(rand(), true);
        $token_time = time();
        setcookie(POST_COOKIE, $token.CONNECTOR.$token_time, time() + (30 * 60), '/', $_DOMAIN, $_SECURE, $_HTTPONLY);
    }
    break;
default :
    die('STOP ! Variable $add : illegal value ('.$add.')');
}
$dbcat = array();
if ($serviz[13] == 'on')
	$dbcat = ReadDBFields(DBFORUMCAT);
$okfr  = false;
if (!empty($dbcat)) 
{
	foreach ($dbcat as $cat) 
	{
		if (!isset($cat[5])) $cat[5] = '';
		if ($cat[5] == 'on') 
		{ 
			$okfr = true; break;
		}
	}
}

$cryptdisp = '';
switch ($typ) {
case TYP_FORUM :
case TYP_THREAD :
    if ($serviz[13] == '' || !$okfr) {
        die('STOP ! Forum is not active !');
    }
    $cryptdisp = $serviz[91];
    $tconfig   = $menuico[19] == 'ALL' ? import('tconfig', '', true, 0) : $menuico[19];
    break;
case TYP_GUESTBK :
    if ($serviz[12] == '') {
        die('STOP ! Guest book is not active !');
    }
    $cryptdisp = $serviz[90];
    $tconfig   = $menuico[18] == 'ALL' ? import('tconfig', '', true, 0) : $menuico[18];
    break;
case TYP_NEWS :
    if ($serviz[8] == '' || $site[5] == 2) {
        die('STOP ! News submit is not active !');
    }
    $cryptdisp = $serviz[89];
    $tconfig   = $menuico[12] == 'ALL' ? import('tconfig', '', true, 0) : $menuico[12];
    break;
case TYP_BLOG :
    if ($serviz[53] == '' || $site[30] == 2) {
        die('STOP ! Blog submit is not active !');
    }
    $cryptdisp = $serviz[96];
    $tconfig   = $menuico[13] == 'ALL' ? import('tconfig', '', true, 0) : $menuico[13];
    break;
case TYP_REBLOG :
    if ($serviz[57] == 2) {
        die('STOP ! Comment is not active !');
    }
    $cryptdisp = $serviz[97];
    $tconfig   = $menuico[13] == 'ALL' ? import('tconfig', '', true, 0) : $menuico[13];
    break;
case TYP_REACT :
    if ($serviz[29] == 2) {
        die('STOP ! Reaction is not active !');
    }
    $cryptdisp = $serviz[92];
    $tconfig   = import('tconfig', '', true, 0);
    break;
case TYP_RECO :
    if ($serviz[62] == '') {
        die('STOP ! Recommander is not active !');
    }
    $cryptdisp = $serviz[94];
    $tconfig   = import('tconfig', '', true, 0);
    break;
case TYP_MAIL :
    if ($user[3] == '') {
        die('STOP ! Mail is not active !');
    }
    $cryptdisp = $serviz[95];
    $tconfig   = import('tconfig', '', true, 0);
    break;
default :
    die('STOP ! Variable $typ : illegal value ('.$typ.')');
}

switch ($lng) {
case $lang[0] :
case $lang[1] :
    break;
default :
    die('STOP ! Variable $lng : illegal value ('.$lng.')');
}

$pseudo    = import('pseudo', 'POST', true, '');
$ctrl_spam = import('code_pseudo', 'POST');
$pemail    = import('pemail', 'POST');
$pehide    = import('pehide', 'POST', true, '');
$pfmail    = import('pfmail', 'POST');
$ptit      = import('ptit', 'POST', false);
$purl      = import('purl', 'POST');
$cat       = import('cat');
$tocat     = import('tocat');
$catforum  = getForumCatFull(import('catforum', 'POST'));
$rub       = import('rub', 'POST', false);
$num       = import('num');
$antispam  = import('antispam', 'POST');
$mod       = import('mod');
$group     = import('group', 'POST');
$index     = import('index');
$replymail = import('replymail');
$noreply   = import('noreply');
$filesign  = import('filesign', 'POST');
$pg        = import('pg');
$rgpd      = import('rgpd', 'POST', true, '');

require CHEMIN.'inc/ckeditor_config/editors_functions.php';
require_once CHEMIN.'inc/htmlpurifier/library/HTMLPurifier.auto.php';
$configpg = HTMLPurifier_Config::createDefault();
$configpg->set('HTML.Allowed', '
  p[class|id|style],div[class|id|style],strong,em,u,b,sub,sup,span[class|style],pre[class],blockquote[class|style],
  a[href|target|title|style],img[src|alt|style],ul[style],ol[start|style],li');
$configpg->set('Attr.AllowedFrameTargets', array('_blank', '_self'));
$purifier = new HTMLPurifier($configpg);
$ptxt     = import('ptxt', 'POST', FALSE);
$ptxt     = $purifier->purify(isAuthorImg($userprefs[1]) ? $ptxt : getPGTXT($ptxt));
$pmess    = str_replace("inc/img", $site[3]."inc/img", $ptxt);

if (1 != $add && -1 != $add && !TestCoherenceSoumission($typ, $pg, $num)) die('STOP ! Problème de cohérence !');

$data   = array_pad(array(), 18, '');
$pseudo = KeepGoodChars(RemoveConnector(RemoveQuote(stripslashes(CutLongWord(strip_tags($pseudo), max($serviz[148], 80))))));
$pemail = checkEmail(CutLongWord($pemail));
$pfmail = checkEmail(CutLongWord($pfmail));
$purl   = checkUserWebsiteUrl(CutLongWord($purl, 80));
$ptit   = WrapLongWords(CutLongWord($ptit, 100));
$ptit   = ReplaceSpecialChars($ptit);

$err_pseudo = empty($pseudo) && ($add == 1 || $add == -1) ? true : false;
$err_pemail = empty($pemail) && ($add == 1 || $add == -1) ? true : false;
$err_pfmail = empty($pfmail) && ($add == 1 || $add == -1) && $typ == TYP_RECO ? true : false;
$err_ptit   = empty($ptit) && empty($mod) && ($add == 1 || $add == -1) ? true : false;
$err_crypt  = $serviz[100] != '0' && $cryptdisp == 'on' && ($userprefs[1] == '' || $serviz[98] == '') && !$cryptok && ($add == 1 || $add == -1) ? true : false;
$err_ptxt   = empty($ptxt) && ($add == 1 || $add == -1) && !in_array($mod, array('lock', 'up', 'raz', 'top')) && $typ != TYP_RECO ? true : false;
$err_rgpd   = !empty($serviz[177]) && empty($rgpd) && !OK_RGPD_date($userprefs[1]) && ($add == 1 || $add == -1) ? true: false;

$erreur  = '';
$erreur .= $err_pseudo ? '<li>'.$web[266].'</li>': ''; // Caractères non valides (2 à  caractères comprenant lettres non accentuées, chiffres et _-
$erreur .= $err_pemail ? '<li>'.$web[42].'</li>': '';
$erreur .= $err_pfmail ? '<li>'.$web[122].'</li>': '';
$erreur .= $err_ptit   ? '<li>'.$web[123].'</li>': '';
$erreur .= $err_ptxt   ? '<li>'.$web[43].'</li>': '';
$erreur .= $err_crypt  ? '<li>'.$web[529].'</li>': ''; //code de sécurité invalide !
$erreur .= $err_rgpd   ? '<li>'.$web[405].'</li>': ''; // l'acceptation des conditions est requise

$add = (empty($ptit) && empty($mod)) || $err_ptxt || $err_pseudo || $err_pemail || $err_crypt || !empty($ctrl_spam) ? null : $add;

if ($mod == 'top') {
    $forum6   = import('forum6');
    $forum[6] = empty($forum6) ? $forum[6] : $forum6;
}

$ok    = $web[45];
$infos = 'IP: '.$REMOTE_ADDR.' ('.gethostbyaddr($REMOTE_ADDR).')<br />Referer : '.$PHP_SELF.'<br />Browser : '.$HTTP_USER_AGENT;

if ($add == 1 && empty($erreur)) {
    
    if (!empty($log3)) {
        $url  = parse_url($log3);
        $host = isset($url['host']) ? $url['host'] : '';
        $ip   = gethostbyname($host);
        if (!empty($host) && $ip != $host) {
            if ($host != $SERVER_NAME && $host != 'www.'.$SERVER_NAME) {
                die("STOP ! Illegal action from '$host' (IP=$ip)");
            }
        }
    }
    
    $ctrl_ident = true; 
	if (!in_array($typ, array(TYP_RECO, TYP_MAIL)) && is_file(MSGREP.$pseudo.DBEXT) && $pseudo != $userprefs[1]) {
		$erreur .= '<li>'.$web[392].'</li>'; // Ce pseudo est déjà utilisé !!!
        $ctrl_ident = false;
	}
    if (!ctrlMail($pseudo, $pemail)) {
		$erreur .= '<li>'.$web[375].'</li>'; // Ce courriel est inconnu ou est déjà utilisé !!!
        $ctrl_ident = false;
    }
	if ($ctrl_ident) {
		$index = FindIndexDBFields(DBANTISPAM, $antispam, $REMOTE_ADDR, $typ);
		if ($index === false && $typ != TYP_RECO) {
			/*******************************************************************
			 * Créez le fichier inc/postguest_antispam.inc pour ajouter ici
			 * la ou les actions que vous souhaitez
			 * par exemple : mail à l'administrateur, inscription dans un fichier...
			 ******************************************************************
			 * Create a file inc/postguest_antispam.inc
			 * to add here the action which you wish
			 * for example: e-mail with the administrator, inscription in a file...
			 ******************************************************************/
			if (is_file('inc/postguest_antispam.inc')) include 'inc/postguest_antispam.inc';
			die('STOP ! Anti-SPAM !');
		}
		else {
			DeleteDBFieldById(DBANTISPAM, $index);
			if ($typ == TYP_THREAD && !preg_match('!^[1-9][0-9]*$!', $num)) {
				die('STOP ! num : '.$num.' illegal value!');
			}
			if ($userprefs[1] == '') {
				switch ($typ) {
				case TYP_NEWS :
					if (!isAccessGranted($members[8])) die('STOP ! News : '.$web[342].' !');
					break;
				case TYP_BLOG :
					if (!isAccessGranted($members[16])) die('STOP ! Blog : '.$web[342].' !');
					break;
				case TYP_GUESTBK :
					if (!isAccessGranted($members[9])) die('STOP ! Guest book : '.$web[342].' !');
					break;
				case TYP_FORUM :
				case TYP_THREAD :
					if (!isAccessGranted($members[10])) die('STOP ! Forum : '.$web[342].' !');
					break;
				case TYP_REACT :
					if (!isAccessGranted($members[11]) || !isAccessGranted($members[1])) die('STOP ! Reaction : '.$web[342].' !');
					break;
				case TYP_REBLOG :
					if (!isAccessGranted($members[17]) || !isAccessGranted($members[15])) die('STOP ! Comments : '.$web[342].' !');
					break;
				}
			}
		}
        
        if (!empty($userprefs[1]) && $rgpd == 'on') setRGPDdate();
        
		$datefrmt = FormatDate(GetCurrentDateTime());

		if ($mod == '' && !$erreur) {
			if ($typ == TYP_THREAD && $serviz[41] != '1') {
				$dbworkmail = ReadDBFields(DBFORUM);
				for ($i = 0; $i < count($dbworkmail); $i++) {
					if ($num == $dbworkmail[$i][1]){
						$sujetthread = $dbworkmail[$i][5];
						$catthread   = $dbworkmail[$i][12];
						break;
					}
				}
				$dbmailuniq = Array();
				$dbworkuniq = ReadDBFields(DBTHREAD);
				for ($i = 0; $i < count($dbworkuniq); $i++) {
					if ($num == $dbworkuniq[$i][1] && $dbworkuniq[$i][2] == 0) {
						$pgview = $dbworkuniq[$i][3];
					}
					if ($num == $dbworkuniq[$i][1] && $dbworkuniq[$i][9] == 'on') {
						$dbmailuniq[] = $dbworkuniq[$i][5];
					}
				}
                if ($noreply == 'on') {
                    for ($i = 0; $i < count($dbworkuniq); $i++) {
                        if ($num == $dbworkuniq[$i][1] && $dbworkuniq[$i][5] == $pemail && $dbworkuniq[$i][9] == 'on') {
                            $dbworkuniq[$i][9] = '';
                        }
                    }
                    WriteDBFields(DBTHREAD, $dbworkuniq);
                }
				$mailuniq = ValUnique($dbmailuniq);
				for ($i = 0; $i < count($mailuniq); $i++) {
					$to    = $mailuniq[$i];
					$sujet = $web[345].' '.$sujetthread;
					$bodycorps  = $web[346].$sujetthread.'<br /><br />';
					$bodycorps .= $web[109].'<hr />'.ForceToAbsolute(stripslashes($ptxt)).'<hr /><br />';
					$bodycorps .= $web[347].'<br />';
					$bodycorps .= '<a href="'.$site[3].($site['URLR'] == 'on' ? $lng.'-'.$urlrw[5].'-5-'.$pgview.'-'.$catthread.$z2 : $site['TH'].'.php?lng='.$lng.'&pg='.$pgview.'&cat='.$catthread.$z2).'">';
					$bodycorps .= $site[3].($site['URLR'] == 'on' ? $lng.'-'.$urlrw[5].'-5-'.$pgview.'-'.$catthread.$z2 : $site['TH'].'.php?lng='.$lng.'&pg='.$pgview.'&cat='.$catthread.$z2);
					$bodycorps .= '</a><br /><br />';
					$bodycorps .= $web[348].'<br />'.$user[0];
					eMailHtmlTo($sujet, $bodycorps, $to);
				}
			}
			if (in_array($typ, array(TYP_NEWS, TYP_BLOG, TYP_GUESTBK, TYP_FORUM, TYP_THREAD, TYP_REACT, TYP_REBLOG))) {
				$data    = array_fill(0, 18, '');
				$data[0] = $typ == TYP_THREAD ? TYP_FORUM : $typ;
				switch ($typ) {
				case TYP_NEWS :
					$data[2] = $site[5] == 1 ? 'i' : 'a';
					$ok      = $site[5] == 1 ? $web[48] : $ok;
					break;
				case TYP_BLOG :
					$data[2] = $site[30] == 1 ? 'i' : 'a';
					$ok      = $site[30] == 1 ? $web[48] : $ok;
					break;
				case TYP_REBLOG :
					$data[2] = $serviz[57] == 1 ? 'i': 'a';
					$ok      = $serviz[57] == 1 ? $web[48] : $ok;
					break;
				case TYP_GUESTBK :
                    if ($serviz[12] == 'on') {
                        $data[2] = $serviz[40] == 1 ? 'i' : 'a';
                        $ok      = $serviz[40] == 1 ? $web[48] : '';
                    }
					break;
				case TYP_FORUM :
                case TYP_THREAD :
					if ($serviz[13] == 'on' && $okfr) {
                        $data[2] = $serviz[41] == 1 ? 'i' : 'a';
                        $ok      = $serviz[41] == 1 ? $web[48] : '';
                    }
					break;
				case TYP_REACT :
					$data[2] = $serviz[29] == 1 ? 'i' : 'a';
					$ok      = $serviz[29] == 1 ? $web[48] : $ok;
					break;
				default :
					$data[2] = 'a';
					$ok      = '';
					break;
                }
				$data[5] = $pseudo;
				$data[6] = $pemail;
				switch ($typ) {
				case TYP_BLOG :
                    $dbr = ReadDBFields(DBINDEX.TYP_BRUB.DBEXT);
                    $rb  = SelectDBFieldsByField($dbr, ($lng == $lang[0] ? 0 : 1), $rub);
					$data[7] = (empty($rb) ? $rub : $rb[0][0]);
					$data[8] = (empty($rb) ? $rub : $rb[0][1]);
					break;
				case TYP_GUESTBK :
					$data[7] = GetNextChildNumber($typ);
					break;
				case TYP_REACT :
				case TYP_REBLOG :
					$data[7] = GetNextChildNumber($typ, $pg);
					$data[8] = $pg;
					break;
				case TYP_FORUM :
					$catthread = getForumCatFull(empty($catthread) ? $catforum : $catthread);
					if ($serviz[41]) {
						$data[7] = 1;
						$dbwork  = SelectDBFieldsByNotStatus(SelectDBFields(TYP_FORUM, '', ''), 'd');
						if (count($dbwork) > 0) {
							$data[7] = ReadCounter(DBFORUMCOUNTER)+1;
							WriteCounter(DBFORUMCOUNTER,$data[7]);
						}
					}
					else {
						$dbthrd = array();
						$dbwork = ReadDBFields(DBFORUM);
						for ($i = 0; $i < count($dbwork); $i++) {
							$dbthrd[] = $dbwork[$i][1];
						}
						@rsort($dbthrd);
						if (!empty($dbthrd)) {
							$data[7] = $dbthrd[0] + 1;
							WriteCounter(DBFORUMCOUNTER,$data[7]);
						}
						else {
							$data[7] = ReadCounter(DBFORUMCOUNTER)+1;
							WriteCounter(DBFORUMCOUNTER,$data[7]);
						}
					}
					$data[8] = '0';
					break;
				case TYP_THREAD :
					$data[7]  = $num;
					$data[8]  = GetNextChildNumber(TYP_FORUM, $num);
					$dbns     = IndexDbFieldsByField(ReadDbFields(DBFORUM), 1);
					$catforum = getForumCatFull($dbns[$num][12]);
					unset($dbns);
					break;
				}
				switch ($typ) {
				case TYP_GUESTBK :
					$data[9]  = $purl;
					$data[11] = PutBR($ptxt);
					break;
				case TYP_FORUM :
                case TYP_THREAD :
					$data[9]  = $typ == TYP_FORUM ? $ptit : '';
					$data[10] = getForumCatFull($catforum);
					if (!empty($userprefs[6])) {
						$data[11] = PutBR($ptxt).'<p class="text-right thsign">'.ReplaceFrSigns($userprefs[6]).'</p>';
					}
					else {
						$data[11] = PutBR($ptxt);
					}
					$data[12] = $userprefs[8];
					if (!empty($userprefs[1])) {
						$idcountmsg = ReadCounter(COUNTMSGREP.$pseudo.DBEXT) + 1;
					}
					else {
						$idcountmsg = 'v';
					}
					$data[14] = $idcountmsg;
					$data[15] = $userprefs[9];
					$data[16] = $replymail;
					break;
				case TYP_REACT :
                case TYP_REBLOG :
					$data[11] = PutBR($ptxt);
					$data[17] = $group; /// modif accès privé
					break;
				default :
					if ($site[5] == '0') {
						$data[9]  = $ptit;
						$data[10] = $ptit;
						$data[11] = PutBR($ptxt);
						$data[12] = PutBR($ptxt);
					}
					else {
						$data[9]  = $ptit;
						$data[11] = PutBR($ptxt);
						$data[12] = PutBR($ptxt);
					}
					break;
				}
				$data[13] = $pehide == 'on' ? 'on' : '';
				if (!empty($userprefs[1]) && ($typ == TYP_FORUM) || ($typ == TYP_THREAD)) {
					$idcountmsg = ReadCounter(COUNTMSGREP.$pseudo.DBEXT) + 1;
					WriteCounter(COUNTMSGREP.$pseudo.DBEXT,$idcountmsg);
				}
				$id = ActionOnFields('add', $data);
				$ok = $web[46]; // Merci de votre contribution
                
                UpdateSitemaps($typ);
			}
			elseif ($typ != TYP_RECO) {
				$ok = $web[47]; // Cette saisie n'est pas valide !
			}
			if ($typ == TYP_MAIL || $typ == TYP_RECO) {
				$ok = $web[46]; // Merci de votre contribution
			}
		}
		else { // cas modif thread ou blog
			include 'inc/'.($typ == TYP_BLOG ? 'mod_blog' : 'mod_thread').'.inc';
			$ok = $web[46]; // Merci de votre contribution
		}

        $replyto = trim($pseudo).'<'.trim($pemail).'>';
		if ($supervision[2] == 'on' && $typ == TYP_NEWS) {
			$eSub  = stripslashes($site[($lang[0] == $lng ? 0 : 11)])." ".$web[106];
			$eMsg  = stripslashes($site[($lang[0] == $lng ? 0 : 11)])." - ".$web[106].", ".$web[104]." ".$datefrmt.".<br />";
			$eMsg .= $web[107].stripslashes($pseudo)." (".stripslashes($pemail).").<br />";
			$eMsg .= $web[108].stripslashes($ptit)."<br />";
			$eMsg .= '<hr />'.$web[109].'<br />'.ForceToAbsolute(stripslashes($ptxt));
			$eMsg .= "<hr />".$web[349]." : ".$web[354].$id;
			$eMsg .= "<br />".$web[360].'<a href="'.$site[3].$site['NE'].".php?lng=".$lng."&pg=".$id.$z2.'">'.$site[3].$site['NE'].".php?lng=".$lng."&pg=".$id.'</a>';
			$eMsg .= "<br />".$web[350].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=news&form=2&id=".$id.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=news&form=2&id=".$id.'</a>';
			if ($site[5] == "1") {
				$eMsg .= "<br />".$web[351].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=news&act=a&id=".$id.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=news&act=a&id=".$id.'</a>';
			} else {
				$eMsg .= "<br />".$web[352].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=news&act=i&id=".$id.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=news&act=i&id=".$id.'</a>';
			}
			$eMsg .= "<br />".$web[353].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=news&del=".$id.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=news&del=".$id.'</a>';
			$eMsg .= "<hr />".$infos;
			$maillist = GetListCollaboratorEmail(TYP_NEWS);
			eMailHtmlTo($eSub, $eMsg, trim(implode(' ', $maillist).' '.trim($supervision[10]).' '.$user[1]), $user[1], '', $replyto);
		}
		if ($supervision[8] == "on" && $typ == TYP_BLOG && empty($mod)) {
			$eSub  = stripslashes($site[($lang[0] == $lng ? 0 : 11)])." ".$web[396];
			$eMsg  = stripslashes($site[($lang[0] == $lng ? 0 : 11)])." - ".$web[396].", ".$web[104]." ".$datefrmt.".<br />";
			$eMsg .= $web[107].stripslashes($pseudo)." (".stripslashes($pemail).").<br />";
			$eMsg .= $web[108].stripslashes($ptit)."<br />";
			$eMsg .= '<hr />'.$web[109].'<br />'.ForceToAbsolute(stripslashes($ptxt));
			$eMsg .= "<hr />".$web[349]." : ".$web[354].$id;
			$eMsg .= "<br />".$web[360].'<a href="'.$site[3].$site['BL'].".php?lng=".$lng."&pg=".$id.$z2.'">'.$site[3].$site['BL'].".php?lng=".$lng."&pg=".$id.'</a>';
			$eMsg .= "<br />".$web[350].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=blog&form=2&id=".$id.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=blog&form=2&id=".$id.'</a>';
			if ($site[30] == "1") {
				$eMsg .= "<br />".$web[351].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=blog&act=a&id=".$id.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=blog&act=a&id=".$id.'</a>';
			} else {
				$eMsg .= "<br />".$web[352].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=blog&act=i&id=".$id.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=blog&act=i&id=".$id.'</a>';
			}
			$eMsg .= "<br />".$web[353].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=blog&del=".$id.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=blog&del=".$id.'</a>';
			$eMsg .= "<hr />".$infos;
			$maillist = GetListCollaboratorEmail(TYP_BLOG);
			eMailHtmlTo($eSub, $eMsg, trim(implode(' ', $maillist).' '.trim($supervision[10]).' '.$user[1]), $user[1], '', $replyto);
		}
		if ($supervision[9] == "on" && $typ == TYP_REBLOG) {
			$eSub  = stripslashes($site[($lang[0] == $lng ? 0 : 11)])." ".$web[379]." ".$web[381];
			$eMsg  = stripslashes($site[($lang[0] == $lng ? 0 : 11)])." - ".$web[379]." ".$web[381].", ".$web[104]." ".$datefrmt.".<br />";
			$eMsg .= $web[107].stripslashes($pseudo)." (".stripslashes($pemail).").<br />";
			ReadDoc($pg);
			$eMsg .= $web[183]." - ".$fieldb1."<br />";
			$eMsg .= '<hr />'.$web[109].'<br />'.ForceToAbsolute(stripslashes($ptxt));
			$eMsg .= "<hr />".$web[349]." : ".$web[39].$data[7]." - ".$web[355].$fileid." - ".$web[356].$id;
			$eMsg .= "<br />".$web[360].'<a href="'.$site[3].$site['BL'].".php?lng=".$lng."&pg=".$fileid."&reblog=".$id.$z2.'">'.$site[3].$site['BL'].".php?lng=".$lng."&pg=".$fileid."&reblog=".$id.'</a>';
			$eMsg .= "<br />".$web[350].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=reblog&form=2&id=".$id.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=reblog&form=2&id=".$id.'</a>';
			if ($serviz[57] == "ok") {
				$eMsg .= "<br />".$web[351].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=reblog&act=a&id=".$id.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=reblog&act=a&id=".$id.'</a>';
			} else {
				$eMsg .= "<br />".$web[352].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=reblog&act=i&id=".$id.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=reblog&act=i&id=".$id.'</a>';
			}
			$eMsg .= "<br />".$web[353].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=reblog&del=".$id.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=reblog&del=".$id.'</a>';
			$eMsg .= "<hr />".$infos;
			$maillist = GetListCollaboratorEmail(TYP_REBLOG);
			eMailHtmlTo($eSub, $eMsg, trim(implode(' ', $maillist).' '.trim($supervision[10]).' '.$user[1]), $user[1], '', $replyto);
		}
		if ($supervision[3] == "on" && $typ == TYP_GUESTBK) {
			$eSub  = stripslashes($site[($lang[0] == $lng ? 0 : 11)])." ".$web[113];
			$eMsg  = stripslashes($site[($lang[0] == $lng ? 0 : 11)])." - ".$web[113].", ".$web[104]." ".$datefrmt.".<br />";
			$eMsg .= $web[107].stripslashes($pseudo)." (".stripslashes($pemail).").<br />";
			$eMsg .= $web[112].stripslashes($purl)."<br />";
			$eMsg .= '<hr />'.$web[109].'<br />'.ForceToAbsolute(stripslashes($ptxt));
			$eMsg .= "<hr />".$web[349]." : ".$web[39].$data[7]." - ".$web[354].$id;
			$eMsg .= "<br />".$web[360].'<a href="'.$site[3].$site['GB'].".php?lng=".$lng."&pg=".$id.$z2.'">'.$site[3].$site['GB'].".php?lng=".$lng."&pg=".$id.'</a>';
			$eMsg .= "<br />".$web[350].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=guestbk&form=2&id=".$id.'">'."admin/admin.php?lng=".$lng."&pg=guestbk&form=2&id=".$id.'</a>';
			if ($serviz[40] != "") {
				$eMsg .= "<br />".$web[351].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=guestbk&act=a&id=".$id.'">'."admin/admin.php?lng=".$lng."&pg=guestbk&act=a&id=".$id.'</a>';
			} else {
				$eMsg .= "<br />".$web[352].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=guestbk&act=i&id=".$id.'">'."admin/admin.php?lng=".$lng."&pg=guestbk&act=i&id=".$id.'</a>';
			}
			$eMsg .= "<br />".$web[353].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=guestbk&del=".$id.'">'."admin/admin.php?lng=".$lng."&pg=guestbk&del=".$id.'</a>';
			$eMsg .= "<hr />".$infos;
			$maillist = GetListCollaboratorEmail(TYP_GUESTBK);
			eMailHtmlTo($eSub, $eMsg, trim(implode(' ', $maillist).' '.trim($supervision[10]).' '.$user[1]), $user[1], '', $replyto);
		}
		if ($supervision[6] == "on" && $typ == TYP_REACT) {
			$eSub  = stripslashes($site[($lang[0] == $lng ? 0 : 11)])." ".$web[182];
			$eMsg  = stripslashes($site[($lang[0] == $lng ? 0 : 11)])." - ".$web[182].", ".$web[104]." ".$datefrmt.".<br />";
			$eMsg .= $web[107].stripslashes($pseudo)." (".stripslashes($pemail).").<br />";
			ReadDoc($pg);
			$eMsg .= $web[183]." - ".$fieldb1."<br />";
			$eMsg .= '<hr />'.$web[109].'<br />'.ForceToAbsolute(stripslashes($ptxt));
			$eMsg .= "<hr />".$web[349]." : ".$web[39].$data[7]." - ".$web[355].$fileid." - ".$web[356].$id;
			$eMsg .= "<br />".$web[360].'<a href="'.$site[3]."articles.php?lng=".$lng."&pg=".$fileid."&react=".$id.$z2.'">'.$site[3]."articles.php?lng=".$lng."&pg=".$fileid."&react=".$id.'</a>';
			$eMsg .= "<br />".$web[350].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=react&form=2&id=".$id.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=react&form=2&id=".$id.'</a>';
			if ($serviz[29] == "1") {
				$eMsg .= "<br />".$web[351].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=react&act=a&id=".$id.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=react&act=a&id=".$id.'</a>';
			} else {
				$eMsg .= "<br />".$web[352].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=react&act=i&id=".$id.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=react&act=i&id=".$id.'</a>';
			}
			$eMsg .= "<br />".$web[353].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=react&del=".$id.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=react&del=".$id.'</a>';
			$eMsg .= "<hr />".$infos;
			$maillist = GetListCollaboratorEmail(TYP_NEWS);
			eMailHtmlTo($eSub, $eMsg, trim(implode(' ', $maillist).' '.trim($supervision[10]).' '.$user[1]), $user[1], '', $replyto);
		}
		if ($supervision[4] == "on" && ($typ == TYP_FORUM || $typ == TYP_THREAD)) {
			$eSub     = stripslashes($site[($lang[0] == $lng ? 0 : 11)])." ".$web[114];
			$eMsg     = stripslashes($site[($lang[0] == $lng ? 0 : 11)])." - ".$web[114].", ".$web[104]." ".$datefrmt.".<br />";
			$eMsg    .= $web[107].stripslashes($pseudo)." (".stripslashes($pemail).").<br />";
            $dbforcat = ReadDBFields(DBFORUMCAT);
            for ($i = 0; $i < count($dbforcat); $i++) {
                if ($catforum == $dbforcat[$i][0]) {
                    if ($lng == $lang[0]) {
                        $eMsg .= $web[130]." : ".$dbforcat[$i][1];
                    }
                    else {
                        $eMsg .= $web[130]." : ".$dbforcat[$i][2];
                    }
                    break;
                }
            }
			if ($typ == TYP_FORUM) {
				$eMsg .= " - ".$web[110]."<br />";
				$eMsg .= $web[108].stripslashes($ptit)."<br />";
			}
			else {
				$eMsg .= ' - '.$web[111]."<br />";
			}
			$catthread = (!isset($catthread) || empty($catthread)) ? $catforum : $catthread;
			$thrdid = GetThreadId($data[7]);
			$eMsg  .= '<hr />'.$web[109].'<br />'.ForceToAbsolute(stripslashes($ptxt));
			$eMsg  .= "<hr />".$web[349]." : ".$web[63].$data[7]." - ".$web[354].$fileid;
			$eMsg  .= "<br />".$web[360].'<a href="'.$site[3].$site['TH'].".php?lng=".$lng."&pg=".$thrdid.'&cat='.$catthread."&id=".ceil($data[8]/$serviz[20])."#R".$data[8].'">'.$site[3].$site['TH'].".php?lng=".$lng."&pg=".$thrdid.'&cat='.$catthread."&id=".ceil($data[8]/$serviz[20])."#R".$data[8].'</a>';
			$eMsg  .= "<br />".$web[350].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=forum&form=2&id=".$fileid.'&cat='.$catthread.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=forum&form=2&id=".$fileid.'</a>';
			if ($serviz[41] != "") {
				$eMsg .= "<br />".$web[351].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=forum&act=a&id=".$fileid.'&cat='.$catthread.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=forum&act=a&id=".$fileid.'</a>';
			} else {
				$eMsg .= "<br />".$web[352].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=forum&act=i&id=".$fileid.'&cat='.$catthread.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=forum&act=i&id=".$fileid.'</a>';
			}
			$eMsg .= "<br />".$web[353].'<a href="'.$site[3]."admin/admin.php?lng=".$lng."&pg=forum&del=".$fileid.'">'.$site[3]."admin/admin.php?lng=".$lng."&pg=forum&del=".$fileid.'</a>';
			$eMsg .= "<hr />".$infos;
			$maillist = GetListCollaboratorEmail(TYP_FORUM);
			eMailHtmlTo($eSub, $eMsg, trim(implode(' ', $maillist).' '.trim($supervision[10]).' '.$user[1]), $user[1], '', $replyto);
		}
		if ($typ == TYP_RECO) {
			$eSub  = $web[125]." ".$pseudo;
			$eMsg  = $web[125]." ".$pseudo.", ".$web[104]." ".$datefrmt.".<br /><br />";
			$eMsg .= $pseudo." - <a href=\"mailto:".$pemail."\">".stripslashes($pemail)."</a> - ".$web[126];
			$eMsg .= " ".stripslashes($site[($lang[0] == $lng ? 0 : 11)])." (<a href='".$site[3]."'>".$site[3]."</a>).<br />";
			$eMsg .= $web[127]." - <a href='mailto:".$pemail."'>".stripslashes($pemail)."</a> - ".$web[128]."<br /><br />";
			eMailHtmlTo($eSub, $eMsg, $pfmail);
		}
		if ($typ == TYP_MAIL) {
			$eSub  = $ptit;
			$eMsg  = stripslashes($site[($lang[0] == $lng ? 0 : 11)])." - ".$web[330]." ".$pseudo." - <a href=\"mailto:".$pemail."\">".stripslashes($pemail)."</a> - ".$web[104]." ".$datefrmt.".<hr />";
			$eMsg .= "<br />".ForceToAbsolute(stripslashes($pmess));
			eMailHtmlTo($eSub, $eMsg, trim($supervision[10].' '.$pfmail), $pemail, '', $replyto);
		}
	}
}
else {
    $antispam  = md5(uniqid(rand()));
    $antispams = ReadDBFields(DBANTISPAM);
    $timestamp = microtime(TRUE);
    array_push($antispams, array($antispam, $REMOTE_ADDR, $typ, $timestamp));
    $timestamp -= $serviz[52] * 60;
    while($antispams[0][3] < $timestamp) {
        array_shift($antispams);
    }
    if (count($antispams) > $serviz[51]) {
        array_shift($antispams);
    }
    WriteDBFields(DBANTISPAM, $antispams);
}

if (!empty($userprefs[1])) $pseudo = $userprefs[1];
if (!empty($userprefs[2])) $pemail = $userprefs[2];

switch ($typ) {
case TYP_GUESTBK :
    $title = $web[41];
    break;
case TYP_NEWS :
    $title = $web[4];
    break;
case TYP_BLOG :
    $title = $web[386];
    break;
case TYP_FORUM :
    $title = $web[19];
    break;
case TYP_RECO :
    $title = $web[124];
    break;
case TYP_REACT :
    $title = $web[182];
    break;
case TYP_REBLOG :
    $title = $web[380];
    break;
case TYP_MAIL :
    $title = $web[215]."  &nbsp;".$web[11];
    break;
default :
    $title = $mod != "" ? $web[308]."  ".$web[334] : $web[65];
}
$topmess = $title;

switch ($typ) {
case TYP_THREAD :
case TYP_FORUM  :
    if ($userprefs[3] =="" || $userprefs[3] == "LR") $userprefs3 = "L";
    $widepage = $forum[3];
    break;
case TYP_BLOG   :
case TYP_REBLOG :
    $widepage = '';
    break;
default :
}

$headinc .= BeginJavascript().'
var clic = 0;
function VerifyForm() {
    var sto = "";
    var messok = "";
    var erreur = false;
    var largeur = 300;
    var progbar = "'.@$site[28].'";

    regexp = /^[-a-zA-Z0-9_]{2,'.$serviz[148].'}$/; // M  Mardi
    if (!regexp.test(document.rapporter.pseudo.value)) {
        sto += "  - '.addslashes($web[266]).'\n"; // Caractères non valides (2 à  caractères comprenant lettres non accentuées, chiffres et _-
		document.rapporter.pseudo.classname.replace("texte", "errorInputText");
        erreur = true;
    }
	regexp = /^[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]+(\.[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]+)*@(([a-z0-9à-ö]([-a-z0-9à-ö]*[a-z0-9à-ö]+)?){1,63}\.)+([a-z0-9à-ö]([-a-z0-9à-ö]*[a-z0-9à-ö]+)?){2,63}$/i;
    if (!regexp.test(document.rapporter.pemail.value)) {
        sto += "  - '.addslashes($web[45]).'\n";
		document.rapporter.pemail.classname.replace("texte", "errorInputText");
        erreur = true;
    }
    if (!regexp.test(document.rapporter.pfmail.value)) {
        sto += "  - '.addslashes($web[122]).'\n"; //
		document.rapporter.pfmail.classname.replace("texte", "errorInputText");
        erreur = true;
    }';
$headinc .= '
    if (document.rapporter.ptit.value.search(/\w/) == -1) {
        sto += "  - '.addslashes($web[123]).'\n"; // Le titre est trop court ou inexistant.
		document.rapporter.ptit.classname.replace("texte", "errorInputText");
        erreur = true;
    }';
if ($typ == TYP_GUESTBK) {
	$headinc .= '
	regexp = /(http|https):\/\/[a-z0-9à-ö-]+(.[a-z0-9à-ö-]+)*(:[0-9]+)?(\/.*)?$/i;
    if (!regexp.test(document.rapporter.purl.value)) {
        sto += "  - '.addslashes($web[229]).'\n"; 
        document.rapporter.purl.classname.replace("texte", "errorInputText");
        erreur = true;
    }';
}
if ($serviz[100] != '0' && $cryptdisp == 'on' && ($serviz[98] == '' || $userprefs[1] == '')) {
	$headinc .= '
    regexp = /^[a-zA-Z0-9_]{2,20}$/;
    if (!regexp.test(document.rapporter.crypt.value)) {
        sto += "  - '.addslashes($web[529]).'\n"; 
		document.rapporter.crypt.classname.replace("texte", "errorInputText");
        erreur = true;
    }';
}
$headinc .= '
    if (erreur) {
        sto = "'.addslashes($web[44]).'\n\n" + sto; 
        alert(sto);
        return false;
    }
    else {
        clic++;
        if (clic == 1) {
            return true;
        }
        else {
            sto = "'.addslashes($web[220]).'" + sto;
            alert(sto);
            return false;
        }
    }
}
'.EndJavascript();

include 'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($title, 'PG'.$tconfig, '100%');
else
    htable($title, '100%');

if (($typ == TYP_NEWS && !isAccessGranted($members[8])) ||
    ($typ == TYP_BLOG && !isAccessGranted($members[16])) ||
    ($typ == TYP_GUESTBK && !isAccessGranted($members[9])) ||
    (($typ == TYP_FORUM || $typ == TYP_THREAD) && (!isAccessGranted($members[10]) || !isAccessGranted($members[5]))) ||
    ($typ == TYP_REACT && (!isAccessGranted($members[11]) || !isAccessGranted($members[1]))) ||
    ($typ == TYP_REBLOG && (!isAccessGranted($members[17]) || !isAccessGranted($members[15])))) {
    echo '<p class="text-center">'.$web[342].'</p><br />';
    if ($members[19] != '0' && $members[19] != '3') {
        $href1 = CHEMIN.($site['URLR'] == 'on' ? $lng.'-'.$urlrw[3].'-0-'.$tconfig.$z2 : 'connect.php?lng='.$lng.'&tconfig='.$tconfig.$z2);
        $href2 = CHEMIN.($site['URLR'] == 'on' ? $lng.'-'.$urlrw[15].'-5-new-'.$tconfig.$z2 : $site['USR'].'.php?lng='.$lng.'&uuser=new&tconfig='.$tconfig.$z2);
        echo '
  <p class="text-center">
    '.SubmitButton($web[630], 'self.location.href=\''.$href1.'\'').
      (empty($pseudo) ? '&nbsp;&nbsp;'.SubmitButton($web[160], 'self.location.href=\''.$href2.'\'') : '').'
  </p>';
    }
}
else {
    if ($ok == $web[45]) {
		$pehide = 'off';
        if ($typ == TYP_FORUM || $typ == TYP_THREAD) {
            if (!empty($pg)) {
                $dbpg = SelectDBFieldsById(ReadDBFields(DBFORUM), $num);
                if (count($dbpg) != 0) {
                    $cat = $dbpg[0][12];
                }
				if (in_array($mod, array('maj', 'stop', 'move'))) {
                    CreateDir(TEMPREP);
					ReadDoc($pg);
					$lentxt    = mb_strlen($fieldc1, $charset);
					$possign   = mb_strrpos($fieldc1, '<p class="text-right thsign">', 0, $charset);
					$signforum = $possign !== false ? mb_substr($fieldc1, $possign, $lentxt, $charset) : '';
					$mettre    = '<?php $signforum = stripslashes("'.addslashes($signforum).'"); ?>';
					$filesign  = $userprefs[1].date('Ymdhi');
					WriteFullDB(TEMPREP.$filesign, $mettre);
					$ptxt      = $signforum != '' ? mb_substr($fieldc1, 0, $lentxt - mb_strlen($signforum, $charset), $charset) : $fieldc1;
					$pehide    = $fieldd1;
					$replymail = $fieldmail;
				}
            }
        }
        if ($typ == TYP_BLOG) {
            if (!empty($pg) && $mod == 'maj') {
                ReadDoc($pg);
                $rub  = $lang[0] == $lng ? $fielda1 : $fielda2;
                $ptit = $lang[0] == $lng ? $fieldb1 : $fieldb2;
				$ptxt      = $lang[0] == $lng ? $fieldc1 : $fieldc2;
                $pehide    = $fieldd1;
            }
        }
        if (!isForumAccessGranted($cat)){
            echo '<p class="text-center font-weight-bold frnoaccess"><br />'.$web[443].'</strong><br /></p>';
        } else {
			if (!empty($erreur))
				echo displayErrorMsg($web[44], $erreur);
			echo '
<div class="w-98 mx-auto">
  <p class="text-center"><strong>'.$ok.'</strong></p>
  <form name="rapporter" action="'.($site['URLR'] == 'on' ? $urlrw[14].'-5'.$z2 : $site['PG'].'.php'.$z2).'" method="post" onsubmit="return VerifyForm(); return false;">
    <input type="hidden" name="lng" value="'.$lng.'" />
    <input type="hidden" name="typ" value="'.$typ.'" />
    <input type="hidden" name="tconfig" value="'.$tconfig.'" />
    <input type="hidden" name="antispam" value="'.$antispam.'" />
    <input type="hidden" name="add" value="1" />';
			if ($typ == TYP_FORUM && !empty($cat)) {
				echo '
    <input type="hidden" name="cat" value="'.$cat.'" />
    <input type="hidden" name="catforum" value="'.$cat.'" />';
			}
			if ($typ == TYP_THREAD) {
				echo '
    <input type="hidden" name="filesign" value="'.$filesign.'" />
    <input type="hidden" name="cat" value="'.$cat.'" />
    <input type="hidden" name="tocat" value="'.$tocat.'" />
    <input type="hidden" name="catforum" value="'.$cat.'" />
    <input type="hidden" name="num" value="'.$num.'" />';
			}
			if ($typ != TYP_RECO && $typ != TYP_MAIL) {
				echo '
    <input type="hidden" name="pfmail" value="pf@mail.fr" />';
			}
			if ($typ == TYP_MAIL) {
				echo '
    <input type="hidden" name="pfmail" value="'.$user[1].'" />';
			}
			if ($typ == TYP_GUESTBK || $typ == TYP_RECO || $typ == TYP_THREAD || $typ == TYP_REACT  || $typ == TYP_REBLOG) {
				echo '
    <input type="hidden" name="ptit" value="ptit" />';
			}
			if ($typ == TYP_REACT || $typ == TYP_REBLOG) {
				echo '
    <input type="hidden" name="pg" value="'.$pg.'" />';
			}
			if ($typ != TYP_GUESTBK) {
				echo '
    <input type="hidden" name="purl" value="http://fake" />';
			}
			echo '
    <input class="d-none" type="text" name="code_pseudo" value="" />
    <div class="table-responsive-md">
    <div class="pgtbl d-table m-auto w-100">
      <div class="d-table-row">
        <div class="d-table-cell">
          <div class="input-group pg360 m-auto pb-2">
            <div class="input-group-prepend">
              <span class="input-group-text"><i class="far fa-user"></i></span>
            </div>
            <input class="'.($err_pseudo ? 'errorInputText' : 'texte').' form-control" placeholder="'.$web[49].'" 
              type="text" name="pseudo" value="'.$pseudo.'" maxlength="'.$serviz[148].'" />
          </div>
        </div>
      </div>
      <div class="d-table-row">
        <div class="d-table-cell">
          <div class="input-group pg360 m-auto pb-3">
            <div class="input-group-prepend">
              <span class="input-group-text"><i class="fas fa-at"></i></span>
            </div>
          <input class="'.($err_pemail ? 'errorInputText' : 'texte').' form-control mt-2" placeholder="'.$web[50].'" 
            type="text" name="pemail" value="'.$pemail.'" />
          </div>
        </div>
      </div>';
			if ($typ != TYP_RECO && $typ != TYP_MAIL) {
				echo '
      <div class="d-table-row">
        <div class="d-table-cell text-center form-check"><label for="pehide">'.$web[115].'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
          <input type="checkbox" class="form-check-input" id="pehide" name="pehide"'.Checked($pehide == 'on').' />
        </div>
      </div>
      <div class="d-table-row">
        <div class="d-table-cell text-center">'.$web[30].'</div>
      </div>';
			}
			if ($typ == TYP_MAIL) {
				echo '
      <div class="d-table-row">
        <div class="d-table-cell"><p>'.$web[281].'</p></div>
      </div>
      <div class="d-table-row">
        <div class="d-table-cell">
          <input class="'.($err_ptit ? 'errorInputText' : 'texte').' pg360 m-auto form-control" 
            type="text" name="ptit" value="'.$ptit.'" />
        </div>
      </div>
      <div class="d-table-row">
        <div class="d-table-cell"><p>'.$web[56].'</p></div>
      </div>';
            }
			if ($typ == TYP_NEWS) {
				echo '
      <div class="d-table-row">
        <div class="d-table-cell text-center">
          <div class="input-group pg360 m-auto py-3">
            <div class="input-group-prepend">
              <span class="input-group-text"><i class="fas fa-heading"></i></span>
            </div>
            <input class="'.($err_ptit ? 'errorInputText' : 'texte').' form-control" placeholder="'.$web[54].'"
              type="text" name="ptit" value="'.$ptit.'" />
          </div>
        </div>
      </div>
      <div class="d-table-row">
        <div class="d-table-cell text-center pt-2">'.$web[55].'</div>
      </div>';
			}
			if ($typ == TYP_BLOG) {
                if ($mod == 'maj') echo '
      <input type="hidden" name="filesign" value="'.$filesign.'" />
      <input type="hidden" name="pg" value="'.$pg.'" />
	  <input type="hidden" name="mod" value="maj" />';
				echo '
      <div class="d-table-row">
        <div class="d-table-cell text-center pt-3">'.$web[21].'</div>
      </div>
      <div class="d-table-row">
	    <div class="d-table-cell w-100 mt-n2">';
                $dbw = ReadDBFields(DBBRUB);
                sort($dbw);
                if (!empty($dbw)) {
                    $j = ($lng == $lang[0]) ? 0 : 1 ;
                    echo '
          <select name="rub" class="form-control form-control-lg pg360 m-auto">
            <option value=""> -- '.$web[471].' -- </option>';
                    foreach ($dbw as $birub) {
                        $cat = str_replace('<!--', '&#60;!--', str_replace('-->', '--&#62;', $birub[$j]));
                        echo '
            <option value="'.$birub[$j].'"'.Selected($rub == $birub[$j]).'>'.$cat.'</option>';
                    }
                    echo '
		  </select>';
                }
                else {
                    echo '
		<input class="texte m-auto form-control pg360" type="text" name="rub" size="45" value="'.$rub.'" />';
                }
                echo '
        </div>
	  </div>
      <div class="d-table-row">
        <div class="d-table-cell">
          <div class="input-group pg360 m-auto pt-5">
            <div class="input-group-prepend">
              <span class="input-group-text"><i class="fas fa-heading"></i></span>
            </div>
            <input class="'.($err_ptit ? 'errorInputText' : 'texte').' form-control" placeholder="'.$web[387].'" 
              type="text" name="ptit" value="'.$ptit.'" />
          </div>
        </div>
      </div>
      <div class="d-table-row">
        <div class="d-table-cell text-center pt-3">'.$web[388].'</div>
      </div>';
			}
			if ($typ == TYP_REBLOG || $typ == TYP_REACT) {
				ReadDoc($pg);
				$txtbl = ($lng == $lang[0]) ? $fieldc1 : $fieldc2 ;
				echo '
      <div class="d-table-row">
	    <div class="d-table-cell text-center">
          <div class="mt-5">'.$web[384].'</div>
		  <div class="rep m-auto w-95 text-left mt-2 pgrbra">'.stripslashes($txtbl).'</div>
		  <div class="mt-5"><b>'.$web[56].'</b></div>
          <input type="hidden" name="group" value="'.$fieldmod.'" />
	    </div>
	  </div>';
			}
			if ($typ == TYP_GUESTBK) {
                $purl = ($purl == 'https://' ? '' : $purl);
				echo '
      <div class="d-table-row">
        <div class="d-table-cell">
          <div class="input-group pg360 m-auto pt-5">
            <div class="input-group-prepend">
              <span class="input-group-text"><i class="fas fa-globe"></i></span>
            </div>
            <input class="texte form-control" type="text" name="purl" value="'.$purl.'" placeholder="'.$web[51].'" />
          </div>
        </div>
      </div>
      <div class="d-table-row">
        <div class="d-table-cell text-center pt-5">'.$web[56].'</div>
      </div>';
			}
			if ($typ == TYP_FORUM) {
				echo '
      <div class="d-table-row">
        <div class="d-table-cell form-check text-center">
          <p><label for="replymail">'.$web[344].' :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
            <input type="checkbox" class="form-check-input" id="replymail" name="replymail" />
          </p>
        </div>
      </div>
      <div class="d-table-row">
        <div class="d-table-cell w-100">
          <div class="input-group pg360 m-auto pt-1">
            <div class="input-group-prepend">
              <span class="input-group-text"><i class="fas fa-heading"></i></span>
            </div>
            <input class="'.($err_ptit ? 'errorInputText' : 'texte').' form-control" placeholder="'.$web[64].'" 
              type="text" name="ptit" value="'.$ptit.'" />
          </div>
        </div>
      </div>
      <div class="d-table-row">
        <div class="d-table-cell text-center pt-4">'.$web[56].'</div>
      </div>';
			}
			if ($typ == TYP_RECO) {
				echo '
      <div class="d-table-row">
        <div class="d-table-cell">
          <div class="input-group pg360 m-auto pt-4">
            <div class="input-group-prepend">
              <span class="input-group-text"><i class="fas fa-at"></i></span>
            </div>
            <input class="'.($err_pfmail ? 'errorInputText' : 'texte').' form-control" placeholder="'.$web[121].'" 
              type="text" name="pfmail" value="'.$pfmail.'" />
          </div>
        </div>
      </div>';
			}
			if ($typ == TYP_THREAD) {
				if (!empty($pg)) {
					$rank = ReadDBFields(ADMINS);
					$modadm = ''; $moduser = '';
					for ($y = 0; $y < count($rank); $y++) {
						if ($rank[$y][0] == $userprefs[1] && $rank[$y][2] == 'on') {
							$modadm = 'yes';
							break;
						}
					}
					if ($userprefs[1] == $serviz[31] || $userprefs[1] == $serviz[176]) {
						$modadm = 'yes';
					}
					if (count(SelectDBFields(TYP_FORUM, 'a', $pg)) != 0) {
						$dbtmp = ReadDBFields(DBTHREAD);
						for ($i = 0; $i < count($dbtmp); $i++) { // search topic id
							if ($dbtmp[$i][3] == $pg) {
								$idth = $dbtmp[$i][1];
								break;
							}
						}
						for ($i = 0; $i < count($dbtmp); $i++) {
							if ($dbtmp[$i][1] == $idth && $dbtmp[$i][6] != '') { // read topic
								ReadDoc($dbtmp[$i][3]);
								$st = explode('#',$fieldmod);
								if ($st[0] == 'c' || $st[0] == 's' || $fielda1 != $num) { // if topic closed
									if (($modadm != 'yes' || $mod != 'maj') && $mod != 'raz') {
										echo BeginJavascript().'
alert("'.addslashes($web[47]).'");
window.history.back();'.EndJavascript();
										die ('STOP !'.$web[47]);
									}
								}
								unset($dbtmp);
								break;
							}
						}
						ReadDoc($pg);
					}
                    $dbtmp = ReadDBFields(DBTHREAD);
                    foreach ($dbtmp as $tmp) {
                        if ($num == $tmp[1] && $tmp[5] == $pemail && $tmp[9] == 'on') {
                            $replymail = 'on';
                            break;
                        }
                    }
					echo '
      <div class="d-table-row">
        <div class="d-table-cell text-center form-check">';
                    if ($replymail == 'on') echo '
          <p><label for="noreply">'.$web[687].' :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
            <input type="checkbox" class="form-check-input" id="noreply" name="noreply" />
          </p>';
                    else echo '
          <p><label for="replymail">'.$web[344].' :&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
            <input type="checkbox" class="form-check-input" id="replymail" name="replymail" />
          </p>';
                    echo '
        </div>
      </div>';
					if ($mod == '') { // cas normal
						echo '
      <div class="d-table-row">
        <div class="d-table-cell text-center">'.$web[141].' <strong>'.$author.'</strong> '.$web[142].'</div>
      </div>
      <div class="d-table-row">
	    <div class="d-table-cell">
		  <div class="rep position-relative m-auto w-100 text-left pgc1">
		    '.stripslashes($fieldc1).'
		  </div>
          <br />
        </div>
	  </div>';
					} else {
						if ((($author == $userprefs[1]) || $modadm == 'yes' || 
                           (!empty($serviz[31]) && $serviz[31] == $userprefs[1]) || (!empty($serviz[176]) && $serviz[176] == $userprefs[1]))) {
							echo '
      <div class="d-table-row">
	    <div class="d-table-cell">';
							echo '
		  <div class="bord m-auto w-95 text-center pgptxt form-check">';
							$ptit    = $fieldb1;
							$fieldc1 = str_replace(array("\n", "\r"), '', $fieldc1);
							$ptxt    = $typ == TYP_THREAD ? $ptxt : $fieldc1;
							if ($mod == 'maj') { //cas maj
								echo '
		    <input type="hidden" name="mod" value="maj" />';
								$text = '<strong>'.$web[369].' '.$web[7].' '.$web[334].'</strong>';
								if ($ptit != "") {
									$text .= '<div class="rep text-center">'.$ptit.'</div>';
								}
							}
							elseif ($mod == "stop") {
								echo "
		    <input type=\"hidden\" name=\"mod\" value=\"stop\" />";
								$text = "<strong>".$web[390]."</strong>";
								if ($ptit != "") {
									$text .= '<div class="rep text-center">'.$ptit.'</div>';
								}
							}
							elseif ($mod == 'raz') {
								$text = '<strong>'.$web[7].'  '.$web[334].'</strong><div class="rep text-center">'.$ptit.'</div>';
								echo '
		    <input type="hidden" name="mod" value="raz" /><b>'.$web[621].'</b>&nbsp;';  // avoir
							}
							elseif ($mod == 'move') {
								$dbfrom = SelectDBFieldsByField(ReadDBFields(DBFORUMCAT), 0, $cat);
								$dbto   = SelectDBFieldsByField(ReadDBFields(DBFORUMCAT), 0, $tocat);
								$text   = '<strong>'.$web[7].'  '.$web[334].'</strong><div class="rep text-center">'.$ptit.'</div>';
								$text  .= '<b>'.$web[208].'&nbsp;'.$dbfrom[0][1].$web[634].$dbto[0][1].'</b>';
								echo '
		    <input type="hidden" name="mod" value="move" /><b>'.$web[632].'</b>&nbsp;';
							}
							else { //cas lock-up-top
								$text = "<strong>".$web[7]."  ".$web[334]."</strong><div class='rep text-center'>".$ptit."</div>";
								if ($mod == "lock") {
									echo '
		    <input type="hidden" name="mod" value="lock" /><b>'.$web[363].'</b>&nbsp;';
								}
								else {
									if ($forum[5] != "") {
										echo '
		    <input type="radio" class="form-check-input" name="mod" value="up" checked="checked" /><b>'.$web[364].'</b>&nbsp;&nbsp;&nbsp;';
									}
									if ($forum[6] != "" && $mod == "top") {
										echo '
            <input type="hidden" name="forum6" value="'.$forum[6].'" />
		    <input type="radio" class="form-check-input" name="mod" value="top" /><b>'.$web[365].'</b>';
									}
								}
							}
							echo $text;
							echo '
            <input type="hidden" name="pg" value="'.$pg.'" />';
							echo '
          </div>';
							if ($mod == 'stop') {
								echo '<div class="text-center"><strong>'.$userprefs[1].' , '.$web[391].'</strong></div>';
							}
							echo '
        </div>
      </div>';
						}
						else {
							echo '
    </div>
    </div>
    <p class="text-center">';
							echo BeginJavascript().'
alert("'.addslashes($web[416]).'");
window.history.back();'.EndJavascript();
                            echo '
    </p>';
							die ('STOP !');
						}
					}
				}
			}
			echo '
      <div class="d-table-row">
	    <div class="d-table-cell">
      ';
			if ($mod == '' || $mod == 'maj' || $mod == 'stop' || $mod == 'move' || $mod == 'raz') { // pas d'éditeur pour lock, up, top
				echo '
		  <div class="table-responsive-md">
          <div class="d-table w-100 text-center mx-auto">';
				if ($typ != TYP_RECO) {
                    echo '
            <div class="w-100 text-center mx-auto" style="max-width: 560px;">';
                    if (in_array($typ, array(TYP_FORUM, TYP_THREAD, TYP_BLOG, TYP_REBLOG, TYP_REACT, TYP_NEWS))) {
                        $cke_toolbar = !isAuthorImg($userprefs[1]) ? array('toolbarName'=>'Guppy_out') : array('toolbarName'=>'Guppy_out_img');
                    } else {
                        $cke_toolbar = array('toolbarName'=>'Guppy_out_min');
                    }
                    echo display_editor('ptxt', '100%', 300, $ptxt, $cke_toolbar);
                    echo '
            </div>';
				}
                if (!empty($serviz[177]) && !OK_RGPD_date($userprefs[1])) echo '
            <div class="d-table-row">
              <div class="d-table-cell py-4">
                <fieldset class="w-95 m-auto text-left"><legend>'.$web[14].'</legend>
                  <p><strong>'.$web[646].'</strong></p>
                  <p>'.$web[684].'</p>
                  <div class="form-check">
                    <label for="rgpd">'.$web[415].'&nbsp;:&nbsp;</label>
                    <input type="checkbox" class="form-check-input ml-2 mt-2" id="rgpd" name="rgpd"'.Checked($rgpd).' />
                  </div>
                </fieldset>
              </div>
            </div>';
                if ($serviz[100] != '0' && $cryptdisp == 'on' && ($serviz[98] == '' || $userprefs[1] == '')) {
                    $lbl = $serviz[100] == '3' ? $web[642] : '';
                    echo '
            <div class="d-table-row">
              <div class="d-table-cell text-center mt-4 mx-auto">'.dsp_crypt(0, 1, 3, 2, $lbl, $serviz[115] == 'on' ? $web[643] : '').'</div>
            </div>
            <div class="d-table-row">
		      <div class="d-table-cell text-center">
			  '.($serviz[100] == '3' ? '' : $web[530]).'
                <input class="'.($err_crypt ? 'errorInputText' : 'texte').' inputcrypt m-auto form-control" 
                  type="text" name="crypt" onpaste="return false;" />
			  </div>
		    </div>';
                }
                echo '
		  </div>
          </div>';
			}
			echo '
        </div>
	  </div>';
			echo '
      <div class="d-table-row">
        <div class="d-table-cell text-center py-3">'.SubmitButton($web[52]).'</div>
      </div>
    </div>
  </form>
</div>';
			echo BeginJavascript().'
document.rapporter.pseudo.focus();'.EndJavascript();
        } /// modif forum privé
    }
    else {
        echo '
<p class="text-center"><strong>'.$ok.'</strong></p>';
        if ($typ == TYP_NEWS) {
            $backurl = $site['URLR'] == 'on' ? $lng.'-'.$urlrw[8].'-5-'.$tconfig.$z2 : $site['NE'].'.php?lng='.$lng.'&tconfig='.$tconfig.$z2;
        }
        elseif ($typ == TYP_BLOG) {
            $backurl = $site['URLR'] == 'on' ? $lng.'-'.$urlrw[1].'-'.$tconfig.$z2 : $site['BLS'].'.php?lng='.$lng.'&tconfig='.$tconfig.$z2;
        }
        elseif ($typ == TYP_REBLOG) {
            $backurl = $site['URLR'] == 'on' ? $lng.'-'.$urlrw[1].'-40-'.$pg.'-'.$tconfig.$z2 : $site['BL'].'.php?lng='.$lng.'&pg='.$pg.'&tconfig='.$tconfig.$z2;
        }
        elseif ($typ == TYP_GUESTBK) {
            $backurl = $site['URLR'] == 'on' ? $lng.'-'.$urlrw[7].'-'.$tconfig.$z2 : $site['GB'].'.php?lng='.$lng.'&amp;tconfig='.$tconfig.$z2;
        }
        elseif ($typ == TYP_FORUM) {
            $cats     = explode(',', $catforum);
            $catforum = $cats[0];
            if (!empty($catforum)) {
                $backurl = $site['URLR'] == 'on' ? $lng.'-'.$urlrw[5].'-20-'.$catforum.'-'.$tconfig.$z2 : $site['FR'].'.php?lng='.$lng.'&cat='.$catforum.'&amp;tconfig='.$tconfig.$z2;
            }
            else {
                $backurl = $site['URLR'] == 'on' ? $lng.'-'.$urlrw[5].'-31'.'-'.$tconfig.$z2 : $site['FR'].'.php?lng='.$lng.'&amp;tconfig='.$tconfig.$z2;
            }
        }
        elseif ($typ == TYP_THREAD) {
            $dbwork = array();
            $dbwork = ReadDBFields(DBFORUM);
            for ($i = 0; $i < count($dbwork); $i++) {
                if ($dbwork[$i][1] == $num) {
                    $catforum = $dbwork[$i][12];
                }
            }
            $cats     = explode(',', $catforum);
            $catforum = $cats[0];
            if (!empty($catforum)) {
                $backurl = $site['URLR'] == 'on' ? $lng.'-'.$urlrw[5].'-20-'.$catforum.'-'.$tconfig.$z2 : $site['FR'].'.php?lng='.$lng.'&cat='.$catforum.'&amp;tconfig='.$tconfig.$z2;
            }
            else {
                $backurl = $site['URLR'] == 'on' ? $lng.'-'.$urlrw[5].'-31'.'-'.$tconfig.$z2 : $site['FR'].'.php?lng='.$lng.'&amp;tconfig='.$tconfig.$z2;
            }
        }
        elseif ($typ == TYP_REACT) {
            $backurl = $site['URLR'] == 'on' ? $lng.'-'.$urlrw[20].'-102-'.$pg.'-'.$tconfig.$z2 : 'articles.php?lng='.$lng.'&pg='.$pg.'&tconfig='.$tconfig.$z2;
        }
        elseif ($typ == TYP_RECO || $typ == TYP_MAIL) {
            $backurl = $site['URLR'] == 'on' ? $lng.'-'.$urlrw[0] : 'index.php?lng='.$lng;
        }
        echo BeginJavascript().'
var type = "'.$typ.'";
if (type == "'.TYP_RECO.'" || type == "'.TYP_MAIL.'") {
    setTimeout("window.history.go(-2);", 2500);
}
else {
    setTimeout(\'window.location="'.$backurl.'";\', 2500);
}'.EndJavascript();
    }
}
btable();
include 'inc/bpage.inc';
?>
renfilesantispam.inc
wget 'https://lists2.roe3.org/guppy/renfilesantispam.inc'
View Content
<?php
/*******************************************************************************
 *   Admin Rename files
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2024 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 ******************************************************************************/

if (stristr($_SERVER['SCRIPT_NAME'], 'renfilesantispam.inc')) {
    header('location:../index.php');
    die();
}

function rename_antispam_files() {
	global $lng;
	@define('CHEMIN', '../../');
	include CONFIG;
	$save     = false;
    $renfiles = array('PG'  => 'postguest',
                      'BLS' => 'blogs',
                      'BL'  => 'blog',
                      'FR'  => 'forum',
                      'FRT' => 'fortopic',
                      'TH'  => 'thread',
                      'GB'  => 'guestbk',
                      'NE'  => 'news',
                      'USR' => 'user',
                      'NWL' => 'newsletter',
                      'DN'  => 'download',
                      'CT'  => 'contact');

	foreach ($renfiles as $key => $file) {
        if (@$site[$key] != $file && !empty(@$site[$key]) && file_exists(CHEMIN.@$site[$key].'.php') && @file_exists(CHEMIN.$file.'.php')) {
            $perms = substr(sprintf('%o', @fileperms(CHEMIN.$site[$key].'.php')), -4);
            @SetChmod(CHEMIN.$site[$key].'.php');
            if (@unlink(CHEMIN.$site[$key].'.php')) {
                if (!rename(CHEMIN.$file.'.php', CHEMIN.$site[$key].'.php')) {
                    $site[$key] = $file;
                    $save = true;
                    @SetChmod(CHEMIN.$site[$key].'.php', $perms);
                }
            }
        }
    }  
    
    // re-activation de l'url-rw
    if ($site['URLR'] == 'on') {
        setURLrewriting('');
        setURLrewriting('on');
    }
}	
?>
robots.txt
wget 'https://lists2.roe3.org/guppy/robots.txt'
View Content
User-agent: *
Disallow: /compte.php
Disallow: /connect.php
Disallow: /admin/
Disallow: /data/
Disallow: /file/
Disallow: /flash/
Disallow: /inc/
Allow: /inc/csshead/
Allow: /inc/jshead/
Allow: /inc/img/
Allow: /inc/lang/*.png$
Allow: /inc/*.css$
Allow: /inc/*.js$
Allow: /inc/calendar.php
Disallow: /install/
Disallow: /plugins/
Disallow: /save/
Disallow: */trackback
Disallow: /cgi-bin
rss.php
wget 'https://lists2.roe3.org/guppy/rss.php'
View Content
<?php
/*******************************************************************************
 *   RSS Feeds
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';

$topmess = $web[617];
$tconfig = import('tconfig', '', true, 0);
include 'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, 'RSS'.$tconfig, '100%');
else
    htable($topmess, '100%');

if ($prt != -1 && $prt != 1) {
	echo sprintf($web[618], stripslashes($site[($lang[0] == $lng ? 0 : 11)])).'
<div class="table-responsive-md">
<div class="bord d-table m-auto w-90">';
	if ($serviz[60] == 'on') {
		$rssurl = $site[3].sprintf(RSSART, $lng);
		echo '
	<div class="d-table-row mt-2">
	  <div class="d-table-cell align-middle w-50 text-right itemrss">'.$web[169].'</div>
	  <div class="d-table-cell align-middle w-50 text-left pl-3 itemrss">
        <a href="'.CHEMIN.'newsrss.php?lng='.$lng.'&url=arts&tconfig='.$tconfig.$z2.'">
		  <i class="fas fa-rss"></i>
		</a>
	  </div>
	</div>';
	}
	if ($serviz[54] == 'on') {
		$rssurl = $site[3].sprintf(RSSBLOG, $lng);
		echo '
	<div class="d-table-row mt-2">
	  <div class="d-table-cell align-middle w-50 text-right itemrss">'.getLabel($nom[$lng == $lang[0] ? 42 : 43]).'</div>
	  <div class="d-table-cell align-middle w-50 text-left pl-3 itemrss">
        <a href="'.CHEMIN.'newsrss.php?lng='.$lng.'&url=blog&tconfig='.$tconfig.$z2.'">
		  <i class="fas fa-rss"></i>
		</a>
	  </div>
	</div>';
	}
	if ($serviz[16] == 'on') {
		$rssurl = $site[3].sprintf(RSSNEWS, $lng);
		echo '
	<div class="d-table-row mt-2">
	  <div class="d-table-cell align-middle w-50 text-right itemrss">'.getLabel($nom[$lng == $lang[0] ? 7 : 17]).'</div>
	  <div class="d-table-cell align-middle w-50 text-left pl-3 itemrss">
        <a href="'.CHEMIN.'newsrss.php?lng='.$lng.'&url=news&tconfig='.$tconfig.$z2.'">
		  <i class="fas fa-rss"></i>
		</a>
	  </div>
	</div>';
	}
	if ($serviz[103] == 'on') {
		$rssurl = $site[3].sprintf(RSSALL, $lng);
		echo '
	<div class="d-table-row mt-2">
	  <div class="d-table-cell align-middle w-50 text-right itemrss">'.$web[619].'</div>
	  <div class="d-table-cell align-middle w-50 text-left pl-3 itemrss">
        <a href="'.CHEMIN.'newsrss.php?lng='.$lng.'&url=all&tconfig='.$tconfig.$z2.'">
		  <i class="fas fa-rss"></i>
		</a>
	  </div>
	</div>';
	}
	echo '
</div>
</div>
<br />
<hr />';
}

btable();
include 'inc/bpage.inc';
?>
rules.php
wget 'https://lists2.roe3.org/guppy/rules.php'
View Content
<?php
/*******************************************************************************
 *   CHARTER reading Module
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/forum.inc';
$gyforum  = new GY_forum();
$gyforum->frtyp = 'FRRU';
$result  = $gyforum->FR_ok($userprefs[1], $lng);
$tconfig = $gyforum->tconfig;
$topmess = $gyforum->topmess;
if ($result[0] == 'FRRU') {
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    exit();
}
$result  = $gyforum->FR_rules();
$topmess = $gyforum->topmess;
if (function_exists('htable1'))
    htable1($topmess, $result[0], '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
?>
search.php
wget 'https://lists2.roe3.org/guppy/search.php'
View Content
<?php
/*******************************************************************************
 *   Search
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/search.inc';
$gysch   = new GY_search();
$result  = $gysch->SCH_ok($userprefs[1], $lng);
$tconfig = $gysch->tconfig;
$topmess = $gysch->topmess;
if ($result[0] == 'SCH') {
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gysch->SCH_content();
$topmess = $gysch->topmess;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
thread.php
wget 'https://lists2.roe3.org/guppy/thread.php'
View Content
<?php
/*******************************************************************************
 *   Forum Thread
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 *  v6.00.15 (November 29, 2023) : add managed variable in return function
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/forum.inc';
if ($serviz[13] == '') {
        die('STOP ! Forum is not active !');
    }
$widepage = $forum[3];
$gyforum  = new GY_forum();
$gyforum->frtyp = 'TH';
$result  = $gyforum->FR_ok($userprefs[1], $lng);
$tconfig = $gyforum->tconfig;
$topmess = $gyforum->topmess;
if ($result[0] == 'TH') {
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gyforum->TH_content();
$topmess = $gyforum->topmess;
if ($userprefs[3] == '' || $userprefs[3] == BOX_LEFT.BOX_RIGHT) {
    $left_empty = array_reduce($xposbox[$tconfig][BOX_LEFT], 'EstNonVide', true);
    $userprefs3 = $left_empty ? BOX_RIGHT : BOX_LEFT;
}
if ($result[1] == 1) { 
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    if (isset($result[3]))
		if (!empty($result[3])) echo '<p>'.$result[3].'</p>';
    if (!empty($result[2])) echo BeginJavascript().'window.location="'.CHEMIN.$result[2].'";'.EndJavascript();
    btable();
    include 'inc/bpage.inc';
    exit();
}
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%'); // 
else
    htable($topmess, '100%');
echo $result[1];    
btable();
include 'inc/bpage.inc';
?>
threadarch.php
wget 'https://lists2.roe3.org/guppy/threadarch.php'
View Content
<?php
/*******************************************************************************
 *   Forum Thread Archive
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 *  v6.00.15 (November 29, 2023) : Correction archive functionnality
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/funcarch.php';
include CHEMIN.'inc/forum.inc';
if ($serviz[13] == '') {
        die('STOP ! Forum is not active !');
    }
$widepage = $forum[3];
$gyforum  = new GY_forum();
$gyforum->frtyp = 'THA';
$result  = $gyforum->FR_ok($userprefs[1], $lng);
$tconfig = $gyforum->tconfig;
$topmess = $gyforum->topmess;
if ($result[0] == 'THA') {
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gyforum->THA_content();
$topmess = $gyforum->topmess;
if ($userprefs[3] == '' || $userprefs[3] == BOX_LEFT.BOX_RIGHT) {
    $left_empty = array_reduce($xposbox[$tconfig][BOX_LEFT], 'EstNonVide', true);
    $userprefs3 = $left_empty ? BOX_RIGHT : BOX_LEFT;
}
if ($result[1] == 1) {
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    if (!empty($result[3])) echo '<p>'.$result[3].'</p>';
    if (!empty($result[2])) echo BeginJavascript().'window.location="'.CHEMIN.$result[2].'";'.EndJavascript();
    btable();
    include 'inc/bpage.inc';
    exit();
}
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
tinymsg.php
wget 'https://lists2.roe3.org/guppy/tinymsg.php'
View Content
<?php
/*******************************************************************************
 *   Tinymsg
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.00 (December 15, 2020) : initial release
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/user.inc';
$gytmsg = new GY_user();
$result  = $gytmsg->TMSG_content();
$tconfig = $gytmsg->tconfig;
$topmess = $gytmsg->topmess;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0].$tconfig, '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>
user.php
wget 'https://lists2.roe3.org/guppy/user.php'
View Content
<?php
/*******************************************************************************
 *   Confirm User preferencies
 *******************************************************************************
 *   GuppY PHP Script - version 6.0
 *   CeCILL Copyright (C) 2004-2020 by Laurent Duveau
 *   Initiated by Laurent Duveau and Nicolas Alves
 *   Web site = https://www.freeguppy.org/
 *   e-mail   = guppy@freeguppy.org
 *   V6 developed by Lud Bienaimé
 *      with the participation of the GuppY Team
 *******************************************************************************
 *   Latest Changes :
 * v6.00.04 (December 14, 2021) : add config path
 ******************************************************************************/

header('Pragma: no-cache');
define('CHEMIN', '');
include CHEMIN.'inc/includes.inc';
include CHEMIN.'inc/user.inc';
include CHEMIN.'data/config/config.inc';
$gyusr   = new GY_user();
$result  = $gyusr->USR_ok($userprefs[1], $lng);
$tconfig = $gyusr->tconfig;
if (!empty($result[0])) {
    $topmess = $gyusr->topmess;
    include CHEMIN.'inc/hpage.inc';
    if (function_exists('htable1'))
        htable1($topmess, $result[0].$tconfig, '100%');
    else
        htable($topmess, '100%');
    echo $result[1];
    btable();
    include 'inc/bpage.inc';
    exit();
}
$result  = $gyusr->USR_content();
$topmess = $gyusr->topmess;
include CHEMIN.'inc/hpage.inc';
if (function_exists('htable1'))
    htable1($topmess, $result[0], '100%');
else
    htable($topmess, '100%');
echo $result[1];
btable();
include 'inc/bpage.inc';
?>