Hallo
$handle = fopen ($source, "r");
while (!feof($handle)) {
$result = FALSE;
$buffer = fgets($handle, 4096);
$data = explode("|", $buffer);
warum nicht gleich [link:http://www.php.net/manual/de/function.fgetcsv.php@title=fgetcsv]?
## schon vorhanden?
eine völlig überfüssige DB-Operation:
$result = mysql_query("SELECT email FROM ".DB_TABLE." WHERE email='".addslashes($data[3])."'");
addslashes solltest Du zugunsten von [link:http://www.php.net/manual/de/function.mysql-real-escape-string.php@title=mysql_real_escape_string] entsorgen.
[...])";
$result = mysql_query ($query) or die ("Der Datenbankeintrag hat leider nicht funktioniert.<br>".mysql_error());
die() ist keine Fehlerbehandlung!
Ein UNIQUE-Index auf die Spalte email setzen, das INSERT vornehmen und damit rechnen, dass es zu einer Index-Verletzung kommen kann und diese MySQL-Fehlermeldung entsprechend behandeln (und protokollieren). Sonstige Fehler einfach protokollieren, statt das Skript sterben zu lassen. Zum Schluss Verarbeitungsprotokoll ausgeben.
Freundliche Grüße
Vinzenz