Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    489

    aiuto nell utilizzo di una classe all internodi una funzione

    ciao ragazzi!

    ho il seguente schema:

    codice:
    require("class.phpmailer.php");
    
    function1($x)
    {
    fai X cose
    invia mail
    }
    
    
    function2($x)
    {
    fai X cose
    invia mail
    function1()
    }
    
    
    function1()
    ora il problema é che all interno della funzione non riesco ad usare la class. mi appare questo errore:

    PHP Fatal error: Call to undefined method: stdClass->addaddress() in D:\SITE\Www_root\functions.php on line 1220

    se ri dichiaro la classe all interno della funzione mi da errore dicendo che non posso ridichiararla.

    come si risolve?

    grazie

    ciao

    Igor

  2. #2
    Posta il codice esattamente come lo hai scritto.

    Da quello che hai postato sembra tu non abbia instanziato correttamente la classe.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    489
    ciao!

    il codice completo é lunghissimo..

    l ho scritto esattamente come postato sopra, ma ho scritto del codice ulteriore all interno delle funzioni.

    cé una parte in particolare che vuoi che posta?

    il file completo é circa 2000 righe perche é un cron che viene eseguito regolarmente e fa una miriade di operazioni

    grazie

    ciao

    igor

  4. #4
    Per iniziare puoi postare un intorno della riga 1220.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    489
    ciao!

    al momento non sono a casa, posto questa sera appena torno.

    perķ non credo il problema sia nella riga 1200 perche se dichiaro la classe SOLO all interno della funzione, riesco a spedire la mail senza problemi. purtroppo se la dichiaro dentro alla funzione dovrei ridichiararla all interno dell altra funzione e li mi da errore.

    come andrebbe dichiarata una classe?

  6. #6
    IMHO hai delle grosse lacune sulle basi.

    Ti suggerisco di ricominciare studiando il manuale ufficiale:

    http://www.php.net/manual/en/languag...bles.scope.php

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    489
    ciao!

    si sono agli inizi e ho imparato dasolo.. xcio sono molto alle basi..

    ho guardato il link che mi hai dato, ma da quel poco che capisco mi sembra di aver fatto giusto, cioé dato che la class l ho chiamata prima della funzione dovrebbe essere globale no?

    dunque ora sonoa casa, ecco qui il file: (ho inserito solo le parti importanti..)


    cron.php
    codice:
    
    <?php
    require("class.mailconfig.php");
    include_once ('functions.php');
    
    calc($id,$id2,$id3,$debug);
    
    ?>

    functions.php
    codice:
    <?php
    function update($id,$debug)
    {
    //UN SACCO SI CODICE
    
    
    }
    
    
    function calc($id,$id2,$id3,$debug)
    {
    //un sacco di codice
    //blocco che mi avevi chiesto oggi:
    
    	{
    
    									$EmailTo = $wantsrep2['email'];
    $mail->From = "noreply@m.com";
    $mail->AddAddress( $EmailTo );
    $mail->AddReplyTo("noreply@m.com", $name = "NoReply");
    $mail->Subject = "New PM";
    $mail->Body = "TESTO!";
    $mail->WordWrap = 50;
    if(!$mail->Send())
    
    {
    
    echo 'Message was not sent.';
    echo 'Mailer error: ' . $mail->ErrorInfo;
    }
    $mail->ClearAddresses();
    }
    
    
    
    //esegui prima funzione
    update($id,$debug);
    
    }
    
    ?>


    grazie

    ciao

  8. #8
    Nel tuo codice NON vedo alcun

    Codice PHP:
    $mail = new PHPMailer(); 

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    489
    ecco il contenuto di class.mailconfig.php:

    codice:
    <?php 
    require("class.phpmailer.php");
    $mail = new PHPMailer();
    $mail->FromName = "noreply@m.com";
    $mail->SMTPAuth = True;     // turn on SMTP authentication 
    $mail->Username = "noreply@m.com"; // SMTP server
    $mail->Password = "XXXX"; // SMTP server
    $mail->IsSMTP(); // telling the class to use SMTP
    $mail->Host = "smtp.XXXX.com"; // SMTP server
    $mail->Port = "25"; // SMTP server
    
    ?>

  10. #10
    Originariamente inviato da filippo.toso
    Ti suggerisco di ricominciare studiando il manuale ufficiale:

    http://www.php.net/manual/en/languag...bles.scope.php
    Il problema sta nello scope. Stai tentando di usare una variabile globale all'interno dello scope di una funzione.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.