0) $erreurs['objet'] = _T('nospam:erreur_spam'); // on analyse le texte $infos_texte = nospam_analyser_spams($texte); if ($infos_texte['nombre_liens'] > 0) { // si un lien a un titre de moins de 3 caracteres = spam ! if ($infos_texte['caracteres_texte_lien_min'] < 3) { $erreurs['texte'] = _T('nospam:erreur_spam'); } // si le texte contient plus de trois lien = spam ! if ($infos_texte['nombre_liens'] >= 3) $erreurs['texte'] = _T('nospam:erreur_spam'); } } if (count($erreurs)) { return $erreurs; } $saisies = $GLOBALS['gamucontact']; //champs obligatoire foreach ($saisies as $s) { if ($s['options']['obligatoire'] === 'oui') { $name = $s['options']['nom']; if (!_request($name)) $erreurs[$name] = 'Ce champs est obligatoire'; } } return $erreurs; } function formulaires_gamucontact_traiter_dist($id_auteur = 0, $redirect = '') { $retour = array(); $saisies = $GLOBALS['gamucontact']; if (!empty($saisies)) { foreach ($saisies as $saisie) { $champ = $saisie['options']['nom']; if (isset($f) and !empty($f)) { $set = $f($id_auteur, $champ, _request($champ), $set); } else { $set[$champ] = _request($champ); } } $set['date_heure'] = date("Y-m-d H:i:s"); if (count($set) > 0) { $set = pipeline( 'pre_edition', array( 'args' => array( 'action' => 'gamucontact_pre_contact', ), 'data' => $set ) ); $id_message = sql_insertq('spip_messages', $set); } } $destinataires = []; if (intval($id_auteur)) { $email = sql_getfetsel('email', 'spip_auteurs', 'id_auteur='.intval($id_auteur)); if ($email) { $destinataires[] = $email; } } $liste_emails = lire_config('gamucontact/liste_emails'); if (strlen($liste_emails)) { $Tliste_emails = explode(';', $liste_emails); if (is_array($Tliste_emails) and count($Tliste_emails)) { $destinataires = array_merge($Tliste_emails, $destinataires); } } $liste_id_auteur = lire_config('gamucontact/liste_id_auteur'); if (strlen($liste_id_auteur)) { $Tliste_id_auteur = explode(';', $liste_id_auteur); if (is_array($Tliste_id_auteur) and count($Tliste_id_auteur)) { $t = sql_allfetsel('email', 'spip_auteurs', sql_in('id_auteur', $Tliste_id_auteur)); if(is_array($t) and count($t)) { $t = array_column($t, 'email'); $destinataires = array_merge($t, $destinataires); } } } $test_mail = true; if (count($destinataires)) { $html = recuperer_fond('modeles/gamucontact_message', ['id_message' => $id_message]); include_spip('classes/facteur'); $texte = Facteur::html2text($html); $corps = array( 'html' => $html, 'texte' => $texte, ); $envoyer_mail = charger_fonction('envoyer_mail', 'inc'); $test_mail = $envoyer_mail($destinataires, _request('objet'), $corps, '', 'X-Originating-IP: '.$GLOBALS['ip']); } if (intval($id_message) and $test_mail) { $retour['message_ok'] = _T('gamucontact:formulaire_bien_envoyé'); } if ($redirect) { $retour['redirect'] = $redirect; } return $retour; }