Ankündigung

Einklappen
Keine Ankündigung bisher.

Formular in Mail und Datenbank

Einklappen

Neue Werbung 2019

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

  • R2306
    hat ein Thema erstellt Formular in Mail und Datenbank.

    Formular in Mail und Datenbank

    alle da ihr mir ja schon so einige male geholfen habt hier nun mal wieder eine frage an euch !
    ich hab ein nachrichtensystem für meine seite geschrieben funtioniert auch alles perfekt nur würde ich gern noch hinzufügen das er gleichzeitig eine email an den empfänger schickt !


    Mein nachrichten system funktioniert so

    Alle angemeldetet user können nur dem admin schreiben aber der admin kann allen schreiben ! das nur mal so am rande!

    so hier meine datenbanken die ich verwende

    pns: messageid, uid_von, uid_an, datum, betreff, nachricht, gelesen

    in uid_an: schreibt er den username an den die nachricht geht
    in uid_von schreibt er den usernamen von dem die nachricht kommt


    user:login: UserID, username, passwort, admin, timestamp, online, email

    und so funktionierts :
    Ich arbeite mit dem user login also mit dem namen der, der eingeloggt ist kann nur demjenigen schreiben der im user_login den admin 1 hat und admin 1 kann allen schreiben

    hier der teil vom nachicht senden !

    PHP-Code:
    <?php
    $nachricht  
    $_POST["nachricht"]; 
    $uid_an     $_POST["uid_an"];
    $betreff     $_POST["betreff"];



                
          
    $dateTimedate("Y-m-d H:i:s");  
          
    $insertData mysql_query("INSERT INTO pns (uid_von, uid_an, nachricht, datum, betreff ) VALUE ('{$_SESSION['username']}','{$uid_an}', '{$nachricht}', '{$dateTime}', '{$betreff}')");
    so nun hab ich mir gedacht ich häng ein mail () darunter nur wie realisiere ich das der empfänger nur die mail bekomm die der empfänger im user_login hinterlegt hat !

    hab mal so versucht

    PHP-Code:
    <?php
    $nachricht  
    $_POST["nachricht"]; 
    $uid_an     $_POST["uid_an"];
    $betreff     $_POST["betreff"];



                
          
    $dateTimedate("Y-m-d H:i:s");  
          
    $insertData mysql_query("INSERT INTO pns (uid_von, uid_an, nachricht, datum, betreff ) VALUE ('{$_SESSION['username']}','{$uid_an}', '{$nachricht}', '{$dateTime}', '{$betreff}')");

        
    ?>

    <?php
    $query 
    = @mysql_query("SELECT email FROM user_login WHERE *******");
    while(
    $row mysql_fetch_object($query))
    {
    $mail_empfaenger"$row->email";
    $betreff_1="Sie haben Post";
    $nachricht_1 "Deine neue Nachricht: $nachricht";
    $header  "Logge dich ein um auf diese nachricht zu Antworten";
    mail($mail_empfaenger$betreff_1$nachricht_1$header );
    }
    ?>
    und hier noch das formular

    PHP-Code:
    <form name="sendmesege" action="nachricht_2.php"  method="post">
      <div class="betreff">
          <p>Betreff:<br>
            <label for="betreff"></label>
           &nbsp;&nbsp;&nbsp; <input name="betreff" type="text" id="betreff" value="."><br>
            Nachricht<br>
            <div class="textbox_pn">
      <textarea required name="nachricht" style="width:850px; height:150px;"></textarea><br></div>
            an:<?php
     
        $liste 
    ='';
    $ergbenabf mysql_query("SELECT username, admin, name,email FROM user_login, profil WHERE admin = 1 OR profil.name = '{$_SESSION['username']}'= user_login.admin = 0") or die(mysql_error());
        while (
    $res1 mysql_fetch_array($ergbenabf))
        {
            
    $liste.='<option value="'.$res1['username'].'">'.$res1['username'].'</option>';
        }
     
       echo 
    '<select name="uid_an">'.$liste.'</select>';
    ?>
            <input type="submit" value=" Nachricht Senden" name="send" />
          </p>
        
      </div>
    </form>
    und genau da oben hinter dem WHERE bleib ich hängen und kom nicht weiter
    danke schon mal für euere hilfe
    (bitte bedenken das ist mein erstes selbst gebasteltes nchrichtensystem )
    lg

  • R2306
    antwortet
    danke für die tips und hinweise ! wie gesagt wenn es mal funktioniert wir es ja an den aktuellen stand angepasst ( so ist der plan ) ich will halt ers mal das die funktionen hinhauen bzw das die mail nur an zu dem user kommen die auch die mail erhalten

    Einen Kommentar schreiben:


  • hausl
    antwortet
    denoch hab ich jetzt keine lust alles noch einmal neu zu schreiben
    Dir ist schon bewußt das deine Applikation bald nicht mehr funktionieren wird, weil mysql_ "aus PHP" rausfliegt? Da geht es nicht um "keine Lust".

    Weiters noch:
    PHP-Code:
    $query = @mysql_query("SELECT email FROM user_login WHERE *******"); 
    Bitte mach die @ weg, Fehler behandelt man und unterdrückt man nicht.

    Und zu mail():
    Verwender eine Mailerklasse. mail() "roh" zu benutzen fordert eine genaue Einhaltung der RFC, die du hier nicht machst. Daher werden ev. viele deiner Mails nicht versendet oder ankommen. http://php-de.github.io/jumpto/mail-class/

    Zu deinem Problem: Filtere halt auf den User den du brauchst und les das E-Mail-Adressfeld aus. Wo hakts genau?

    Einen Kommentar schreiben:


  • VPh
    antwortet
    SELECT email FROM user_login WHERE user_login.UserID = $uid_an
    ?

    Einen Kommentar schreiben:


  • R2306
    antwortet
    mit
    PHP-Code:
    WHERE uid_an username 
    schickt er die mail an alle emailadressen die in user_login hinterlegt sind also an alle user aber er soll ja nur an dem uid_an gehen an dem die mail geht

    Einen Kommentar schreiben:


  • R2306
    antwortet
    Danke für deine Hinweise werde dies in zukunft berücksichtigen!
    denoch hab ich jetzt keine lust alles noch einmal neu zu schreiben

    Einen Kommentar schreiben:


  • rkr
    antwortet
    Hinweis:

    Die älteste der drei mysql-Erweiterungen ist veraltet (mysql_*-Funktionen, nicht die MySQL-Datenbank) und wird in den kommenden Versionen aus PHP entfernt. Aktuell wirft sie schon E_DEPRECATED-Fehler bei einer Verbindung zur Datenbank. Des Weiteren stehen dir sehr viele tolle Features von mysql mit diesen Funktionen nicht zur Verfügung! Weiterführende Links:
    Choosing an API
    Warum man mysql* generell nicht (mehr) nutzen sollte.
    Wie man von mysql* auf PDO umsteigt
    Wissenswertes zum Thema SQL-Injection

    Es ist nicht mehr zeitgemäß, Anwendungslogik und Ausgabelogik zu kombinieren. Dadurch leidet die Wartbarkeit beider Komponenten. In der Regel folgen in PHP geschriebene Applikationen daher dem EVA-Muster, welches einen leicht nachvollziehbaren Datenfluss ermöglicht, besser wartbare Applikationen erzeugt und leichter von anderen Entwicklern verstanden wird. In der PHP-Welt hat sich hierauf aufbauend das (häufig falsch interpretierte) MVC-Muster [1] etabliert (siehe auch DCI oder ADR). Ganz einfach gesagt handelt es sich bei dem EVA-Muster um eine Aufteilung der Aktionen "Auswertung der Eingabeparameter", "Verarbeitung der damit verknüpften Anwendungslogik" und "Erzeugung und Übermittlung der Ausgabe". Oder vereinfacht: Erst Daten sammeln, dann daraus die Darstellung erzeugen und ausgeben. Die Verwendung einer Templateengine (mit Layout-Support) ist dafür Empfehlenswert - jedoch aber keine Voraussetzung.

    Einen Kommentar schreiben:

Lädt...
X