hattrix: Userverwaltung - an email-adresse verschicken

Hallo,

Beispiel:

4 User in der Tabelle "user". Dort wurden Name, Passwort, email usw. angeben!

Nun soll jeder User seine Daten per Mail erhalten. Wie mache ich das am besten?

Mein Code, der nicht funktioniert:

  
<?  
  include "conf/db.php";  
  
  $db = @mysql_connect ($db_host, $db_user, $db_pass) or die ("Datenbankfehler");  
  @mysql_select_db($db_name,$db) or die ("Die Datenbank konnte nicht ausgewählt werden. Bitte versuchen Sie es später nochmal.");  
  
  $strSQL = "SELECT name,email,passwort FROM user";  
  $result = mysql_query($strSQL);  
  
    while($row = mysql_fetch_row($result)) {  
  
    $g = $row[1];  
  
$strEmpfaenger = $g;  
$strFrom       = 'meine Mailadresse';  
$strSubject    = 'Titel';  
$strDelimiter  = ":\t";  
  
if($_POST)  
{  
 $strMailtext = $row[0].' und '.$row[2];  
  
 while(list($strName,$value) = each($_POST))  
 {  
  if(is_array($value))  
  {  
   foreach($value as $value_array)  
   {  
    $strMailtext .= $strName.$strDelimiter.$value_array."\n";  
   }  
  }  
  else  
  {  
   $strMailtext .= $strName.$strDelimiter.$value."\n";  
  }  
 }  
  
 if(get_magic_quotes_gpc())  
 {  
  $strMailtext = stripslashes($strMailtext);  
 }  
  
 mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)  
  or die("Die Mail konnte nicht versendet werden.");  
}  
  
}  
?>  
  

  1. hi,

    4 User in der Tabelle "user". Dort wurden Name, Passwort, email usw. angeben!

    Nun soll jeder User seine Daten per Mail erhalten.

    Auf Anforderung durch den jeweiligen User hin, automatisiert zu einem bestimmten Zeitpunkt/in einem Intervall, ...?

    Mein Code, der nicht funktioniert:

    "Funktioniert nicht" ist eine vollkommen wertlose Aussage.

    Debugge deinen Code, mache Kontrollausgaben, etc.
    Wenn du mit MySQL arbeitest, frage unbedingt mysql_error() ab, nach jeder Operation die du mit der DB machst. Wer das nicht tut und vorher fragt, sollte erschossen werden.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Wie soll ich Kontrollausgaben machen? Am Ende passiert dort ein Fehler und alle bekommen die Daten von allen!

      1. Hi,

        Wie soll ich Kontrollausgaben machen? Am Ende passiert dort ein Fehler und alle bekommen die Daten von allen!

        Zum testen kannst du ja die Zeile, in der die Mail verschickt wird auskommentieren, oder einfach immer deine Mailadresse als Empfaenger angeben.
        Ausserdem solltest du mit echo die Inhalte der einzelnen Variablen mal ausgeben lassen, und ueberpruefen ob sie die von dir gewuenschten Werte beinhalten.
        Wenn das alles nix bringt poste bitte eine Fehlerbeschreibung und schreibe nicht nur "funktioniert nicht".

        mfG,
        steckl

        1. Mit "funktioniert nicht" meinte ich, dass die Mail nicht ankommt, da ich als Test eine WHERE-Klausel nur ein user genutzt habe.

          Aber ok, ich "echo" mal und schaue, wo der Fehler sein könnte!

          1. Die Werte stimmen alle. Problem ist wirklich nur, wie ich die Variable "$strMailtext" füllen lasse. Denn da erhalte ich immer kein Wert. :-(

            1. Stopp, ich habe gerade die If-Abfrage $_POST verneint und es funktioniert. Nun brauch ich nur noch den Empfänger auf $row[1] setzen?

              1. Stopp, ich habe gerade die If-Abfrage $_POST verneint und es funktioniert.

                Gut :-)

                Nun brauch ich nur noch den Empfänger auf $row[1] setzen?

                Ist das eine Frage?
                Wenn du dir sicher bist, dass die Empfaenger stimmen und das Skript einwandfrei funktioniert sollte es keinen Grund geben, der dagegen spricht.

                mfG,
                steckl

                1. Nun brauch ich nur noch den Empfänger auf $row[1] setzen?
                  Ist das eine Frage?
                  Wenn du dir sicher bist, dass die Empfaenger stimmen und das Skript einwandfrei funktioniert sollte es keinen Grund geben, der dagegen spricht.

                  Bin mir unsicher, ob wirklich jeder nur seine Daten bekommt und nicht alle!

                  1. Bin mir unsicher, ob wirklich jeder nur seine Daten bekommt und nicht alle!

                    Dann kommentiere doch die mail()-funktion nochmal aus und lass dir stattdessen nochmal ausgeben, welche Mails verschickt wuerden (mit Empfaenger und Inhalt). So solltest du leicht ueberpruefen koennen, wer was bekommt.

                    mfG,
                    steckl

                    1. Vielen Dank:

                      Habe es damit getestet, also muss ich ja nun nur noch row[1] bei empfänger hinschreiben! Juhu!

                      echo '<hr><br>';
                      echo 'Empfaenger: '.$row[1].'<br><br>';
                      echo $strMailtext.'<br>';

                      1. Hat zwar geklappt, aber alle haben ein html-Text mit "br> usw. erhalten. Wie kann ich das ändern?

                        1. Hat zwar geklappt, aber alle haben ein html-Text mit "br> usw. erhalten. Wie kann ich das ändern?

                          Einfach die HTML-tags nicht in den Mailstring reinschreiben. Zeilenumbrueche erreichst du hier mit \n.