email Benachrichtigung..

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • email Benachrichtigung..

    Hallo zusammen,
    ich bastel mir grad ein kleines Forum.
    was ich nicht peile ist die email Benachrichtigung bei Antworten:
    PHP-Code:
    $query "SELECT DISTINCT forumUsers.email FROM forumPosts INNER JOIN forumUsers ON forumUsers.userID = forumPosts.userID WHERE forumPosts.threadID = '$threadID' AND forumPosts.userID <> $userID"
    da passiert nix wo ist da der Denkfehler?
    Die mail-Adresse ist in forumUsers...

  • #2
    PHP-Code:
    echo $query
    ?
    PHP-Code:
    $result=mysql_query($query) or die(mysql_error()); 
    ?

    so kriegt aber jeder, der irgendwann mal in einem thread was geschriebenhat immer ne mail oder?
    warum machst du nicht ne weitere tabelle, in die der schreiber automatisch beim schreiben einer antwort eingetragen wird und aus der er weider entfernt wird, wenn er auf "Thema abbestellen" klickt?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Hallo Happy
      ?
      You have an error in your SQL syntax near 'ON forumUsers.userID = forumPosts.userID WHERE forumPosts.threadID = 2 AND forum' at line 1
      ?
      Original geschrieben von mrhappiness

      so kriegt aber jeder, der irgendwann mal in einem thread was geschriebenhat immer ne mail oder?
      eigentlich nicht... nur die, die an der threadID beteiligt sind und der der gepostet hat bekommt keine.

      Original geschrieben von mrhappiness
      warum machst du nicht ne weitere tabelle, in die der schreiber automatisch beim schreiben einer antwort eingetragen wird und aus der er weider entfernt wird, wenn er auf "Thema abbestellen" klickt?
      bei Thema abbestellen bin ich noch nicht

      ich mach das selbstredend in duck Flash. Da werd ich 'nen Userpanel einbauen, in dem Benachrichtigung abgestellt werden kann.... hmmm... dann kann man halt nur kein Thema Abonnieren ... aber dafür gibt's 'ne Volltextsuche .... naja... mal sehen.

      Kommentar


      • #4
        ich würd dir sagen, mach dir ne wietere tabelle, das erspart dir ziemlich sicher arbeit auf lange sicht

        bis dahin: was macht mein echo $query?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Der echot mir den query.. die Fehlermeldung die kommt steht oben zwischen den Fragezeichen.

          Kommentar


          • #6
            wärst du so gütig das geechote hier zu posten?
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Der Übersichtlichkeit halber poste ich mal das ganze Skript.
              PHP-Code:
              <?
              include('common.php');
              $link = dbConnect();

              $posted = time();

              $webStart = Array ('WWW', 'www');
              $changeWebstart = 'http://www';
              $message = str_replace ($webStart, $changeWebstart, $message);
              $webDouble = Array ('http://http://www');
              $changeWebSingle = 'http://www';$message = str_replace ($webDouble, $changeWebSingle, $message);

              $badwords = Array ("die worte halt..", "......");
              $changeto = '<font color=\"#ff0000\"><b>*zensiert*</b></font>';
              $message = str_replace ($badwords, $changeto, $message);

              $message = ereg_replace("[[:alpha:]]+@[^<>[:space:]]+[[:alnum:]]","<font color=\"#cccccc\"><u><a href=\"mailto:\\0\">\\0</a></u></font>", $message);

              $message = ereg_replace("\[url\]([^\[]+)\[/url\]", "<font color=\"#cccccc\"><u><a href=\"\\1\"target=\"_blank\">\\1</a></u></font>", $message);
              $message = ereg_replace("\[URL\]([^\[]+)\[/URL\]", "<font color=\"#cccccc\"><u><a href=\"\\1\"target=\"_blank\">\\1</a></u></font>", $message);

              $searchFor = Array ('[b]', '[/b]', '[pre]', '[/pre]', '[i]', '[/i]');
              $replaceWith = Array ('<b>', '</b>', '<pre>', '</pre>', '<i>', '</i>');
              $message = str_replace ($searchFor, $replaceWith, $message);
               


              $query = "INSERT INTO forumPosts (postID, threadID, userID, message, posted, emoticon) VALUES('$postID', '$threadID', '$userID', '$message', '$posted', '$emoticon')";
              if(!mysql_query($query)) {
                  fail("mist");
              }    

              $query = "UPDATE forumThreads SET replies = replies + 1, lastPost = $posted WHERE threadID = '$threadID'";
              if(!mysql_query($query)) {
                  fail("mist");
              }

              $query = "UPDATE forumForums SET lastUserID = $userID WHERE forumID = '$forumID'";
              $result = mysql_query($query);

              $query = "UPDATE forumForums SET lastPost = $posted WHERE forumID = '$forumID'";
              $result = mysql_query($query);

              $query = "UPDATE forumUsers SET posts = posts+1 WHERE userID = '$userID'";
              $result = mysql_query($query);

              print "&result=Okay&";
              //diesen teil habe ich nun entnommen und separat getestet
              $query = "SELECT DISTINCT forumUsers.email FROM forumPosts INNER JOIN forumUsers ON forumUsers.userID = forumPosts.userID WHERE forumPosts.threadID = '$threadID' AND forumPosts.userID <> '$userID'";

              $result = mysql_query($query);

              $FromAddress = "flashboard@2ama.com";
              while ($row = mysql_fetch_array($result))
              {
              mail ($row['email'] , "Antwort auf $topic", "$username hat unter dem Thema '$topic' geantwortet.\n\nHier der direkte Link zum Beitrag:\n [url]http://www.url[/url]\n\nSchöne Grüße,\n\n2ama.com\nForum Administration", "FROM: 2ama.com Flash Forum<$FromAddress>");
              }//end test
              mysql_close($link);
              ?>
              also so:
              PHP-Code:
              <?
              include('common.php');

              $link = dbConnect();

              $query = "SELECT DISTINCT forumUsers.email FROM forumPosts INNER JOIN forumUsers ON forumUsers.userID = forumPosts.userID WHERE forumPosts.threadID = '$threadID' AND forumPosts.userID <> '$userID'";
              echo $query;
              $result = mysql_query($query)or die (mysql_error());

              $FromAddress = "flashboard@2ama.com";
              while ($row = mysql_fetch_array($result))
              {
              mail ($row['email'] , "Antwort auf $topic", "$username hat unter dem Thema '$topic' geantwortet.\n\nHier der direkte Link zum Beitrag:\n [url]http://www.url[/url]\n\nSchöne Grüße,\n\n2ama.com\nForum Administration", "FROM: 2ama.com Flash Forum<$FromAddress>");
              }
              mysql_close($link);
              ?>
              Das komplette Resultat der query sieht so aus wenn ich's mit url.php?threadID=2&userID=1 teste

              SELECT DISTINCT forumUsers.email FROM forumPosts INNER JOIN forumUsers ON forumUsers.userID = forumPosts.userID WHERE forumPosts.threadID = 2 AND forumPosts.userID <> 1You have an error in your SQL syntax near 'ON forumUsers.userID = forumPosts.userID WHERE forumPosts.threadID = 2 AND forum' at line 1

              Kommentar


              • #8
                hab's anderweitig hingefummelt:
                in common.php
                PHP-Code:
                function dbQueryFirst($query) {

                    
                $result = @mysql_query($query);

                    if (!
                $result) {
                        print 
                $query "<br>\n";
                        print 
                mysql_error() . "<br>\n";
                        
                fail("mist");
                    }

                    
                $returnArray mysql_fetch_array($resultMYSQL_ASSOC);

                    
                mysql_free_result($result);

                    return 
                $returnArray;
                }

                function 
                mailNotify($userID$threadID$forumID) {
                    
                $username dbQueryFirst("SELECT username FROM forumUsers WHERE userID=$userID");
                    
                $username $username['username'];

                    
                $topic dbQueryFirst("SELECT topic FROM forumThreads WHERE threadID=$threadID");
                    
                $topic $topic['topic'];

                    
                $forumTitle dbQueryFirst("SELECT title FROM forumForums WHERE forumID=$forumID");
                    
                $forumTitle $forumTitle['title'];

                    
                $query "SELECT DISTINCT userID FROM forumPosts WHERE threadID=$threadID AND userID!=$userID AND notify=1";//etz is des mit dem abonnieren auch geregelt 

                    
                $postResult mysql_query($query);

                    if (!
                $postResult) {
                        return;
                    }

                    
                $mailSubject "Antwort auf '$topic'";
                    
                $mailHeaders "From: \"2ama.com Flashboard\" <service@2ama.com>";

                    
                $mailBody "$username hat in '$topic' unter $forumTitle geantwortet.\n\n";
                    
                $mailBody .= "Hier ist der direkte Link: url.../board/go.php?threadID=$threadID\n\n";
                    
                $mailBody .= "Schöne Grüße,\n\nPHP 2ama.com...";

                    while (
                $row mysql_fetch_array($postResult)) {
                        
                $user dbQueryFirst("SELECT username, email FROM forumUsers WHERE userID=" $row['userID']);

                        if (
                $user['email']) {
                            
                $mailTo "\"" $user['username'] . "\" <" $user['email'] . ">";
                            
                $mailTop "Hallo " $user['username'] . ",\n\n";
                            
                mail($mailTo$mailSubject$mailTop $mailBody$mailHeaders);
                        }
                    }

                und in postreply einfach:
                PHP-Code:
                mailNotify($userID$threadID$forumID); 
                Danke für deinen Denkanstoß.
                Schönen Abend.

                Kommentar

                Lädt...
                X