Revision 885e7d76
Von Holger Lindemann vor fast 15 Jahren hinzugefügt
- ID 885e7d7601de767605f2938a69bae18258c62696
- Nachfolger 74f7cca4
lxo-import/contactB.php | ||
---|---|---|
28 | 28 |
$crm=checkCRM(); |
29 | 29 |
|
30 | 30 |
if ($_POST["ok"]) { |
31 |
$dir = "../users/"; |
|
32 |
|
|
31 | 33 |
$test=$_POST["test"]; |
32 | 34 |
|
33 | 35 |
if ($crm) { |
... | ... | |
55 | 57 |
clearstatcache (); |
56 | 58 |
|
57 | 59 |
$trenner=($_POST["trenner"])?$_POST["trenner"]:","; |
60 |
if ($trenner=="other") { |
|
61 |
$trenner=trim($trennzeichen); |
|
62 |
if (substr($trenner,0,1)=="#") if (strlen($trenner)>1) $trenner=chr(substr($trenner,1)); |
|
63 |
} |
|
64 |
|
|
58 | 65 |
|
59 | 66 |
if (!empty($_FILES["Datei"]["name"])) { |
60 | 67 |
$file=$_POST["ziel"]; |
61 |
if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$file."_contact.csv")) { |
|
68 |
if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$dir.$file."_contact.csv")) {
|
|
62 | 69 |
$file=false; |
63 | 70 |
echo "Upload von ".$_FILES["Datei"]["name"]." fehlerhaft. (".$_FILES["Datei"]["error"].")<br>"; |
64 | 71 |
} |
65 |
} else if (is_file($_POST["ziel"]."_contact.csv")) { |
|
72 |
} else if (is_file($dir.$_POST["ziel"]."_contact.csv")) {
|
|
66 | 73 |
$file=$_POST["ziel"]; |
67 | 74 |
} else { |
68 | 75 |
$file=false; |
... | ... | |
70 | 77 |
|
71 | 78 |
if (!$file) ende (2); |
72 | 79 |
|
73 |
if (!file_exists($file."_contact.csv")) ende(5); |
|
80 |
if (!file_exists($dir.$file."_contact.csv")) ende(5);
|
|
74 | 81 |
|
75 |
$prenumber=$_POST["prenumber"]; |
|
82 |
//$prenumber=$_POST["prenumber"];
|
|
76 | 83 |
|
77 | 84 |
$employee=chkUsr($_SESSION["employee"]); |
78 | 85 |
if (!$employee) ende(4); |
79 | 86 |
|
80 | 87 |
if (!$db->chkcol($file)) ende(6); |
81 | 88 |
|
82 |
$f=fopen($file."_contact.csv","r"); |
|
89 |
//Zeichencodierung des Servers |
|
90 |
$tmpcode = $db->getServerCode(); |
|
91 |
//Leider sind die Benennungen vom Server anders als von mb_detect_encoding |
|
92 |
if ($tmpcode == "UTF8") { |
|
93 |
define("ServerCode","UTF-8"); |
|
94 |
} else if ($tmpcode == "LATIN9") { |
|
95 |
define("ServerCode","ISO-8859-15"); |
|
96 |
} else if ($tmpcode == "LATIN1") { |
|
97 |
define("ServerCode","ISO-8859-1"); |
|
98 |
} else { |
|
99 |
define("ServerCode",$tmpcode); |
|
100 |
} |
|
101 |
//Zeichensatz sollte gleich sein, sonst ist die Datenkonvertierung nutzlos |
|
102 |
//DB und LxO müssen ja nicht auf der gleichen Maschiene sein. |
|
103 |
if($tmpcode<>$db->getClientCode()) { |
|
104 |
$rc = $db->setClientCode($tmpcode); |
|
105 |
} |
|
106 |
|
|
107 |
// Zeichenkodierung File |
|
108 |
if ($_POST["encoding"] == "auto") { |
|
109 |
define("Auto",true); |
|
110 |
define("Translate",true); |
|
111 |
} else { |
|
112 |
define("Auto",false); |
|
113 |
if ($_POST["encoding"] == ServerCode) { |
|
114 |
define("Translate",false); |
|
115 |
} else { |
|
116 |
define("Translate",true); |
|
117 |
define("FileCode",$_POST["encoding"]); |
|
118 |
} |
|
119 |
} |
|
120 |
|
|
121 |
|
|
122 |
$f=fopen($dir.$file."_contact.csv","r"); |
|
83 | 123 |
$zeile=fgetcsv($f,2000,$trenner); |
84 | 124 |
|
85 | 125 |
$first=true; |
... | ... | |
105 | 145 |
} |
106 | 146 |
$data=addslashes(trim($data)); |
107 | 147 |
if ($in_fld[$i]=="firma" && $data) { |
148 |
if (Translate) translate($data); |
|
108 | 149 |
$data=suchFirma($file,$data); |
109 | 150 |
if ($data) { |
110 | 151 |
$id=$data["cp_cv_id"]; |
... | ... | |
149 | 190 |
if ($data==false or empty($data) or !$data) { |
150 | 191 |
$vals.="null,"; |
151 | 192 |
} else { |
152 |
if (in_array($in_fld[$i],array("cp_fax","cp_phone1","cp_phone2"))) { |
|
153 |
$data=$prenumber.$data; |
|
154 |
} else if ($in_fld[$i]=="cp_country" && $data) { |
|
155 |
$data=mkland($data); |
|
156 |
} |
|
157 |
if ($in_fld[$i]=="cp_name") $name=true; |
|
158 |
$vals.="'".$data."',"; |
|
159 |
// bei jedem gefuellten Datenfeld erhoehen |
|
160 |
$val_count++; |
|
193 |
|
|
194 |
if (Translate) translate($data); |
|
195 |
|
|
196 |
/*if (in_array($in_fld[$i],array("cp_fax","cp_phone1","cp_phone2"))) { |
|
197 |
$data=$prenumber.$data; |
|
198 |
} else if ($in_fld[$i]=="cp_country" && $data) { |
|
199 |
$data=mkland($data); |
|
200 |
} */ |
|
201 |
if ($in_fld[$i]=="cp_name") $name=true; |
|
202 |
$vals.="'".$data."',"; |
|
203 |
// bei jedem gefuellten Datenfeld erhoehen |
|
204 |
$val_count++; |
|
161 | 205 |
} |
162 | 206 |
} |
163 | 207 |
if (!$name) { |
... | ... | |
197 | 241 |
<table> |
198 | 242 |
<tr><td></td><td><input type="submit" name="ok" value="Hilfe"></td></tr> |
199 | 243 |
<tr><td>Zieltabelle</td><td><input type="radio" name="ziel" value="customer" checked>customer <input type="radio" name="ziel" value="vendor">vendor</td></tr> |
200 |
<tr><td>Trennzeichen</td><td><input type="text" size="2" maxlength="1" name="trenner" value=";"></td></tr> |
|
201 |
<tr><td>Telefonvorwahl</td><td><input type="text" size="4" maxlength="1" name="prenumber" value=""></td></tr> |
|
244 |
<tr><td>Trennzeichen</td><td> |
|
245 |
<input type="radio" name="trenner" value=";" checked>Semikolon |
|
246 |
<input type="radio" name="trenner" value=",">Komma |
|
247 |
<input type="radio" name="trenner" value="#9" checked>Tabulator |
|
248 |
<input type="radio" name="trenner" value=" ">Leerzeichen |
|
249 |
<input type="radio" name="trenner" value="other"> |
|
250 |
<input type="text" size="2" name="trennzeichen" value=""> |
|
251 |
</td></tr> |
|
252 |
<!--tr><td>Telefonvorwahl</td><td><input type="text" size="4" maxlength="1" name="prenumber" value=""></td></tr--> |
|
202 | 253 |
<tr><td>Test</td><td><input type="checkbox" name="test" value="1">ja</td></tr> |
203 | 254 |
<tr><td>Daten</td><td><input type="file" name="Datei"></td></tr> |
255 |
<tr><td>Verwendete<br />Zeichecodierung</td><td> |
|
256 |
<select name="encoding"> |
|
257 |
<option value="auto">Automatisch (versuchen)</option> |
|
258 |
<option value="UTF-8">UTF-8</option> |
|
259 |
<option value="ISO-8859-1">ISO-8859-1</option> |
|
260 |
<option value="ISO-8859-15">ISO-8859-15</option> |
|
261 |
<option value="Windows-1252">Windows-1252</option> |
|
262 |
<option value="ASCII">ASCII</option> |
|
263 |
</select> |
|
264 |
</td></tr> |
|
204 | 265 |
<tr><td></td><td><input type="submit" name="ok" value="Import"></td></tr> |
205 | 266 |
</table> |
206 | 267 |
</form> |
Auch abrufbar als: Unified diff
Uploadverzeichnis in users (Bug 1343)
Abfrage Server-Zeichencode (Bug 1350)
Trennzeichen in allen File wählbar
Zeichenkonvertierung: (Bug 1036)
Da Web und DB Server nicht auf dem gleichen Server laufen müssen,
muß der Client (php) auf den Server eingestellt werden.
Bei der Datenkonvertierung einen Zeichencode mitgeben oder auf Auto stellen
mb_detect_encoding arbeitet nicht zuverlässig!!! Liefert häufig den ersten zu testenden Code zurück.