email Benachrichtigung..

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

  • tobias_k
    antwortet
    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.

    Einen Kommentar schreiben:


  • tobias_k
    antwortet
    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

    Einen Kommentar schreiben:


  • mrhappiness
    antwortet
    wärst du so gütig das geechote hier zu posten?

    Einen Kommentar schreiben:


  • tobias_k
    antwortet
    Der echot mir den query.. die Fehlermeldung die kommt steht oben zwischen den Fragezeichen.

    Einen Kommentar schreiben:


  • mrhappiness
    antwortet
    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?

    Einen Kommentar schreiben:


  • tobias_k
    antwortet
    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.

    Einen Kommentar schreiben:


  • mrhappiness
    antwortet
    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?

    Einen Kommentar schreiben:


  • tobias_k
    hat ein Thema erstellt email Benachrichtigung...

    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...
Lädt...
X