Newsgroup: it.comp.www.php
Titolo: PHP object oriented: non ci capisco nulla!!

Ciao, sto cercando di realizzare un modulo per l'invio di email, e siccome
volevo fare in modo che nell'email fossero contenute anche alcune immagini
(un logo, uno sfondo...) ho cercato di capire come fare.
Sul sito della Zend ho trovato un articolo
(
http://www.zend.com/zend/spotlight/sendmimeemailpart1.php
) in cui oltre
alla teoria era presente il link ad una classe per spedire email sfruttando
appieno il MIME (
http://www.phpguru.org/static/mime.mail.html
).
Ora, sto cercando di integrare questa classe in una pagina del mio sito, ma
c'č qualcosa che non capisco: come cacchio faccio a mandare una variabile
dentro un blocco di codice object oriented?!?
In pratica, dentro questa classe c'č un punto dove bisogna specificare il
messaggio da inviare (sia in formato testo che html); negli esempi in
allegato alla classe questo avviene sempre includendo due file esterni:
$text = $mail->getFile('example.txt');
$html = $mail->getFile('example.html');
Ma nella documentazione č scritto chiaramente: "Text/html data doesn't have
to come from files, could come from anywhere."
Ora, il testo di queste email deve contenere alcuni dati generati
dinamicamente, ma come faccio a passargli il contenuto di queste
variabili?!? Ho provato nel modo piů semplice, assemblando il testo fisso e
il contenuto dinamico in una variabile per l'html e una per l'email solo
testo, che poi ho cercato di passargli cosě:
$text = $mail->$testo_mail_text;
$html = $mail->$testo_mail_html;
Ma mi dava questo errore per tutte e due le righe
Notice: Undefined property: <qui mette il testo contenuto nella variabile>
in /web/htdocs/
www.shotwear.net/home/include/conferma.inc.php
 on line 184
Sto provando altre soluzioni, ma danno piů problemi che altro: vi prego
datemi una mano a capire come faccio a passargli questo testo perché sto per
impazzire!! TIA,
Ale

 Ale
http://it.php.net/manual/en/language.oop.php
http://it.php.net/manual/en/language.oop5.php
-- 
www.iuz-lab.info


Non ho letto un granchč bene ma di certo la sintassi delle due righe 
sopra non č corretta per quanto stai tentando; la sintassi corretta č:
$text = $mail->testo_mail_text;
$html = $mail->testo_mail_html;
(Rimosso l'ultimo $ di ogni riga)

 (Rimosso l'ultimo $ di ogni riga)
non credo ci sia un metodo con quel nome all'interno di quella classe..
dovrebbe o leggere il codice della classe o semplicemente leggere la guida
correlata se presente..
-- 
www.iuz-lab.info

In effetti cosě non funzionava, ma alla fine, guardando gli esempi sul sito
del php mi č venuta in mente la soluzione piů semplice, ed incredibilmente
(per la mia ignoranza) funziona!
$text = $testo_mail_text;
$html = $testo_mail_html;
Quello che non avevo capito (poi correggetemi se ancora sto sbagliando) č
che se io scrivo
$html = $mail->qualchecosa
dove $mail č il nome della mia classe, "qualchecosa" dovrebbe essere il nome
di una funzione contenuta nella classe, giusto? Nella mia ignoranza invece,
credevo che il simbolo -> fosse una sorta di operatore di assegnazione! :(
Grazie per i link,
Ale

 Ale
si è giusto..
ma è giusto anche dire che è di assegnazione..
$class->function(); // chiama la funzione function nella classe $class
echo $class->test; // stampa la variabile test conetnuta nella classe $class
$class->test = 'test'; // assegna il valore 'test' alla variabile test nella
classe $class
-- 
www.iuz-lab.info

 di una funzione contenuta nella classe, giusto?
Sbagliato. Così stai assegnando alla variabile $html il valore della 
proprietà qualchecosa dell'oggetto $mail. Le funzioni (metodi 
all'interno di una classe) necessitano sempre delle parentesi tonde:
$html = $mail->qualchemetodo();

 classe $class
Ok, ora finalmente mi č piů chiaro, grazie!