Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 885e7d76

Von Holger Lindemann vor fast 15 Jahren hinzugefügt

  • ID 885e7d7601de767605f2938a69bae18258c62696
  • Nachfolger 74f7cca4

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.

Unterschiede anzeigen:

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