"; echo "Feldname => Bedeutung
"; foreach($contact as $key=>$val) { echo "$key => $val
"; } exit(0); }; clearstatcache (); $trenner=($_POST["trenner"])?$_POST["trenner"]:","; if ($trenner=="other") { $trenner=trim($trennzeichen); if (substr($trenner,0,1)=="#") if (strlen($trenner)>1) $trenner=chr(substr($trenner,1)); } if (!empty($_FILES["Datei"]["name"])) { $file=$_POST["ziel"]; if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$dir.$file."_contact.csv")) { $file=false; echo "Upload von ".$_FILES["Datei"]["name"]." fehlerhaft. (".$_FILES["Datei"]["error"].")
"; } } else if (is_file($dir.$_POST["ziel"]."_contact.csv")) { $file=$_POST["ziel"]; } else { $file=false; } if (!$file) ende (2); if (!file_exists($dir.$file."_contact.csv")) ende(5); //$prenumber=$_POST["prenumber"]; $employee=chkUsr($_SESSION["employee"]); if (!$employee) ende(4); if (!$db->chkcol($file)) ende(6); //Zeichencodierung des Servers $tmpcode = $db->getServerCode(); //Leider sind die Benennungen vom Server anders als von mb_detect_encoding if ($tmpcode == "UTF8") { define("ServerCode","UTF-8"); } else if ($tmpcode == "LATIN9") { define("ServerCode","ISO-8859-15"); } else if ($tmpcode == "LATIN1") { define("ServerCode","ISO-8859-1"); } else { define("ServerCode",$tmpcode); } //Zeichensatz sollte gleich sein, sonst ist die Datenkonvertierung nutzlos //DB und LxO müssen ja nicht auf der gleichen Maschiene sein. if($tmpcode<>$db->getClientCode()) { $rc = $db->setClientCode($tmpcode); } // Zeichenkodierung File if ($_POST["encoding"] == "auto") { define("Auto",true); define("Translate",true); } else { define("Auto",false); if ($_POST["encoding"] == ServerCode) { define("Translate",false); } else { define("Translate",true); define("FileCode",$_POST["encoding"]); } } $f=fopen($dir.$file."_contact.csv","r"); $zeile=fgetcsv($f,2000,$trenner); $first=true; foreach ($zeile as $fld) { $fld = strtolower(trim(strtr($fld,array("\""=>"","'"=>"")))); $in_fld[]=$fld; if (substr($fld,0,2) == "x_") $kunde_fld[] = $fld; } $j=0; $zeile=fgetcsv($f,2000,$trenner); while (!feof($f)){ $i=-1; $firma=""; $name=false; $id=false; $sql="insert into contacts "; $keys="("; $vals=" values ("; unset($extra); $extra = array(); foreach($zeile as $data) { $i++; if (!in_array($in_fld[$i],$kunde_fld)) { continue; } $data=addslashes(trim($data)); if ($in_fld[$i]=="firma" && $data) { if (Translate) translate($data); $data=suchFirma($file,$data); if ($data) { $id=$data["cp_cv_id"]; } continue; } else if ($in_fld[$i]=="firma") { continue; } ; if ($in_fld[$i]=="cp_cv_id" && $data) { $data=chkKdId($data); if ($data) { $id = $data; }; continue; } else if($in_fld[$i]=="cp_cv_id") { continue; } if (substr($in_fld[$i],0,2)=="x_" && $data) { $extra[substr($in_fld[$i],2)] = $data; continue; } else if ((substr($in_fld[$i],0,2)=="x_")) { continue; }; if ($in_fld[$i]==$file."number" && $data) { if (!$id) { $tmp=getFirma($data,$file); if ($tmp) { $id=$tmp; } } continue; } else if ($in_fld[$i]==$file."number") { continue; } if ($in_fld[$i]=="cp_id" && $data) { $tmp=chkContact($data); if ($tmp) { $keys.="cp_id,"; $vals.="$tmp,"; } continue; } else if ($in_fld[$i]=="cp_id") { continue; } $keys.=$in_fld[$i].","; if ($data==false or empty($data) or !$data) { $vals.="null,"; } else { if (Translate) translate($data); /*if (in_array($in_fld[$i],array("cp_fax","cp_phone1","cp_phone2"))) { $data=$prenumber.$data; } else if ($in_fld[$i]=="cp_country" && $data) { $data=mkland($data); } */ if ($in_fld[$i]=="cp_name") $name=true; $vals.="'".$data."',"; // bei jedem gefuellten Datenfeld erhoehen $val_count++; } } if (!$name) { $zeile=fgetcsv($f,1200,$trenner); continue; } if ($id) { $vals.=$id.","; $keys.="cp_cv_id,"; } if ($keys<>"(" && $val_count>2) { if ($test) { if ($first) { echo "\n"; echo "\n"; $first=false; }; $vals=str_replace("',","'\n"; flush(); } else { $newID=uniqid (rand()); $now = date('Y-m-d H:i').":1.$j"; $sql.= $keys."mtime)"; $sql.= $vals."'$now')"; $rc=$db->query($sql); if (!$rc) echo "Fehler: ".$sql."\n"; $rs = $db->getAll("select cp_id,cp_name from contacts where mtime = '$now'"); $cp_id = $rs[0]["cp_id"]; echo "(".$rs[0]["cp_name"].":$cp_id)".count($extra).";"; if (count($extra)>0 and $cp_id) { foreach ($extra as $fld=>$val) { $rc = insertExtra("P",$cp_id,$fld,$val); } } } $j++; }; $zeile=fgetcsv($f,1200,$trenner); } fclose($f); echo $j." $file importiert.\n";} else { ?>

Kontakt-Adressimport für die ERP

".str_replace(",","",substr($keys,1,-1))."
",substr($vals,9,-1)); echo "
".str_replace("null,","null",$vals)."
Zieltabellecustomer vendor
Trennzeichen Semikolon Komma Tabulator Leerzeichen
Testja
Daten
Verwendete
Zeichecodierung