예제 #1
0
function temoignages_exec()
{
    global $secteur, $page, $_path, $temoignage_delimit, $temoignage_ipvisiteur, $temoignage_validForm, $temoignage_message, $temoignage_nom, $temoignage_mail, $temoignage_MsgErreur, $temoignage_file;
    if ($page == 'temoignages') {
        // ---------------------
        // GUESTBOOK
        $temoignage_file = $_path . 'livredor.txt';
        $temoignage_delimit = '-*-';
        // délimiteur
        // ---------------------
        // IP du visiteur / date
        $temoignage_ipvisiteur = $_SERVER["REMOTE_ADDR"];
        $date = date("d/m/Y H:i:s");
        // ---------------------
        // Initialisation
        $temoignage_nom = '';
        $temoignage_message = '';
        $temoignage_mail = '';
        $temoignage_validForm = true;
        $temoignage_MsgErreur = '';
        // ---------------------
        // TRAITEMENT SI formulaire soumis
        if (request_confirm('LivredorSubmit')) {
            if (verifier_token(600, get_link('temoignages', 'Install'), 'Temoignage-Send')) {
                // ---------------------
                // RECUPERATION des DONNEES
                //On convertit les caracteres html
                $temoignage_nom = request_post('nom');
                $temoignage_mail = request_post('mail');
                // textarea :attention aux injections de code html !
                $allowable_tags = '<b><a>';
                // (facultatif) on autorise ces balises
                $temoignage_message = request_post('message');
                $temoignage_message = strip_tags($temoignage_message, $allowable_tags);
                $temoignage_message = nl2br($temoignage_message);
                // nl2br() : change les sauts de ligne tapés par le visiteur en <br />
                $temoignage_message = preg_replace("/(\r\n|\n|\r)/", " ", $temoignage_message);
                // enlève les sauts de ligne résiduels, pour l'écriture dans le fichier (sur une seule ligne)
                // On censure
                $newnom = censorWords($temoignage_nom);
                $newmessage = censorWords($temoignage_message);
                $newmail = censorWords($temoignage_mail);
                $champ_censure = array();
                if ($temoignage_nom != $newnom) {
                    $champ_censure[] = 'Nom';
                }
                if ($temoignage_message != $newmessage) {
                    $champ_censure[] = 'Message';
                }
                if ($temoignage_mail != $newmail) {
                    $champ_censure[] = 'Email';
                }
                if (count($champ_censure) > 0) {
                    $temoignage_MsgErreur .= 'Ces champs ont été censurés : ' . implode(', ', $champ_censure) . '<br />';
                }
                // champs obligatoires
                $champ_obligatoire = array();
                if ($temoignage_nom == '' || $newnom == '') {
                    $temoignage_validForm = false;
                    $champ_obligatoire[] = 'Nom';
                }
                if ($temoignage_message == '' || $newmessage == '') {
                    $temoignage_validForm = false;
                    $champ_obligatoire[] = 'Message';
                }
                if (count($champ_obligatoire) > 0) {
                    $temoignage_MsgErreur .= 'Remplissez tous les champs obligatoires : ' . implode(', ', $champ_obligatoire) . '<br />';
                }
                // -----------------------
                // Vérification du format de l'Email
                if ($temoignage_mail != '' && !filter_var($temoignage_mail, FILTER_VALIDATE_EMAIL)) {
                    $temoignage_validForm = false;
                    $temoignage_MsgErreur .= 'Invalide Email !<br />';
                }
                // -----------------------
                // OK SI PAS D'ERREUR
                if ($temoignage_validForm === true) {
                    // ---------------------
                    if ($newnom != '' && $newmessage != '') {
                        // ECRITURE dans le GESTBOOK
                        //Ouverture du fichier en écriture
                        $fp = fopen($temoignage_file, 'a');
                        // 'a' : à la fin du fichier
                        $line = $newnom . $temoignage_delimit . $newmessage . $temoignage_delimit . $newmail . $temoignage_delimit . $date . $temoignage_delimit . $temoignage_ipvisiteur . "\n";
                        //On rajoute le message
                        fwrite($fp, $line, strlen($line));
                        //fermeture du fichier
                        fclose($fp);
                        // ---------------------
                    }
                    // ---------------------
                    // On vide
                    $temoignage_nom = '';
                    $temoignage_message = '';
                    $temoignage_mail = '';
                }
            }
        }
        // ---------------------
        //unset($_POST);
        // anti-F5 (évite de re-poster le formulaire en cas de F5 ("Actualiser la page")
        //$_SESSION['antiF5'] = rand(100000,999999);
        // ---------------------
        load_css('goldbook.css', 'goldbook');
        load_js('goldbook.js', 'goldbook');
    }
}
예제 #2
0
{
    foreach ($bannedWords as $censorWord) {
        $pattern = str_repeat('*', mb_strlen($censorWord));
        $text = str_ireplace($censorWord, $pattern, $text);
    }
    return $text;
}
define("TEXT", "text");
define("BANNEDWORDS", "banned-words");
define("WHOLEWORDS", "whole-words");
if (!empty($_POST[TEXT]) && !empty($_POST[BANNEDWORDS])) {
    $inputText = $_POST[TEXT];
    $inputBanedWords = mb_strtolower($_POST[BANNEDWORDS], 'UTF-8');
    $bannedWords = preg_split('/\\P{L}+/u', parseInput($inputBanedWords), -1, PREG_SPLIT_NO_EMPTY);
    if (isset($_POST['whole-words'])) {
        $result = censorWords(parseInput($inputText), $bannedWords);
    } else {
        $result = censorSequence(parseInput($inputText), $bannedWords);
    }
} else {
    $result = '';
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>Text Filter</title>
    <link rel="stylesheet" href="styles/style.css"/>
</head>
<body>