Poniżej przedstawiam kod z którym mam problemy. W bazie danych mam dodane 2 testowe konta e-mail. Wpisuję w formularzu dane, wysyłam i dochodzą tylko na jedną skrzynkę. Dokładnie na ostatnią w bazie.
Tabela w bazie składa się tylko z dwóch pól ID i mail.
Proszę o pomoc !!!
Kod stronki :
[php]<form>
temat:<br>
<input type="text" name="temat"><br>
treść:<br>
<textarea rows="7" name="tresc" cols="40"></textarea><br>
<input type="submit" name="submit" value="wyślij">
</form>
<?
if ($submit) {
global $message, $subject, $urltomail, $HTTP_POST_VARS;
$message = $HTTP_POST_VARS['message'];
mysql_connect ("baza_danych.com.pl", "bis", "blob") or
die ("Nie można poł±czyć się z MySQL");
mysql_select_db ("baza_danych") or
die ("Nie można poł±czyć się z baz± cwphp4");
$query = "SELECT * FROM adresy";
$result = mysql_query($query);
$headers = "From: derec@baza_danych.com.pl";
while($subscriber = mysql_fetch_array($result)) {
$email = $subscriber['mail'];
}
mail("$email", "$temat", "$tresc \r\n $urltomail", "$headers");
print("Wiadomość została wysłana pomyślnie. ");
}
?>[/php]
[PHP/SQL] Wysyłanie maila na adres z bazy
-
derecyori\
- Posty: 4
- Rejestracja: ndz lis 06, 2005 12:24 am
Re: [PHP/SQL] Wysyłanie maila na adres z bazy
Po pierwsze nie korzystaj z zapisu $HTTP_POST_VARS. Już dawno wyszło z użytku. Obecnie stosuje się zapis $_POST.
A teraz do rzeczy. Wysyła Ci tylko na ostatni adres, bo funkcję mail() wywołujesz tylko raz. Powinieneś umieścić ją w pętli. Wtedy wyśle maila na każdy adres jaki przypiszesz do zmiennej $email.
A teraz do rzeczy. Wysyła Ci tylko na ostatni adres, bo funkcję mail() wywołujesz tylko raz. Powinieneś umieścić ją w pętli. Wtedy wyśle maila na każdy adres jaki przypiszesz do zmiennej $email.
-
derecyori\
- Posty: 4
- Rejestracja: ndz lis 06, 2005 12:24 am
A tak
A jeśli mógłbym poprosić to tak bardziej łopatologiczniej.
Kombinowałem z pętlą while ale efektów tego nawet nie będę opisywał bo chyba nikt jeszcze takich nie widział
Dziękuję za odpowiedź.
Kombinowałem z pętlą while ale efektów tego nawet nie będę opisywał bo chyba nikt jeszcze takich nie widział
Dziękuję za odpowiedź.
-
derecyori\
- Posty: 4
- Rejestracja: ndz lis 06, 2005 12:24 am
Może zapytam inaczej
Czy chodziło o taką zmianę:
I drugie szybkie czy to ma szanse bytu :
[php]<?php
for ($index=0; $index < count ($email); $index++)
{
mail("$email", "$temat", "$tresc \r\n $urltomail", "$headers");
}
print("Wiadomość została wysłana pomyślnie. ");
?>[/php]
Dziękuję za wszelką pomoc.
Kod: Zaznacz cały
$message = $_POST['message'];[php]<?php
for ($index=0; $index < count ($email); $index++)
{
mail("$email", "$temat", "$tresc \r\n $urltomail", "$headers");
}
print("Wiadomość została wysłana pomyślnie. ");
?>[/php]
Dziękuję za wszelką pomoc.
Re: [PHP/SQL] Wysyłanie maila na adres z bazy
[php]<?php
while($subscriber = mysql_fetch_array($result)) {
$email = $subscriber['mail'];
mail("$email", "$temat", "$tresc \r\n $urltomail", "$headers");
}
?>[/php]
Po prostu za każdym razem jak odczytujesz pojedyńczy email z bazy wysyłaj od razu na ten adres maila. Ewentualnie możesz zrobic to na tablicy:
[php]<?php
while($subscriber = mysql_fetch_array($result)) {
$email[] = $subscriber["mail"];
}
foreach ($email as $to) {
mail($to, "$temat", "$tresc \r\n $urltomail", "$headers");
}
?>[/php]
while($subscriber = mysql_fetch_array($result)) {
$email = $subscriber['mail'];
mail("$email", "$temat", "$tresc \r\n $urltomail", "$headers");
}
?>[/php]
Po prostu za każdym razem jak odczytujesz pojedyńczy email z bazy wysyłaj od razu na ten adres maila. Ewentualnie możesz zrobic to na tablicy:
[php]<?php
while($subscriber = mysql_fetch_array($result)) {
$email[] = $subscriber["mail"];
}
foreach ($email as $to) {
mail($to, "$temat", "$tresc \r\n $urltomail", "$headers");
}
?>[/php]