![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 19.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
W temacie PHP dopiero raczkuje, mam następujący problem. Robię formularz, który będzie działał jako jeden z artykułów w joomli. Chodzi o formularz w którym odwiedzający wypełni sobie kilka pól + wybierze z checkboxa adresata maila, warunek jest taki, że może wybrać np 2 checkboxy, i wtedy mail musi dotrzeć do dwóch odbiorców. Sam mechanizm wysyłania działa, ponieważ udało mi się wykonać wybór adresata za pomocą rozwijanej listy, ale tam niestety nie wybierzemy dowolnej ilości odbiorców. Nie mam pomysłu jak wykonać przekazanie do funkcji @mail ma wykonać się kilka razy dla kilku różnych adresatów. Zapewne jakieś wywołanie w pętli, czy coś w tym rodzaju. Proszę o pomoc, dzięki.
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 17 Dołączył: 2.04.2008 Skąd: z Zabrza Ostrzeżenie: (0%) ![]() ![]() |
W przypadku checkboxów zrobiłbym mniej więcej tak:
1) Checkboxy w postaci: name="mails[0]" value="adres@email.pl" 2) W PHP
3)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 19.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Niestety ale to rozwiązanie nie wysyła maili.
W którym miejscu popełniam błąd?
A może inne rozwiązanie, które działa. Jako parametr "do" wpisać:
Tylko jak w tym przypadku przekazać w miejsce aidan@example.com jakieś value z danego checkboxa. I czy jeśli parametr będzie pusty tzn, nie zaznaczymy checkboxa to czy dla pozostałych mail się wyśle? Ten post edytował cybul7 19.01.2010, 20:28:47 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 67 Pomógł: 8 Dołączył: 19.05.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 19.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nadal nie działa.
W ogóle po zmianie, jak i przed po kliknięciu wyślij otwiera się nowa strona (tak jak powinna), ale bez komunikatu "Wiadomość została wysłana poprawnie! Dziękujemy.". |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 67 Pomógł: 8 Dołączył: 19.05.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Zobacz co masz w $mails - możliwe, że nic i powinieneś się odwoływać do tej zmiennej jako $_POST['mails']
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 11 Dołączył: 11.10.2004 Skąd: 3c Ostrzeżenie: (0%) ![]() ![]() |
Strasznie "brudny" i nieczytelny masz ten kod
W ogole w zlym miejscu zapodales $mails = $_POST['mails']; - to wysylasz postem wiec powinienes to zdeklarowac tam gdzie pola zalozyles ze nie sa puste.... Troche po swojemu poukladalem Ci, u mnie teraz dziala...
ps. sorki za kodowanie Ten post edytował Volume 19.01.2010, 20:57:49 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 19.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki właśnie miałem się zapytać czy to jest we właściwym miejscu.
Kod działa poprawnie, tzn wyświetlają się komunikaty o prawidłowym wysłaniu itd. Niestety na skrzynkę nic nie otrzymuje. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 11 Dołączył: 11.10.2004 Skąd: 3c Ostrzeżenie: (0%) ![]() ![]() |
zobacz czy nie popelniles bledu w mailach, oczywiscie masz dostepna funkcje mail()? U mnie kod dziala - wyslal mi maile.. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 19.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Niestety nie działa :/.
Maile są dobrze wpisane. Tak mail() działa, ponieważ wysyłanie na maila wpisanego na sztywno zrobiłem i działa. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 11 Dołączył: 11.10.2004 Skąd: 3c Ostrzeżenie: (0%) ![]() ![]() |
A oczywiscie zaznaczasz checkboxy przed wyslaniem?
Hmm dziwne powinno dzialac, u mnie jak mowilem dziala, moze masz troche inaczej skonfigurowany serwer i cos mu nie pasi z tego kodu... Mozesz jezcze o ile tego nie zrobiles przekopiowac moj kod i jeszcze raz sprawdzic. Jak nic nie pomoze daj znac moze ktos wpadnie co moze byc nie tak.... Ten post edytował Volume 19.01.2010, 21:20:50 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 19.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tak zaznaczam.
Jak zaznaczę 2 check boxy to na końcu wyświetlają się dwa komunikaty, jak 1 to jeden komunikat, więc rozpoznaje ile razy ma zrobić pętlę foreach, ale niestety nie wysyła. Spróbuje wpisać teraz na sztywno jeden adres i sprawdzę czy dostane 2 maile. EDIT: W całym kodzie nadesłanym przez Ciebie zmieniłem tylko w @mail na sztywno adres. Następnie zaznaczyłem 2 checkboxy i otrzymałem dwa maile. Wychodzi na to, że po prostu wartości value nie są przekazywane do $mail. Jak to naprawić?
Może coś nie tak jest z "" i '', które używasz dla echo w tym miejscu:
============================ EDIT2: Już wiem prawdopodobnie gdzie jest błąd. W funkcji mail(), parametr z adresem musi być pomiędzy pojedynczymi cudzysłowami np. 'adres@mail.pl', jeśli jest bez '' lub pomiędzy "" to maila nie wyśle. Przerobiłem troszkę kod w sposób następujący:
Niestety w ten sposób do $to i $to . dostarczane są maile bez pojedynczego cudzysłowu. Jeśli zrobię tak:
To maile jako zmienne nie są wstawiane. Jak zrobić, aby w końcowym rezultacie $to miało postać $to = 'adres1@wp.pl' a nie $to = adres1@wp.pl ? Ten post edytował cybul7 19.01.2010, 22:41:43 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 283 Pomógł: 11 Dołączył: 11.10.2004 Skąd: 3c Ostrzeżenie: (0%) ![]() ![]() |
A mozesz podac na jakim hostingu to testujesz?
Ten post edytował Volume 20.01.2010, 19:16:12 |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 19.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Na swoim prywatnym.
Ale już sobie poradziłem. Błąd był taki, że przeglądarka wycinała adres podczas przesyłania i docelowo do wysyłki trafiał komunikat "Musisz włączyć obsługę java script, ze względu na bezpieczeństwo i wycinanie adresów przez roboty itd". Rozwiązanie polegało na stworzeniu tablicy z adresami. Następnie w checkbox ustawienie value na 0 , 1, 2 itd. Oraz w parametrze $do w funkcji mail(), wywoływanie tablicy: $adresy[$i], gdzie i jest wartością value z checkboxow. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 17:52 |