![]() ![]() |
Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 24.05.2006 Ostrzeżenie: (0%)
|
Witam, stworzyłem sobie funkcję z gotowym wywołaniem klasy PHPMailer. O to kod
Problem polega na tym, że przy drugim użyciu funkcji phpmailer, kod po "$mail = new phpmailer();" nie wykonuje się..funkcja nic nie zwraca, ani nie wysyła e-mail'a...Przy pierwszym wywołaniu funkcji wszystko wykonuje się poprawnie. Spróbowałem dodać unset, aby zlikwidować egzemplarz klasy phpmailer, ale to nie pomaga - w końcu powinien po wykonaniu się funkcji samemu się unicestwić. Co Wy na to? Od razu upszedzę, że rozwiązanie typu dodanie kolejnych adresów w istniejącym wywołaniu klasy odpada. Z góry dzięki za pomoc i pozdrawiam |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 150 Pomógł: 3 Dołączył: 30.10.2010 Ostrzeżenie: (0%)
|
daj wynik przy 2 użyciu funkcji
var_dump($mail); Może warto wydzielić obiekt poza funkcję i oprócz danych przekazywać zmienną obiektową. Jeśli np. używamy kilka razy tej funkcji w trakcie jednego wywołania. Może unset($mail) pomoże; |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%)
|
Może nazwij swoją funkcję inaczej niż klasa PHPMailer'a.
Po drugie może lepiej pójdź w stronę OOP. Stworzysz sobie raz obiekt PHPMailer'a, a później będziesz mógł z niego korzystać (zmieniać treść, temat i odbiorców). |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 24.05.2006 Ostrzeżenie: (0%)
|
var_dump($mail); nic nie zwraca ani przed ani po utworzeniu egzemplarza w drugim wywołaniu funkcji. Zmiana nazwy funkcji też nie pomaga.
Wydzielenie obiektu po za funkcje wydaje się być rozwiązaniem zbyt łatwym:D (wole mieć wszystko w jednym, aby mieć z głowy wywoływanie wcześniej obiektu). Chodź z drugiej strony abstrahując od tego, nie uważacie, że to dziwne zachowanie PHP ? Czy klasa PHPMailer ma jakieś zabezpieczenie, tak jakby implementowała singleton? Pozdrawiam i mam nadzieje, że wszyscy już najedzeni^^ |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 22 Dołączył: 14.12.2007 Skąd: Wyszków Ostrzeżenie: (0%)
|
Pierwszy raz plik Ci się zainkluduje. Drugi raz już nie, bo PHP wywala błąd (w Twoim przypadku nie, bo użyłeś prefixu @), że już wcześniej ten plik był dołączony, a funkcja include zwraca false. Po prostu usuń ten fragment kodu. Same dołączanie pliku PHPMailera zrób jednokrotnie przed definicją Twojej funkcji. Edit: Albo zamień include na include_once. Ten post edytował Kofel 25.12.2012, 13:46:19 |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 24.05.2006 Ostrzeżenie: (0%)
|
Kofel dzięki, ale mnie zawstydziłeś(IMG:style_emoticons/default/biggrin.gif) ehh..nie mogę sobie wybaczyć, że coś tak oczywistego przegapiłem. Pozdrawiam
|
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 13:14 |