1

申し訳ありませんが、私のスキル レベルには深すぎたようです。データベース接続はインクルードに設定されています。

コードは次のとおりです。

<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 でそれをバイパスしたと思っていましたが、(おそらく)間違っている可能性があります。

(貼り付け時にいくつかの空の行を削除したため、エラー行は対応しません)

4

0 に答える 0