[PHP] Problem z pętlą while

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
max_mcee
Posty: 13
Rejestracja: czw sty 05, 2006 9:28 pm
Kontakt:

[PHP] Problem z pętlą while

Post autor: max_mcee »

Robiłem sobie newsletter więc mam taki kod:

[php]
<?php
if($_POST[wdo]!=send)
{

?>
<div align="center">
<form action="" method="POST">
<table border="0" cellspacing="1" cellpadding="1" style="font-size:12px;">
<tr>
<td valign="middle">Temat: </td>
<td valign="middle"><input type="text" name="subject" value="" style="width:330px; height:21px; font-size:12px;"></td>
</tr>

<tr>
<td valign="middle">Tresc: </td>
<td valign="middle"><textarea name="tresc" style="width:330px; height:150px; font-size:12px;"></textarea></td>
</tr>

<tr>
<td valign="middle"></td>
<td valign="middle"><input type="submit" value="rozeslij"></td>
</tr>
<input type="HIDDEN" name="wdo" value="send">
</table>
</form>
</div>

<?
}
include('config.php');

$query = "SELECT * FROM tabela WHERE status='1'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result))
{

$con1 = stripslashes($_POST[tresc]);
$sub1 = stripslashes($_POST[subject]);

mail("$row[email]", "$sub1", "$con1",
"From: [email protected]
MIME-Version: 1.0\nContent-Type: text/plain; charset=iso-8859-2\nReply-To: [email protected]\n");


}
?>[/php]

I teraz przy wysyłaniu newsletter-a wysyłam mi zawsze 2 maile. Jedne pusty, a drugi z właściwymi danymi.

Wie ktoś co jest przyczyną i jak to naprawić??

Z góry dzięki.
VeRmin
Nowy
Nowy
Posty: 21
Rejestracja: ndz gru 10, 2006 1:04 pm

Re: [PHP] Problem z pętlą while

Post autor: VeRmin »

Dzieje sie tak prawdopodobnie dlatego, że wysyła Ci emaila przy każdym wyświetleniu strony, Twój warunek IF odpowiada tylko za wyświetlenie formularza, ale nie blokuje wysyłania emaili w przypadku pustych wiadomość. Abo to porawić spróbuj zamienić
[php]
<?
}
include('config.php');
[/php]
na
[php]
<?
} else {
include('config.php');
[/php]
i dodaj jeszcze jedną klamrę zamykającą na końcu kodu.

P.S. do zmiennych $_POST, czy też $row, odwołuj się tak, będzie poprawniej ;):

Kod: Zaznacz cały

$_POST['tresc'];
$row['email'];
Pozdrawiam
max_mcee
Posty: 13
Rejestracja: czw sty 05, 2006 9:28 pm
Kontakt:

Re: [PHP] Problem z pętlą while

Post autor: max_mcee »

Dziękuje bardzo :)

Coraz częściej utwierdzam się w przekonaniu, że programowanie to ciężki kawałek chleba, wystarczy jeden mały błąd i wszystko się sypie.

Pozdrawiam
ODPOWIEDZ