1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

PHP Direktlink zum Beitrag via eMail

Dieses Thema im Forum "PHP & Co." wurde erstellt von Tyrra, 06.08.09.

  1. Tyrra

    Tyrra Holländischer Prinz

    Dabei seit:
    17.12.07
    Beiträge:
    1.869
    Hallo, ich habe folgendes Problem:
    Beim ändern von einem Beitrag wird eine Email generiert welche einen Direktlink zum Beitrag enthält. der Direktlink funktioniert super wenn ein Beitrag geändert wurde da dann die Variable $Auswahl bekannt ist da der Beitrag bereits in der Datenbank ist.

    Jetzt mein Problem - Wie mache ich das wenn ein NEUER Beitrag erstellt wird (da ist noch nichts bekannt welche ID er hat da er ja noch nicht in der Datenbank erfasst ist)?

    PHP -------------------------------
    //automatisch Mailversand wenn eine Änderung oder ein neuer Beitrag erstellt wurde an alle User in DB
    mysql_select_db("marketing");
    $sql = "SELECT * FROM users";
    $result = mysql_db_query($db, $sql);

    $nachricht = $kommentare;
    $nachricht = wordwrap($nachricht, 70);
    $nachricht .= "\n\n\n\nDirektlink zum Beitrag: http://marketing.de/viewdata.php?Auswahl=$Auswahl \n\nDiese Benachrichtigungsmail wurde automatisch versand - Bitte nicht darauf antworten!";

    $row=0;
    while ($usermail=mysql_result($result, $row, "usermail"))
    {
    mail($usermail, "Kommentar von $userkennung zum Beitrag: $betreff", $nachricht, "From:<Marketing-Aufgabendefinition@marketing.de>");
    $row++;
    }

    PHP --------------------------------

    Hoffe jemand hat eine Idee! Schon mal vielen Dank!
     
  2. .holger

    .holger Geflammter Kardinal

    Dabei seit:
    13.09.04
    Beiträge:
    9.117
  3. Tyrra

    Tyrra Holländischer Prinz

    Dabei seit:
    17.12.07
    Beiträge:
    1.869
  4. .holger

    .holger Geflammter Kardinal

    Dabei seit:
    13.09.04
    Beiträge:
    9.117
    in deinem Code oben ist kein Javascript… und welche ID ein neuer Beitrag hat, musst Du erst Serverseitig (PHP) abfragen, da hat der Client (JavaScript) keine Ahnung von.
     
  5. Tyrra

    Tyrra Holländischer Prinz

    Dabei seit:
    17.12.07
    Beiträge:
    1.869
    $Auswahl ist die Übergabe-Variable eigentlich für den bereich des Editierens - Im Bereich "Neuen Beitrag erstellen" gibt es diese nicht.

    Aber der Mail-Link muss allerdings zum Editierbereich leiten weil der Beitrag dort auch später immer geöffnet wird. Dort jeweils mit $Auswahl=(ID).

    Hatte schon versuch das so zu lösen:

    $Auswahl = $ma_id;

    Ging aber nicht :(


    Hier mal die Inserts in die DB:

    session_start();
    include ("db_connect.php");
    $_SESSION['userkennung'] = $userkennung;

    if ($abgesandt)
    {
    $sql = "INSERT INTO data VALUES ";
    $sql .= "('$ma_id',";
    $sql .= " '$betreff',";
    $sql .= " '$faellig_am',";
    $sql .= " '$prioritaet',";
    $sql .= " '$status',";
    $sql .= " '$zustaendig_1',";
    $sql .= " '$mitbeteiligt_1',";
    $sql .= " '$mitbeteiligt_2',";
    $sql .= " '$mitbeteiligt_3',";
    $sql .= " '$mitbeteiligt_4',";
    $sql .= " '$mitbeteiligt_5',";
    $sql .= " '$kategorie',";
    $sql .= " '$aufgabendefinition',";
    $sql .= " '$upload',";
    $sql .= " '$ersteller')";

    $result = mysql_db_query($db, $sql);
     
  6. duderino

    duderino Goldparmäne

    Dabei seit:
    26.01.06
    Beiträge:
    556
    Die neue ID bekommst du mit

    In der Variable $new_id hast du jetzt die zuletzt eingefügte ID. Und damit kannst du dann auch einen Link für die Email generieren.

    Gruß
     
    Tyrra gefällt das.
  7. Tyrra

    Tyrra Holländischer Prinz

    Dabei seit:
    17.12.07
    Beiträge:
    1.869
    Danke! funzt jetzt Prima!
     
  8. .holger

    .holger Geflammter Kardinal

    Dabei seit:
    13.09.04
    Beiträge:
    9.117
    as I said…
     
  9. DubiDuh

    DubiDuh Zwiebelapfel

    Dabei seit:
    20.05.08
    Beiträge:
    1.288


    Ist eine doofe Idee.. Was brauchst du aus der Tabelle users? Namen und eMail, also selectiere auch nur diese. Das macht deine Anwendung 1. performanter und 2. sicherer!

    Code:
    
         if ($abgesandt)
         {    
             $sql = "INSERT INTO data VALUES ";
            $sql .= "('$ma_id',";
            $sql .= " '$betreff',";
            $sql .= " '$faellig_am',";
            $sql .= " '$prioritaet',";
            $sql .= " '$status',";
            $sql .= " '$zustaendig_1',";
            $sql .= " '$mitbeteiligt_1',";
            $sql .= " '$mitbeteiligt_2',";
            $sql .= " '$mitbeteiligt_3',";
            $sql .= " '$mitbeteiligt_4',";
            $sql .= " '$mitbeteiligt_5',";        
            $sql .= " '$kategorie',";
            $sql .= " '$aufgabendefinition',";
            $sql .= " '$upload',";
            $sql .= " '$ersteller')";        
            
            $result = mysql_db_query($db, $sql);
    


    Ist $abgesand eine POST Variable? Dann muss es auch $_POST['abgesand'] heißen! Sonst hast du eine schwere Sicherheitslücke!

    und was soll das sein:
    Code:
    [COLOR=Black]$sql .= " '$zustaendig_1',";
            $sql .= " '$mitbeteiligt_1',";
            $sql .= " '$mitbeteiligt_2',";
            $sql .= " '$mitbeteiligt_3',";
            $sql .= " '$mitbeteiligt_4',";
            $sql .= " '$mitbeteiligt_5',";        
    [/COLOR]


    Schoneinmal etwas von Normalisierung gehört? Such auch mal danach, es bringt ne Menge!


     
  10. Tyrra

    Tyrra Holländischer Prinz

    Dabei seit:
    17.12.07
    Beiträge:
    1.869
    Ist ein INSERT
    hier werden alle daten in die DB geschrieben - hat nicht wirklich was mit dem mailversand direkt zu tun.

    EDIT: Problem ist gelöst worden - An dieser Stelle nochmal vielen Dank an alle!
     

Diese Seite empfehlen