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/shiptoB.php
44 44
$crm=checkCRM();
45 45

  
46 46
if ($_POST["ok"] == "Import") {
47
    $dir = "../users/";
48

  
47 49
    $test=$_POST["test"];
48 50
    
49 51
    $shipto_fld = array_keys($shiptos);
......
54 56
    clearstatcache ();
55 57

  
56 58
    $trenner=($_POST["trenner"])?$_POST["trenner"]:",";
59
    if ($trenner=="other") {
60
        $trenner=trim($trennzeichen);
61
        if (substr($trenner,0,1)=="#") if (strlen($trenner)>1) $trenner=chr(substr($trenner,1));
62
    };
57 63

  
58 64
    if (!empty($_FILES["Datei"]["name"])) { 
59 65
        $file=$_POST["ziel"];
60
        if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$file."_shipto.csv")) {
66
        if (!move_uploaded_file($_FILES["Datei"]["tmp_name"],$dir.$file."_shipto.csv")) {
61 67
            $file=false;
62 68
            echo "Upload von ".$_FILES["Datei"]["name"]." fehlerhaft. (".$_FILES["Datei"]["error"].")<br>";
63 69
        } 
64
    } else if (is_file($_POST["ziel"]."_shipto.csv")) {
70
    } else if (is_file($dir.$_POST["ziel"]."_shipto.csv")) {
65 71
        $file=$_POST["ziel"];
66 72
    } else {
67 73
        $file=false;
68 74
    } 
69 75
    if (!$file) ende ("Kein Datenfile");
70 76

  
71
    if (!file_exists($file."_shipto.csv")) ende($file."_shipto.csv nicht im Ordner gefunden oder leer");
77
    if (!file_exists($dir.$file."_shipto.csv")) ende($file."_shipto.csv nicht im Ordner gefunden oder leer");
72 78

  
73 79
    $employee=chkUsr($_SESSION["employee"]);
74 80
    if (!$employee) ende("Benutzer unbekannt");
75 81

  
76 82
    if (!$db->chkcol($file)) ende("Importspalte konnte nicht angelegt werden");
83
    //Zeichencodierung des Servers
84
    $tmpcode = $db->getServerCode();
85
    //Leider sind die Benennungen vom Server anders als von mb_detect_encoding
86
    if ($tmpcode == "UTF8") {
87
         define("ServerCode","UTF-8");
88
    } else if ($tmpcode == "LATIN9") {
89
         define("ServerCode","ISO-8859-15");
90
    } else if ($tmpcode == "LATIN1") {
91
         define("ServerCode","ISO-8859-1");
92
    } else {
93
         define("ServerCode",$tmpcode);
94
    }
95
    //Zeichensatz sollte gleich sein, sonst ist die Datenkonvertierung nutzlos
96
    //DB und LxO müssen ja nicht auf der gleichen Maschiene sein.
97
    if($tmpcode<>$db->getClientCode()) {
98
        $rc = $db->setClientCode($tmpcode);
99
    }
100

  
101
    // Zeichenkodierung File
102
    if ($_POST["encoding"] == "auto") {
103
         define("Auto",true);
104
         define("Translate",true);
105
    } else {
106
         define("Auto",false);
107
         if ($_POST["encoding"] == ServerCode) {
108
            define("Translate",false);
109
         } else {
110
            define("Translate",true);
111
            define("FileCode",$_POST["encoding"]);
112
         }
113
    }
77 114

  
78
    $f=fopen($file."_shipto.csv","r");
115
    $f=fopen($dir.$file."_shipto.csv","r");
79 116
    $zeile=fgetcsv($f,1000,$trenner);
80 117
    $first=true;
81 118

  
......
85 122
    }
86 123
    $j=0;
87 124
    $n=0;
88
    $prenumber=$_POST["prenumber"];
125
    //$prenumber=$_POST["prenumber"];
89 126
    $zeile=fgetcsv($f,1000,$trenner);
90 127

  
91 128
    while (!feof($f)){
......
116 153
            }
117 154
            if ($in_fld[$i]=="firma") {
118 155
                if ($id) continue;
156
                if (Translate) translate($data);
119 157
                $data=suchFirma($file,$data);
120 158
                if ($data) {
121 159
                    $id=$data["cp_cv_id"];
......
127 165
            if ($data==false or empty($data) or !$data) {
128 166
                            $vals.="null,";
129 167
            } else {
130
                   if (in_array($in_fld[$i],array("shiptofax","shiptophone"))) {
168
                /*if (in_array($in_fld[$i],array("shiptofax","shiptophone"))) {
131 169
                    $data=$prenumber.$data;
132
                } 
170
                } */
171
                if (Translate) translate($data);
133 172
                $vals.="'".$data."',";
134 173
                // bei jedem gefuellten Datenfeld erhoehen
135 174
                $val_count++;
......
167 206
<table>
168 207
<tr><td></td><td><input type="submit" name="ok" value="Hilfe"></td></tr>
169 208
<tr><td>Zieltabelle</td><td><input type="radio" name="ziel" value="customer" checked>customer <input type="radio" name="ziel" value="vendor">vendor</td></tr>
170
<tr><td>Trennzeichen</td><td><input type="text" size="2" maxlength="1" name="trenner" value=";"></td></tr>
171
<tr><td>Telefonvorwahl</td><td><input type="text" size="4" maxlength="10" name="prenumber" value=""></td></tr>
209
<tr><td>Trennzeichen</td><td>
210
        <input type="radio" name="trenner" value=";" checked>Semikolon
211
        <input type="radio" name="trenner" value=",">Komma
212
        <input type="radio" name="trenner" value="#9" checked>Tabulator
213
        <input type="radio" name="trenner" value=" ">Leerzeichen
214
        <input type="radio" name="trenner" value="other">
215
        <input type="text" size="2" name="trennzeichen" value="">
216
</td></tr>
217
<!--tr><td>Telefonvorwahl</td><td><input type="text" size="4" maxlength="10" name="prenumber" value=""></td></tr-->
172 218
<tr><td>Test</td><td><input type="checkbox" name="test" value="1">ja</td></tr>
173 219
<tr><td>Daten</td><td><input type="file" name="Datei"></td></tr>
220
<tr><td>Verwendete<br />Zeichecodierung</td><td>
221
        <select name="encoding">
222
        <option value="auto">Automatisch (versuchen)</option>
223
        <option value="UTF-8">UTF-8</option>
224
        <option value="ISO-8859-1">ISO-8859-1</option>
225
        <option value="ISO-8859-15">ISO-8859-15</option>
226
        <option value="Windows-1252">Windows-1252</option>
227
        <option value="ASCII">ASCII</option>
228
        </select>
229
</td></tr>
174 230
<tr><td></td><td><input type="submit" name="ok" value="Import"></td></tr>
175 231
</table>
176 232
</form>

Auch abrufbar als: Unified diff