begin process at 2012 05 31 17:18:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

POO

 > 

Classes & Objets

 > 

recuperer les données dans la bdd et les passer à un tableau d'une autre instance de classe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

recuperer les données dans la bdd et les passer à un tableau d'une autre instance de classe

jeudi 9 octobre 2008 à 15:26:20 | recuperer les données dans la bdd et les passer à un tableau d'une autre instance de classe

tex73

bonjour à tous!
je suis confronté à un pb depuis ce matin. en fait je travail en ce moment sur un peit projet de newsletter à envoi automatique.
pour cela lorsque l'admin saisi un message et le poste, on recupere dans la table des clients tous les comptes ayant l'option newsletter activé. on construit ensuite un message pour chacun et l'insere alors dans la table newsletter_mails.
un systeme de cron sera alors declenché pour envoyé les mails tous les 5s en ssupprimant au fur et à mesure ceux envoyé. voilà pour le principe.
mais au moment de l'insertion des données dans la table 'newsletter_mails', ce message d'erreur apparait:

Cannot add Mail. Empty value for [recepientMail]

voici le code de traitement de données


if(isset($_POST['msg_field'])&&($_POST['msg_field']!==''))
{
//on recupere les valeurs des champs
  $sujet=mysql_escape_string($_POST['objet']);
  $msg=mysql_escape_string(freeRTE_Preload($_POST['msg_field']));
  $domain=$_SERVER['HTTP_HOST'];
   //connexion à la bdd 
   $db = new IrivenSql($config['server'], $config['user'], $config['pass'], $config['database'], $config['tablePrefix']);
   $db->Irivenconnect();
   // la requete qu' on va envoyer :
$Query = 'SELECT user_name, Email, etat FROM newsletter_users WHERE etat ="Active"';
$results = $db->Irivenquery($Query);
while ($row = $db->Irivenfetch_array($results)) {
  //instanciation de la newsletter
$newsletter= new newsletter();
$newsletter->addMysqlObg($db);
 /* 
 ///juste pour verifier que la requete precedent retourne des valeurs:  ce qui est le cas
  echo $row['user_name'];
         echo $row['Email']; */
$recepient['name'] = $newsletter->$row['user_name'];
$recepient['Email'] = $newsletter->$row['Email'];
//construction des données à insérer dans la table newsletter_mails
    $data=array( 'method'        => 'SMTP',//deux valeurs possibles:'mail' ou 'smtp'
                    'From'             => 'myadress@domain.com', //votre adresse email
                    'FromName'         => 'My Name', // votre nom
                    'Host'             => $domain, //le nom de domaine
                    'SMTPAuth'         => true, //authentification smtp activéé
                    'Username'         => 'myadress@domain.com',//votre adresse email de connexion smtp
                    'Password'         => 'password', // votre mot de passe smtp
                    'recepientMail' => $recepient['Email'], //email du desinataire
                    'recepientName' => $recepient['name'],//nom du destinataire
                    'subject'       => $sujet,// titre du message
                    'body'          => $msg,//corps du message
                    'ContentType'   => 'text/html', //type de message
                    'priority'      => '3',// priorité, compris entre 1 et 5
                    'SendDate'      => time(), //date en secondes
                    );

//on enregistre dans la bdd                   
$add=$newsletter->addMail($data);
if ($add===false) echo $newsletter->errorMsg;
//$db2->Irivenclose();
}
 $db->Irivenclose();
}



Votre aide m'est précieuse


http://www.bbsecurit.com
Tout mal qui ne nous tue pas nous rend plus fort.NIETSCHES
jeudi 9 octobre 2008 à 16:41:52 | Re : recuperer les données dans la bdd et les passer à un tableau d'une autre instance de classe

tex73

pour  information, voici la fonction de données:

function addMail($params){
        $data=array('method'           => ( isset($params['method']) )           ? $params['method']        : 'mail',
                    'From'             => ( isset($params['From']) )            ? $params['From']          : 'root@localhost',
                    'FromName'         => ( isset($params['FromName']) )        ? $params['FromName']      : 'Root Account',
                    'Host'             => ( isset($params['Host']) )             ? $params['Host']          : 'localhost',
                    'SMTPAuth'         => ( isset($params['SMTPAuth']) )        ? $params['SMTPAuth']      : true,
                    'Username'         => ( isset($params['Username']) )        ? $params['Username']      : 'root@localhost',
                    'Password'         => ( isset($params['Password']) )         ? $params['Password']      : '',
                    'recepientMail' => ( isset($params['recepientMail']) ) ? $params['recepientMail'] : false,
                    'recepientName' => ( isset($params['recepientName']) ) ? $params['recepientName'] : '',
                    'subject'       => ( isset($params['subject']) )       ? $params['subject']       : false,
                    'body'          => ( isset($params['body']) )          ? $params['body']          : false,
                    'ContentType'   => ( isset($params['ContentType']) )   ? $params['ContentType']   : 'text/plain',
                    'priority'      => ( isset($params['priority']) )      ? $params['priority']      : '3',
                    'SendDate'      => ( isset($params['SendDate']) )      ? $params['SendDate']      : time(),
                    );
        $error=false;           
        foreach ( $data as $key=>$value ){
            if ($value===false) {
                $error=true;
                $errorMsg="Cannot add Mail. Empty value for [$key]";
            }
        }
        if ( $error===true ){
            $this->errorMsg=$errorMsg;
            return false;
        } else {
            if ( ($this->mysqlObj instanceof mysql) === false ) {                
                $this->errorMsg='Could not find a mysql object. Please load one using addMysqlObg.';
                return false;
            } else {
                $insertAttempt=$this->mysqlObj->Irivenrecord_insert($this->$MysqlMsgTableName ,$data);
                if ($insertAttempt===true) return true;
                else {               
                    $this->errorMsg='SQL ERROR :'.$this->mysqlObj->error_desc;
                    return false;                   
                }
            }
        }   
    }
   

http://www.bbsecurit.com
Tout mal qui ne nous tue pas nous rend plus fort.NIETSCHES
jeudi 9 octobre 2008 à 16:43:59 | Re : recuperer les données dans la bdd et les passer à un tableau d'une autre instance de classe

tex73

fonction d'insertion de données dans la table newsletter_mails

http://www.bbsecurit.com
Tout mal qui ne nous tue pas nous rend plus fort.NIETSCHES
samedi 11 octobre 2008 à 04:26:56 | Re : recuperer les données dans la bdd et les passer à un tableau d'une autre instance de classe

Ordinastie

Bonjour,

C'est le message "Cannot add Mail. Empty value for [recepientMail]" que tu comprends pas? C'est pourtant on ne peut plus explicite. La donnée est vide. Sachant qu'elle est remplie par "$recepient['Email']", vérifie que la variable "$newsletter->$row['Email']" est bien remplie comme il faut... ce dont je doute vu la forme de la variable... Je suppose que $newsletter est en trop dans l'assignation, et que ça devrait être $recepient['Email'] = $row['Email'].

Je ne connais pas le framework que tu utilises mais y'a des trucs vraiment bizarres. Le système ne me semble pas super bien pensé.

Ordinastie.


Cette discussion est classée dans : message, db, email, name, newsletter


Répondre à ce message

Sujets en rapport avec ce message

Newsletter avec des images dans le corps [ par mitchbuck ] Hi everybody !Petite question : je souhaite créer une newsletter façon "entreprise" dont le corps de l'email est en fait une page internet normale (.. Mail php flash [ par fdgdfsgdfgd ] Bonjour a tous !J'ai creer un site flash avec une rubrique contact.Sur cette page 3 champs a remplir et 2 boutons, "effacer" qui fonctionne, et "envoy Erreur dans un script de formulaire [ par Sven78 ] Bonjour à toutes et à tous Google m'a conduit ici quand je lui ai demandé de l'aide sur la fonction $_POST qui semble me poser problème À la base c'e Mail : HTML ; SPAM... [ par xeroxiss ] Hello tout le monde !Dans un post précédent je demandais comment faire pour qu'un formulaire de contact php ne sois pas interpreter comme un spam...Ce contact2 [ par nicomilville ] bonjour voici mon code ://Dans la ligne qui suit, remplacer webmaster@domaine.tld par l'adresse email du webmaster, à laquelle les messages devront êt lire un email [ par waterw72 ] Bonjour,J'aimerais savoir pourquoi lorsque je lis un mail que je me suis envoyé avec une pièce jointe à partir de mon " webmail " maison, les entêtes probleme avec un formulaire d'iscription [ par Vigasse ] <span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Cali valider un captcha [ par philclimb ] Bonjour;J'ai réaliser un formulaire de mail que je veux placer dans la page "contact" de mon site.Pour éviter les vilains spams j'ai placé un captcha, bouton Newsletter [ par jekifvb6 ] Bonjour à toutes et tous,J'aimerais simplement faire un textbox dans lequel on puisse mettre une adresse email pour la stocker dans une BDD en vue d'u Fonction email [ par milkasoprano ] Bonjour j'ai un petit renseignement a vous demander ! pk ma fonction mail ne fonctionne pas ? je ne recois pas demail ! le site supporte bien la fonct


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,842 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales