申し訳ありませんが、私のスキル レベルには深すぎたようです。データベース接続はインクルードに設定されています。
コードは次のとおりです。
<html>
<body>
<?php
include "inc.php";
//print_r ($_POST);
//if "email" is filled out, send email
if (isset($_POST['email']))
{
//send email
While($row=mysql_fetch_array($querymail))
{
$to= $row['email'];
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
$email= 'stats@my email.com';
mail($to, $subject,
$message, "From:" . $email);
echo "email sent to ".$to;
}
}
else
//if "email" is not filled out, display the form
{
$Pnum=implode(',',$_POST['checkemail']);
$querymail=mysql_query("select sp.email_address as email from stats_player sp where sp.player_num IN ($Pnum)");
While($row=mysql_fetch_array($querymail))
{
echo "<table>";
echo "<tr><td>".$row['email']."</tr.</td>";
}
echo "<form method='post' action=''>
Subject: <input name='subject' type='text'><br>
Message:<br>
<textarea name='message' rows='15' cols='40'>
</textarea><br>
<input type='submit'>
</form>";
}
?>
</body>
</html>
許可するprint_r ($_POST);
と、すべての player_nums が期待どおりに表示されます。
電子メールのリストが適切に表示されたページが開き (この表はデータを確認するためだけに表示されなくなります)、フォームが表示されます。
ただし、フォームの [送信] ボタンをクリックすると、エラーが発生します。
Warning: implode() [function.implode]: Invalid arguments passed in /home..../results/admin/emailall.php on line 31
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home..../results/admin/emailall.php on line 33
このフォームをそれ自体に再送信しているので、最初のクエリで持っていたものがクリアされていると思います。私は isset でそれをバイパスしたと思っていましたが、(おそらく)間違っている可能性があります。
(貼り付け時にいくつかの空の行を削除したため、エラー行は対応しません)