tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
16
ZUGRIFFE
1217
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Hallo Zusammen,

    ich möchte ein Script erstellen, mit dem ich Serien-eMails verschicken kann. Der Aufbau soll so sein, dass man seinen Namen eintragen kann und den Text. Die Anrede sowie das MfG soll automatisch eingefügt werden. Das Problem dabei ist: es soll lokal eine csv Datei ausgewählt werden und die einzelnen Elemente in ein Array gespeichert werden. Außerdem sollen natürlich alle Zeilen automatisch abgearbeitet werden.

    Wie erstelle ich den Button mit der Auswahl der csv-Datei und wie bekomme ich jeweils einen Datensatz in einen Array? Und wie sage ich dem Script, dass es alle Datensätze abarbeiten soll?


    MfG Radhad
     

  2. #2
    Registriert seit
    May 2002
    Ort
    50.59° Nord 11.21° Ost
    Beiträge
    1.837
    Was ist eine Serien e-mail?

    Wie erstelle ich den Button mit der Auswahl der csv-Datei
    Siehe "Dateiupload"

    wie bekomme ich jeweils einen Datensatz in einen Array?
    PHP-Code:
    $var = Array();
    $var[] = "daten";
    $var[] = "noch mehr daten"
    Und wie sage ich dem Script, dass es alle Datensätze abarbeiten soll?
    Eine Schleife?!
    Geändert von _voodoo (23.07.04 um 17:06 Uhr)
     
    »

  3. #3
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Serein-eMail = Serienbreif á la Word, nur gibt es z.b. bei Outlook so ne Funktion nicht. Der Button war ne blöde Frage, geb ich zu. Das Problem beim Array ist, dass die csv-Datei jede Spalte mit einem ";" trennt, undi ch nicht weiß wie man das splittet. Bei der Schleife ist die Frage, wie ich diese dynamisch aufbauen kann. Wäre es möglich zu überprüfen, ob der nächste Datensatz vorhanden ist und wenn nicht, setzte ich z.b. eine boolsche Variable auf False in einer do-while Schleife?


    MfG Radhad
     

  4. #4
    Registriert seit
    May 2002
    Ort
    50.59° Nord 11.21° Ost
    Beiträge
    1.837
    Das Problem beim Array ist, dass die csv-Datei jede Spalte mit einem ";" trennt, undi ch nicht weiß wie man das splittet.
    PHP-Code:
    $foo "Daten1;Daten2;Daten3";
    $bar explode(";"$foo);
    print_r($bar); 
    // muesste ausgeben:
    // Array ( 0 => Daten1, 1 => Daten2, 2 => Daten3 ); 
     
    »

  5. #5
    Avatar von Sven Petruschke
    Sven Petruschke Sven Petruschke ist offline Mitglied Diamant
    Registriert seit
    May 2003
    Ort
    Leipzig
    Beiträge
    2.323
    PHP ist zum Glück schon von Haus aus recht gut bestückt. Die Funktion fgetcsv() gibt eine Zeile einer CSV-Datei als Array zurück.

    Wo ist der Unterschied zu Explode fragt Ihr Euch? Die Funktion liest auch die Daten korrekt aus, die das Trennzeichen als Datenbestandteil beinhalten. Explode würde fälschlicherweise einen Datensatz in 2 aufteilen.

    snuu
    Geändert von Sven Petruschke (23.07.04 um 17:23 Uhr)
     
    Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
    www.sven-petruschke.de

  6. #6
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Ich habe das Script jetzt soweit fertig, allerdings läuft es eine ganze Zeit lang, ohne das etwas passiert. Folgend mein Quellcode:

    PHP-Code:
    <html>
    <head><title></title>
    </head>

    <body>
    <?php
      
    if (empty($_POST["email"])) { ?>
        <form  method="post" action="serienemail.php">
        <table border="0" cellspacing="0" cellpadding="0" align="center">
          <tr>
            <td>
              Name:<td><input type="text" name="name"></td>
            </td>
          </tr>
          <tr>
            <td>
              Nachricht:<td><textarea name="nachricht" cols="40" rows="5"></textarea></td>
            </td>
          </tr>
          <tr>
            <td>
              eMail:<td><input type="text" name="email"></td>
            </td>
          </tr>
          <tr>
            <td>
              CSV-Datei:<td><input type="file" name="csvdatei"></td>
            </td
          </tr>
          <tr>
            <td colspan="2">
              <input type="submit" value="Absenden">
            </td>
          </tr>
        </table>
        </form>
    <?}
    else {
      
    $handle fopen ($_POST["csvdatei"],"r");
      while ( (
    $data fgetcsv ($handle1000";")) !== FALSE ) {

        if(
    $data[0] == "Frau") {
          
    $anrede='Sehr geehrte Frau';
        }
        else {
          
    $anrede='Sehr geehrter Herr';
        }

        
    mail($data[2],
        
    "".$_POST["betreff"]."",
        
    "$anrede $data[1],\n\n".$_POST["nachricht"]."\n\nMit freundlichen Grüßen\n".$_POST["name"]."",
        
    "".$_POST["email"]."");
      }
      
    fclose ($handle);
      echo 
    "Vorgang erfolgreich abgeschlossen!";
    }
    ?>
    Vielleicht seht ihr einen logischen Fehler.


    MfG Radhad
    Geändert von Radhad (26.07.04 um 13:29 Uhr)
     

  7. #7
    Avatar von Sven Petruschke
    Sven Petruschke Sven Petruschke ist offline Mitglied Diamant
    Registriert seit
    May 2003
    Ort
    Leipzig
    Beiträge
    2.323
    Die Datei wird gar nicht erst eingelesen. Verwende mal statt
    PHP-Code:
    $handle fopen ($_POST["csvdatei"],"r"); 
    folgendes:
    PHP-Code:
    $handle fopen ($_FILES['csvdatei']['tmp_name'],"r"); 
    Ausserdem fehlt dem Formular die Angabe des enctype-Parameters, welcher für Dateiuploads erforderlich ist:
    PHP-Code:
    <form  method="post" action="serienemail.php" enctype="multipart/form-data"
    Und eine Warung habe ich noch: Sichere Dein Script ab, so dass niemand ausser Dir es benutzen kann. Sonst ist es möglich Deinen Server zum Spammen zu benutzen. Stichwort: .htaccess

    Um der Frage vorzubeugen, warum Dein Script nach 30 Sekunden abbricht:
    PHP-Code:
    set_time_limit(0); 
    snuu
     
    Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
    www.sven-petruschke.de

  8. #8
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Es bricht ja nich ab und das Script taucht auch nirgends auf.
    Wofür ist tmp_name?
    Wo müsste ich denn set_time_limit(0) einfügen? Den Befehl kenne ich nicht.


    MfG Radhad
    Geändert von Radhad (26.07.04 um 16:05 Uhr)
     

  9. #9
    Avatar von Sven Petruschke
    Sven Petruschke Sven Petruschke ist offline Mitglied Diamant
    Registriert seit
    May 2003
    Ort
    Leipzig
    Beiträge
    2.323
    Am besten zu Beginn der Scriptausführung.

    Hast Du meine Vorschläge probiert?
     
    Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
    www.sven-petruschke.de

  10. #10
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Ja, ändert sich bis jetzt nichts.
     

  11. #11
    Avatar von Sven Petruschke
    Sven Petruschke Sven Petruschke ist offline Mitglied Diamant
    Registriert seit
    May 2003
    Ort
    Leipzig
    Beiträge
    2.323
    Kommt er überhaupt in den ELSE-Zweig, sprich: Trägst Du in das Feld "email" auch etwas ein?
     
    Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
    www.sven-petruschke.de

  12. #12
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Ja, ich fülle alle Felder! Aber irgendwas muss beim ELSE-Zweig fehlerhaft sein.

    Es bricht ja nich ab und das Script taucht auch nirgends auf.
    Wofür ist tmp_name?
    Wo müsste ich denn set_time_limit(0) einfügen? Den Befehl kenne ich nicht.
     

  13. #13
    Avatar von Sven Petruschke
    Sven Petruschke Sven Petruschke ist offline Mitglied Diamant
    Registriert seit
    May 2003
    Ort
    Leipzig
    Beiträge
    2.323
     
    Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
    www.sven-petruschke.de

  14. #14
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Muss ich denn die Datei hochladen um aus ihr lesen zu können? Reicht es nicht sie lokal zu öffnen oder hat das was mit dem POST zu tun?
    Lönntest du mir das vielleicht erklären, wie das dann funktioniert? Oder kennst du ein Beispiel das leicht verständlich ist?


    MfG Radhad
     

  15. #15
    Radhad Radhad ist offline Mitglied Diamant
    Registriert seit
    Mar 2003
    Ort
    Wuppertal (NRW)
    Beiträge
    1.917
    Blog-Einträge
    35
    Muh, ich habe den Fehler gefunden, ich habe keinen Input für Betreff gemacht

    Jetzt wird noch gefordert, dass man Dateien anhängen kann, da forsche ich gerade nach in einem anderen Thread, vielleicht kannst du mir da ja auch weiterhelfen. Danke für deine Hilfe!


    MfG Radhad
     

Ähnliche Themen

  1. script zum email sammeln
    Von tatue im Forum PHP
    Antworten: 15
    Letzter Beitrag: 27.03.06, 21:20
  2. email script
    Von coldon im Forum PHP
    Antworten: 3
    Letzter Beitrag: 08.07.05, 09:05
  3. ASP script und HTML email
    Von pulmoll im Forum ASP
    Antworten: 1
    Letzter Beitrag: 01.06.05, 15:00
  4. Email Script
    Von themonk im Forum PHP
    Antworten: 4
    Letzter Beitrag: 06.11.04, 15:28
  5. Problem mit script (email und datenbank)
    Von visionsign im Forum PHP
    Antworten: 3
    Letzter Beitrag: 31.10.04, 16:35