![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 48 Dołączył: 23.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Mam klase wysyłającą maila
Dodałem funkcje z nagłówkami nag(); Uruchamiam tak:
wszystko działało dobrze tylko jak dodałem te nagłówki to otrzymuje taki błąd Kod Catchable fatal error: Object of class Emailer could not be converted to string in /home/s/public_html/s-s.eu/mail.class.php on line 28 w lini 28 znajduje się
-------------------- |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 41 Dołączył: 6.04.2009 Skąd: Gdańsk/okolice Ostrzeżenie: (0%) ![]() ![]() |
spójrz dobrze co tak na prawde robisz
![]() nadpisujesz stringa podawanego do konstruktora... |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 4 069 Pomógł: 497 Dołączył: 11.05.2007 Skąd: Warszawa ![]() |
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 48 Dołączył: 23.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
nie rozumiem za bardzo, mam dodać this w funkcji nag?
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 113 Pomógł: 19 Dołączył: 2.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
No nie, przy takiej konstrukcji nie, ale mozesz to zrobić bez parametru używając poprostu daną z konstruktora $this->sender.
No i w sendMail powinno być $this->nag(), a w metodzie jakis return. Ogolnie troche namieszales ;P Ten post edytował kbsucha 2.07.2009, 12:07:07 -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 231 Pomógł: 22 Dołączył: 6.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Kod <?php class Emailer { private $sender; private $recipients; private $subject; private $body; function __construct($sender) { $this->sender = $sender; $this->recipients = array(); } public function addRecipients($recipient) { array_push($this->recipients, $recipient); } public function setSubject($subject) { $this->subject = $subject; } public function setBody($body) { $this->body = $body; } public function nag($email) { $header = "From: <$email>\n"; $header .= "MIME-Version: 1.0\n"; $header .= "Content-type: text/html; charset=utf-8\n"; $header .= "Return-Path: <$email>"; return $header; } public function sendEmail() { foreach ($this->recipients as $recipient) { $result = mail($recipient,$this->subject,$this->body,$this->nag()); if($result) { echo '<div id="good">'; echo 'Wiadomość została wysłana'; echo '</div>'; } } } } ?> Takie coś |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 41 Dołączył: 6.04.2009 Skąd: Gdańsk/okolice Ostrzeżenie: (0%) ![]() ![]() |
koleżanki i kolegi, wszystko ok co piszecie powyżej, ale ni jak to się ma do errora.
@autor - masz stringa w zmiennej $email, potem do tej zmiennej przypisujesz obiekt, a na koniec używasz jej jako argumentu funkcji, która potrzebuje stringa. I stąd ten error. I poczytaj co jeszcze Ci sugerują powyżej, dobrze prawią ![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 231 Pomógł: 22 Dołączył: 6.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
LOOOOL
Kod <?php [color="#ff0000"]$email [/color]= new Emailer($email); //adres od $email->addRecipients("agencik@gmail.com"); // adres do $email->setSubject($temat); $email->setBody($wiadomosc); [color="#ff0000"]$email->nag($email[/color][color="#ff0000"]);[/color] $email->sendEmail(); ?> $email->nag($email); <= nie może być czegoś takiego jak juz kolega powyżej zauważył zmień $email na $stringMail cokolwiek a dlatego to musisz zmienić ponieważ $email wyżej zadeklarowałeś jako Emailer a emaileraa nie da się wyświetlić jak stringa no chyba ze byśmy przeciązyli operatory ale w php nie da się ich przeciążyć. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 48 Dołączył: 23.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
@fander twoja poprawka nic nie dała
-------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 231 Pomógł: 22 Dołączył: 6.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Kod <?php $email = new Emailer($sender); //adres od $email->addRecipients("agencik@gmail.com"); // adres do $email->setSubject($temat); $email->setBody($wiadomosc); $email->nag($mail) $email->sendEmail(); ?> Sprawdź teraz. Ten kod który wcześniej podałem nie był poprawiony!!! poniżej dałem ci wskazówki co i jak poprawić wystarczyło przeczytać uważnie moje sugestie. Ten post edytował fander 3.07.2009, 08:30:57 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
LOOOOL ... zadeklarowałeś jako Emailer a emaileraa nie da się wyświetlić jak stringa no chyba ze byśmy przeciązyli operatory ale w php nie da się ich przeciążyć. LOOOOL a o metodzie __toString kolega nie słyszał? Operatorów nie da się przeciążyć, to prawda, ale można utworzyć metodę zwracającą obiekt w postaci stringu. @Lejto: Wydaje mi się, że powinno wystarczyć dodać metodę __toString (co nie rozwiąże problemu z generowaniem nagłówków) i jako tako powinno działać:
Jednak lepiej by było jakbyś rozwiązał tą sprawę ciut inaczej. Sprawdź ten kod. Powinien działać ale nie sprawdzałem, pisałem na czuja.
Ten post edytował phpion 3.07.2009, 09:05:03 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 48 Dołączył: 23.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
nie działa ;/ taki sam błąd jak wtedy
-------------------- |
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 231 Pomógł: 22 Dołączył: 6.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
coś ktoś ściemnia, wystarczy zajrzeć w kod
![]() ![]() Kod $email = 'nadawca@host.pl'; // od kogo jest mail
$emailer = new Emailer($email); //adres od $emailer->addRecipients("agencik@gmail.com"); // adres do $emailer->setSubject("Temat wiadomosci"); $emailer->setBody("<b>Wiadomość</b>"); // dodanie naglowkow $emailer->addHeader('From', $email); $emailer->addHeader('Return-Path', $email); $emailer->sendEmail(); ?> Ten post edytował fander 3.07.2009, 11:18:23 |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 48 Dołączył: 23.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
nie, dostałem taki sam błąd jak wcześniej, teraz sprawdziłem jeszcze raz i jest ok, dzięki, może wtedy jak sprawdzałem to plik do końca się nie przesłał bo szybko to robiłem...
Ten post edytował Lejto 3.07.2009, 11:31:48 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 01:55 |