ERLEDIGT
NEIN
NEIN
ANTWORTEN
16
16
ZUGRIFFE
1217
1217
EMPFEHLEN
-
23.07.04 16:36 #1
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
-
Was ist eine Serien e-mail?
Siehe "Dateiupload"Wie erstelle ich den Button mit der Auswahl der csv-Datei
wie bekomme ich jeweils einen Datensatz in einen Array?PHP-Code:$var = Array();
$var[] = "daten";
$var[] = "noch mehr daten";
Eine Schleife?!Und wie sage ich dem Script, dass es alle Datensätze abarbeiten soll?Geändert von _voodoo (23.07.04 um 17:06 Uhr)
»
-
23.07.04 17:07 #3
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
-
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 );
»
-
23.07.04 17:21 #5
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.
snuuGeä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
-
26.07.04 13:21 #6
Ich habe das Script jetzt soweit fertig, allerdings läuft es eine ganze Zeit lang, ohne das etwas passiert. Folgend mein Quellcode:
Vielleicht seht ihr einen logischen Fehler.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 ($handle, 1000, ";")) !== 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!";
}
?>
MfG RadhadGeändert von Radhad (26.07.04 um 13:29 Uhr)
-
26.07.04 14:44 #7
Die Datei wird gar nicht erst eingelesen. Verwende mal statt
folgendes:PHP-Code:$handle = fopen ($_POST["csvdatei"],"r");
Ausserdem fehlt dem Formular die Angabe des enctype-Parameters, welcher für Dateiuploads erforderlich ist:PHP-Code:$handle = fopen ($_FILES['csvdatei']['tmp_name'],"r");
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: .htaccessPHP-Code:<form method="post" action="serienemail.php" enctype="multipart/form-data">
Um der Frage vorzubeugen, warum Dein Script nach 30 Sekunden abbricht:snuuPHP-Code:set_time_limit(0);
Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
www.sven-petruschke.de
-
26.07.04 16:00 #8
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 RadhadGeändert von Radhad (26.07.04 um 16:05 Uhr)
-
26.07.04 16:05 #9
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
-
26.07.04 16:06 #10
Ja, ändert sich bis jetzt nichts.
-
26.07.04 16:07 #11
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
-
26.07.04 16:08 #12
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.
-
26.07.04 16:23 #13Das Leben ist wie eine Ketchupflasche - erst kommt nichts und dann alles auf einmal.
www.sven-petruschke.de
-
27.07.04 11:22 #14
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
-
27.07.04 11:32 #15
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
-
script zum email sammeln
Von tatue im Forum PHPAntworten: 15Letzter Beitrag: 27.03.06, 21:20 -
email script
Von coldon im Forum PHPAntworten: 3Letzter Beitrag: 08.07.05, 09:05 -
ASP script und HTML email
Von pulmoll im Forum ASPAntworten: 1Letzter Beitrag: 01.06.05, 15:00 -
Email Script
Von themonk im Forum PHPAntworten: 4Letzter Beitrag: 06.11.04, 15:28 -
Problem mit script (email und datenbank)
Von visionsign im Forum PHPAntworten: 3Letzter Beitrag: 31.10.04, 16:35





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren