Fork me on GitHub




(1) 2 »


envoi mail uniquement aprés validation
Semi pro
Inscrit: 06/09/2005 01:34
De Royan
Messages: 609
Bonjour,

j'aimerai savoir comment faire pour recevoir les mails uniquement après validation

j'ai ajouter une fonction il y a certainement des choses a amélioré (simplifiés)

voici la fonction

function signalementannonce() {

global 
$xoopsUser$isAdmin$ads$ads_handler;
//ajout CPascal - 29 avril 2011 - variable pour envoi Email de confirmation        
$ads_title $ads->getVar('ads_title');
$uid $ads->getVar('uid');
//fin
$ads_id $ads->getVar('ads_id');
$ok =  isset($_POST['ok']) ? intval($_POST['ok']) : 0;

if (
$ads->getVar('signalementannonce') == 0) {
//signalé cette annonce comme suspecte
$msgconf _MD_DIFFUANNONCES_DECLARFRAUDE_CONF;
$msgok _MD_DIFFUANNONCES_DECLARFRAUDE_OK;
$signalementannonce 1;
} else {
//déclarer cette annonce non suspecte
$msgconf _MD_DIFFUANNONCES_DECLARNOFRAUDE_CONF;
$msgok _MD_DIFFUANNONCES_DECLARNOFRAUDE_OK;
$signalementannonce 0;
}
if ( 
$ok == ) {
$ads->setVar('signalementannonce'$signalementannonce);
$update_ads_ok $ads_handler->insert($ads);
if (
$update_ads_ok){
$messagesent $msgok;
} else {
$messagesent _MD_DIFFUANNONCES_UPDATE_ERROR;
}
                
redirect_header("adsitem.php?ads_id=".$ads_id3$messagesent);

} else {
xoops_confirm(array('op' => 'signalementannonce''ads_id' => $ads_id'ok' => 1), 'adsitem.php'$msgconf);
        }
//ajout CPascal - 29 avril 2011 - envoi Email d'information a l'annonceur lorsque une annonce est signaler suspect
if ($signalementannonce == 1) {

global 
$xoopsDB$xoopsConfig$xoopsUser;
//récupéré le nom de l'annonceur
$sql2 $xoopsDB->query("SELECT uname FROM ".$xoopsDB->prefix("users")." WHERE uid = ".$uid);
list(
$uname) = $xoopsDB->fetchRow($sql2);                    
                    
                        
$mail_url_ads "<a href='".XOOPS_URL."/modules/diffuannonces/adsitem.php?ads_id=".$ads_id."'>".$ads_title."</a>";
                        
                        
$mail_msg_text =  str_replace("{X_UNAME}"$uname_MD_DIFFUANNONCES_MAIL_ADSSUSPECT_TEXT);
                        
$mail_msg_text2 str_replace("{X_ADS_TITLE}"$ads_title$mail_msg_text);
                        
$mail_msg_text3 str_replace("{X_ADS}"$mail_url_ads$mail_msg_text2);
                        
$mail_msg_text4 str_replace("{X_SITEURL}"XOOPS_URL$mail_msg_text3);
                        
$mail_msg_text5 str_replace("{X_ADMINMAIL}"$xoopsConfig['adminmail'], $mail_msg_text4);
                        
$mail_msg_text6 str_replace("{X_SITENAME}"$xoopsConfig['sitename'], $mail_msg_text5);
                        
$mail_msg $mail_msg_text6;
                        
                        include_once 
XOOPS_ROOT_PATH."/class/xoopsmailer.php";
$email $ads->getVar('email');


                        
//$xoopsMailer =& getMailer();
                        //$xoopsMailer = xoops_getMailer();
                        
$xoopsMailer getMailer();
                        
$xoopsMailer->useMail();
                        
$xoopsMailer->setFromEmail($xoopsConfig['adminmail']);
                        
$xoopsMailer->setFromName($xoopsConfig['sitename']);
                        
$xoopsMailer->setToEmails($email);
                        
$xoopsMailer->setSubject(_MD_DIFFUANNONCES_MAIL_ADSSUSPECT_TITLE);
                        
$xoopsMailer->setBody($mail_msg);
                        
$xoopsMailer->usePM();
                        
$xoopsMailer->multimailer->isHTML(true);//encodage html
                        
$xoopsMailer->send();
                        
$xoopsMailer->getErrors();    
                
//pour eviter que le mail soit a nouveau envoyer
$sql "UPDATE "$xoopsDB->prefix('diffuannonces_ads')." SET signalementannonce = '0' WHERE ads_id = ".$ads_id;
$result $xoopsDB->queryF($sql);                        
}

//ajout CPascal - 29 avril 2011 - envoi Email d'information a l'administrateur/site lorsque une annonce est signaler suspect
if ($signalementannonce == 1) {

global 
$xoopsDB$xoopsConfig$xoopsUser;
                    
                        
$mail_admin_url_ads "<a href='".XOOPS_URL."/modules/diffuannonces/adsitem.php?ads_id=".$ads_id."'>".$ads_title."</a>";
                        
                        
$mail_admin_msg_text =  str_replace("{X_UNAME}""{X_SITENAME}"_MD_DIFFUANNONCES_MAIL_ADNIM_ADSSUSPECT_TEXT);
                        
$mail_admin_msg_text2 str_replace("{X_ADS_TITLE}"$ads_title$mail_admin_msg_text);
                        
$mail_admin_msg_text3 str_replace("{X_ADS}"$mail_admin_url_ads$mail_admin_msg_text2);
                        
$mail_admin_msg_text4 str_replace("{X_SITEURL}"XOOPS_URL$mail_admin_msg_text3);
                        
$mail_admin_msg_text5 str_replace("{X_ADMINMAIL}"$xoopsConfig['adminmail'], $mail_admin_msg_text4);
                        
$mail_admin_msg_text6 str_replace("{X_SITENAME}"$xoopsConfig['sitename'], $mail_admin_msg_text5);
                        
$mail_admin_msg $mail_admin_msg_text6;
                        
                        include_once 
XOOPS_ROOT_PATH."/class/xoopsmailer.php";

                        
$xoopsMailer getMailer();
                        
$xoopsMailer->useMail();
                        
//$xoopsMailer->setFromEmail($xoopsConfig['adminmail']);
                        
$xoopsMailer->setFromName($xoopsConfig['sitename']);
                        
$xoopsMailer->setToEmails($xoopsConfig['adminmail']);
                        
$xoopsMailer->setSubject(_MD_DIFFUANNONCES_MAIL_ADNIM_ADSSUSPECT_TITLE);
                        
$xoopsMailer->setBody($mail_admin_msg);
                        
$xoopsMailer->usePM();
                        
$xoopsMailer->multimailer->isHTML(true);//encodage html
                        
$xoopsMailer->send();
                        
$xoopsMailer->getErrors();    
                
//pour eviter que le mail soit a nouveau envoyer
$sql "UPDATE "$xoopsDB->prefix('diffuannonces_ads')." SET signalementannonce = '0' WHERE ads_id = ".$ads_id;
$result xoopsDB->queryF($sql);                        
}    
    
//ajout CPascal - 29 avril 2011 - envoi Email d'information lorsque une annonce n'est plus signaler suspect            
elseif ($signalementannonce == 0) {
global 
$xoopsDB$xoopsConfig$xoopsUser;
//récupéré le nom de l'annonceur
$sql2 $xoopsDB->query("SELECT uname FROM ".$xoopsDB->prefix("users")." WHERE uid = ".$uid);
list(
$uname) = $xoopsDB->fetchRow($sql2);
//Envoie par email
                        
$mail_url_ads "<a href='".XOOPS_URL."/modules/diffuannonces/adsitem.php?ads_id=".$ads_id."'>".$ads_title."</a>";
                        
                        
$mail_msg_text =  str_replace("{X_UNAME}"$uname_MD_DIFFUANNONCES_MAIL_ADSNOSUSPECT_TEXT);
                        
$mail_msg_text2 str_replace("{X_ADS_TITLE}"$ads_title$mail_msg_text);
                        
$mail_msg_text3 str_replace("{X_ADS}"$mail_url_ads$mail_msg_text2);
                        
$mail_msg_text4 str_replace("{X_SITEURL}"XOOPS_URL$mail_msg_text3);
                        
$mail_msg_text5 str_replace("{X_ADMINMAIL}"$xoopsConfig['adminmail'], $mail_msg_text4);
                        
$mail_msg_text6 str_replace("{X_SITENAME}"$xoopsConfig['sitename'], $mail_msg_text5);
                        
$mail_msg $mail_msg_text6;
                        
                        include_once 
XOOPS_ROOT_PATH."/class/xoopsmailer.php";
$email$ads->getVar('email');


                        
//$xoopsMailer =& getMailer();
                        //$xoopsMailer = xoops_getMailer();
                        
$xoopsMailer getMailer();
                        
$xoopsMailer->useMail();
                        
$xoopsMailer->setFromEmail($xoopsConfig['adminmail']);
                        
$xoopsMailer->setFromName($xoopsConfig['sitename']);
                        
$xoopsMailer->setToEmails($email);
                        
$xoopsMailer->setSubject(_MD_DIFFUANNONCES_MAIL_ADSNOSUSPECT_TITLE);
                        
$xoopsMailer->setBody($mail_msg);
                        
$xoopsMailer->usePM();
                        
$xoopsMailer->multimailer->isHTML(true);//encodage html
                        
$xoopsMailer->send();
                        
$xoopsMailer->getErrors();    
                
//pour eviter que l'annonce soit a nouveau envoyer
$sql "UPDATE "$xoopsDB->prefix('diffuannonces_ads')." SET signalementannonce = '1' WHERE ads_id = ".$ads_id;
$result $xoopsDB->queryF($sql);            
    }                
//fin        
}



quand ont tombe sur 'xoops_confirm' il envoi les mails sans même avoir valider ou même si j'annule cette action

je crois qu'il faut ajouter quelques chose style $_POST etc.. dans
if ($signalementannonce == 1) {


du style:
if (($signalementannonce == 1)&&($_POST['???'] == 1)) {


qui peut m'aider ?








Posté le : 30/04/2011 20:16
Partager Twitter Partagez cette article sur GG+
Re: envoi mail uniquement aprés validation
Supporter Xoops
Inscrit: 09/01/2005 13:37
De Breizh
Messages: 16972
simple suggestion : as-tu regardé dans le module contact comment cela était fais ?

Posté le : 30/04/2011 20:40

La connaissance s'accroît quand on la partage ...
Partager Twitter Partagez cette article sur GG+
Re: envoi mail uniquement aprés validation
Semi pro
Inscrit: 06/09/2005 01:34
De Royan
Messages: 609
bonsoir kris

je viens de regarder il n'utilise pas xoops_confirm

moi c'est dans la page de confirmation 'xoops_confirm' quand je demande êtes vous sur bla bla bla la ont doit valider ou annuler mais mes emails partent avant que je valide il manque quelques choses mais quoi ? je ne suis qu'un petit bidouilleur php :oops:

tu peut t'en rendre compte si tu veut sur mon site test ici pour te donner une idée

merci a toi (une fois de plus)

Posté le : 30/04/2011 22:53
Partager Twitter Partagez cette article sur GG+
Re: envoi mail uniquement aprés validation
Supporter Xoops
Inscrit: 09/01/2005 13:37
De Breizh
Messages: 16972
le module jobs n'a pas ceci ?

Posté le : 30/04/2011 23:04

La connaissance s'accroît quand on la partage ...
Partager Twitter Partagez cette article sur GG+
Re: envoi mail uniquement aprés validation
Semi pro
Inscrit: 06/09/2005 01:34
De Royan
Messages: 609
je viens de télécharger le module jobs mais je ne trouve pas ou est mon erreur

je vais essayer un truc ou deux et poster sur xoops.org sinon tant pis je posterai ce module (catads suite...) en beta avec ce petit bug mineur en espérent que mon erreur soit corrigé
en tout cas merci de ton aide

Posté le : 01/05/2011 00:01
Partager Twitter Partagez cette article sur GG+
Re: envoi mail uniquement aprés validation
Semi pro
Inscrit: 16/12/2008 16:38
Messages: 1644
c est le futur catad si je comprend bien IL A l air superbe
??

Posté le : 01/05/2011 06:50

http://www.troc-lorraine.com
vendre en lorraine

Partager Twitter Partagez cette article sur GG+
Re: envoi mail uniquement aprés validation
Semi pro
Inscrit: 06/09/2005 01:34
De Royan
Messages: 609
salut fabrice8888

oui il est presque terminée, il correspond plus a ce que je souhaité, maintenant va t'il plaire au plus grand nombre ?

il me reste a ajouter 3 ou 4 options puis un grand nettoyage code et defines, je sais que tu l'attend je fais au mieux

Posté le : 01/05/2011 10:41
Partager Twitter Partagez cette article sur GG+
Re: envoi mail uniquement aprés validation
Supporter Xoops
Inscrit: 09/01/2005 13:37
De Breizh
Messages: 16972
Pour la vérification des defines inutiles, tu as ce script php de trabis :
<?php
//  Author: Trabis
//  URL: http://www.xuups.com
//  E-Mail: lusopoemas@gmail.com

include_once dirname(dirname(dirname(__FILE__))) . '/mainfile.php';

$search_pattern '/defines*(s*['"]([^'"]*?)['"]s*,s*['"](.*?)['"]s*)s*;/ism';

$skip_patterns = array(
    '
///.*/',
    
'//*([^*]*)*//s',
);
$files = array('main.php''modinfo.php''blocks.php''admin.php''help.php');
$contents '';

foreach (
$files as $file) {
    
$fileName dirname(__FILE__) . '/language/french/' $file;

    if (
file_exists($fileName)) {
        
$contents .= file_get_contents($fileName);
    }

    
$str preg_replace($skip_patterns''$contents);
    
preg_match_all($search_pattern$str$match);
    for (
$i 0$i sizeof($match[1]); $i++) {
        
$result[$match[1][$i]] = $match[2][$i];
    }
}

$defines array_keys($result);
$used = array();

languageCheck(dirname(__FILE__), $defines$used);
$unused array_diff($defines$used);

$fix = isset($_GET['fix']) ? true false;
if (
$fix) {
    
languageFix(dirname(__FILE__) . '/language'$unused);
    
redirect_header("language_check.php"1'DONE!');
    exit();
}


$string implode('<br />'$defines);
echo 
'<div style="background-color:#eee;">DEFINES<br />';
echo 
$string;
echo 
'</div><br /><br />';
echo 
'<div style="background-color:#ee0;">USED<br />';
$string implode('<br />'$used);
echo 
$string;
echo 
'</div><br /><br />';

if (
count($unused) > 0) {
    echo 
'<div style="background-color:#e0e;">UNUSED<br />';
    
$string implode('<br />'$unused);
    echo 
$string;
    echo 
'</div>';
    echo 
'<div><a href="language_check.php?fix=1">FIX IT NOW</a></div>';
} else {
    echo 
'<div>ALL OK!</div>';
}

// recursive checking script
function languageCheck($path$defines, &$used)
{
    if (
is_dir($path)) {

        
// check all files in dir, and process it
        
if ($handle opendir($path)) {
            while (
$file readdir($handle)) {
                if (
$file != '.' && $file != '..' && $file != '.svn' && $file != 'language') {
                    
languageCheck("{$path}/{$file}"$defines$used);
                }
            }
            
closedir($handle);
        }
    } else {

        if (!
preg_match('/(.jpg|.gif|.png|.zip)$/i'$path)) {
            
// file, read it
            
$content file_get_contents($path);
            foreach (
$defines as $define) {
                 if (
preg_match('/(' $define ')/i'$content)) {
                    
$used[] = $define;
                 }
            }
        }
    }
}

function 
languageFix($path$unused)
{
    if (
is_dir($path)) {

        
// check all files in dir, and process it
        
if ($handle opendir($path)) {
            while (
$file readdir($handle)) {
                if (
$file != '.' && $file != '..' && $file != '.svn') {
                    
languageFix("{$path}/{$file}"$unused);
                }
            }
            
closedir($handle);
        }
    } else {

        if (!
preg_match('/(.jpg|.gif|.png|.zip)$/i'$path)) {
            
// file, read it
            
$content file_get_contents($path);
            foreach (
$unused as $word) {
                
$content preg_replace('/(defines*(['"])'. $word .'(['"])/ism', '//\1' . $word . '\2', $content);
            
}
            
file_put_contents($path$content);
        }
    }
}
?>

tu nommes le fichier "language_check.php" par exemple, et tu le mets à la racine de ton module, ensuite tu l'appelles via http://tonsite/modules/tonmodule/language_check.php

sur la page, en bas, tu corriges en cliquant sur "fix now"

Posté le : 01/05/2011 11:50

La connaissance s'accroît quand on la partage ...
Partager Twitter Partagez cette article sur GG+
Re: envoi mail uniquement aprés validation
Semi pro
Inscrit: 06/09/2005 01:34
De Royan
Messages: 609
salut kris

merci plutôt sympa cette fonction, je viens de tester visiblement bug
ligne 8: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING
$search_pattern '/defines*(s*['"]([^'"]*?)['"]s*,s*['"](.*?)['"]s*)s*;/ism';


et certainement ligne 111
$content preg_replace('/(defines*(['"])'. $word .'(['"])/ism', '//1' . $word . '2', $content);



Posté le : 01/05/2011 12:16
Partager Twitter Partagez cette article sur GG+
Re: envoi mail uniquement aprés validation
Semi pro
Inscrit: 16/12/2008 16:38
Messages: 1644
merci cpascal pour ton travaille
encore merci

Posté le : 01/05/2011 15:23

http://www.troc-lorraine.com
vendre en lorraine

Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant
(1) 2 »



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

114 Personne(s) en ligne (97 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 114 | Plus ...