ein Kunde von mir will mit Contenido seine Newsletter verschicken. Da er ca. 5000 E-Mail Adressen in einem Excel-Sheet gespeichert hat und diese nicht manuell eingeben will, hab ich ein kleines CSV-Import Skript geschrieben.
Das Skript muss in contenido/tools mit dem Namen email_import.php gespeichert werden.
Jede zu importierende E-Mail Adresse muss in der textarea in einer neuen Zeile stehen und dieses Format aufweisen: Vorname; Nachname; E-Mail Adresse
Da ich keine Login-Funktion o. ä. eingebaut habe, soll das Skript nach dem Import wieder gelöscht werden.
Falls es jemand brauchen kann, hier der Code:
Code: Alles auswählen
<?php
require('../includes/config.php');
require('../includes/cfg_sql.inc.php');
mysql_select_db($contenido_database, mysql_connect($contenido_host, $contenido_user, $contenido_password));
$summary = '';
if(isset($_POST['import']) && !empty($_POST['rcps']))
{
$last_id_sql = 'SELECT idnewsrcp FROM ' . $cfg["tab"]["news_rcp"] . ' ORDER BY idnewsrcp DESC LIMIT 0,1';
$last_id = mysql_fetch_assoc(mysql_query($last_id_sql));
$new_id = $last_id['idnewsrcp'] + 1;
$newrcps = split("\n", $_POST['rcps']);
$k = 0;
foreach($newrcps as $rcp)
{
$r = explode(";", $rcp);
foreach($r as $j => $i)
{
$r[$j] = ($j == 2) ? strtolower(urlencode(trim($i))) : urlencode(trim($i));
}
$time = date("Y-m-d H:i:s", time());
$import_sql = "INSERT INTO " . $cfg["tab"]["news_rcp"] . " VALUES
(" . $new_id . ", " . $_POST['idclient'] . ", " . $_POST['idlang'] . ", '" . $r[2] . "', 1, '" . $time . "', NULL, '" . $r[0] . '+' . $r[1] . "',
'" . substr(md5(rand()),0,17) . uniqid("") . "', 0, '" . md5($_POST['author']) . "', '" . $time . "', '" . $time . "', '" . md5($_POST['author']) . "')";
if($import = mysql_query($import_sql))
{
$new_id++;
$k++;
}
}
$summary = $k . ' E-Mail Empfänger wurden hinzugefügt.';
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>E-Mail Import</title>
<style>
* { font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px; }
</style>
</head>
<body style="background-color:#ddd;">
<form method="post" action="email_import.php">
Format: Vorname; Nachname; E-Mail-Adresse<br />
<textarea style="width:800px; height:300px; border:1px solid #999;" name="rcps"></textarea><br />
<br />
Uploader:<br />
<input type="text" name="author" value="sysadmin" /><br />
ID-Client:<br />
<input type="text" name="idclient" value="1" /><br />
ID-Language:<br />
<input type="text" name="idlang" value="1" /><br /><br />
<input type="submit" name="import" value="Importieren" />
</form>
<br />
<?php echo $summary; ?>
</body>
</html>
Falls jemand Verbesserungsvorschläge hat, einfach raus damit
Viel Spaß damit und Grüße,
Tom