# Seltsames Verhalten von Firefox und Internetexplorer



## fbfeix (1. Februar 2012)

Hallo Community,

ich habe vor einem Monat mein Projekt fertiggestellt, in dem CSV-Daten eingelesen und in einer Datenbank gespeichert werden.

Ablauf des Programms:

Einlesen der CSV-Daten per Dateiupload
In Temporärer Datenbank speichern und neue Seite aufrufen, auf der die eingelesenen Daten präsentiert werden (Tabelle in einem Form-Tag (<form>) mit Inputboxen, die den Wert wiedergeben
Wenn alle Daten richtig präsentiert werden, weitere Seite per Request in die aktuelle holen, die Daten speichert.
Diese Seite holt sich die Daten per $_POST aus der vorherigen Seite und speichert sie in die entgültige Datenbank

So nun zum Problem.

*Internetexplorer:*
Funktionierte gestern nicht. Er gab mir immer meine Fehlermeldung aus, dass die Datei das falsche Format habe. Mit der gleichen Datei gings im Firefox aber. Heute ohne irgendeine Änderung am Quellcode und ohne Updates des OS oder des IEs funktioniert die Anwendung auch mit der Datei von gestern.

*Firefox:*
Wenn ich bei der Datenübersicht auf den Knopf zum Speichern klicke hängt sich die Website auf und ich kann nirgendwo mehr klicken, ... Fehlermeldungen zeigt Firebug bzw die Fehlerkonsole (habe gemeint es wäre vll JavaScript) aber auch nicht. Wenn ich jetzt in der Situation bin wo alles hängt und auf den "Aktuelle Seite neu laden"-Button klicke wird mir die Seite auf der ich war angezeigt und die Daten sind plötzlich in der Datenbank korrekt gespeichert.

An was liegt das? Wenn ichs nicht genau genug erklärt habe, bitte fragen.


----------



## tombe (1. Februar 2012)

Wenn das Projekt vor einem Monat fertig gestellt wurde und du schreibst das es im Internet Explorer gestern nicht ging, dann setze ich mal voraus das es in der Vergangenheit aber schon funktioniert hat!?

Hast du dir schonmal den Seitenquelltext angeschaut. Vielleicht wird da ja eine PHP-Fehlermeldung angezeigt (Fehleranzeige generell mal einschalten!).

Um aber helfen zu können sollten wir aber auch ein bisschen was vom Code sehen.


----------



## Yaslaw (1. Februar 2012)

Bin mir nicht sicher ob du hier im richtigen Forum bist.
PHP läuft rein Serverseitig. Dem PHP ists total egal was für ein Browser darauf zugreift.

So auf die Schnelle einige mögliche Punkte (unvollständige Liste)
- Du hast irgendwelche Scripts die Browserseitig ablaufen (also nicht PHP)
- Dein Provider hat was an seinem Server geschraubt. (Hatte ich auch schon - eine kurze Anfrage an den Provider und er hats gefixt)
- Dein HTML ist nicht sauber


----------



## fbfeix (3. Februar 2012)

Das es dem Server egal ist hatte ich auch gedacht aber anderst kann ichs mir nicht erklären. 
Code kann ich leider nicht zeigen weils ein Firmenprojekt ist. 

Zu den Punkten: Erstmal Danke.
1. Ich habe ein Script in JavaScript, das wird aber nur ausgeführt, wenn ich auf einen Button klicke (Führt per Request ein PHP-Script aus, das wiederum Daten zurückliefert). Das Funktioniert aber im Internet Explorer ohne Probleme****** Kann es sein das t.dem hier das Problem liegt und Firefox das einfach nicht so abarbeitet wie er es soll? (Dieses JavaScript könnte ich hochladen (siehe weiter unten))
2. Provider kann es nicht sein weil das Projekt auf dem eigenen Server läuft.
3. Kann ich nicht hundertprozentig sagen, aber ich denke eigentlisch schon das es sauber ist. Immerhin achte ich stark darauf!!


```
function request(ElementID, Url)
  {
	  if (window.XMLHttpRequest)
	  {
		  myAjax = new XMLHttpRequest();
	  }
	  else
	  {
		  //Dieser Code wird als Fallback für den IE5 und IE6 benötigt, da diese die obrige Schreibweise nicht unterstützen.
		  myAjax = new ActiveXObject("Microsoft.XMLHTTP");
	  }
 
	  myAjax.onreadystatechange=function()
	  {
		  if (myAjax.readyState==4 && myAjax.status==200)
		  {
			  document.getElementById(ElementID).innerHTML = myAjax.responseText;
		  }
		  else
		  {
			  
		  }
	  };
 
	  myAjax.open("POST", Url, true);
	  myAjax.send();
	  
  }
```

Ist doch eigentlich ein Standart-Code oder? Sollte er doch einwandfrei machen. In anderen Projekten tut er es ja auch


----------



## Yaslaw (3. Februar 2012)

Zum Javascript kann ich dir nix sagen. Aber das Problem ist mMn am ehesten da. Denn das wird vom Browser ausgeführt. Wenn du willst könnte ich den Thread mal ins JavaScript-Forum verschieben. Dort tummeln sich mehr JavaScript-Spezialisten herum.


----------



## Ch (3. Februar 2012)

Kann jetzt nicht wirklich viel erkennen. Interessant wäre jetzt der Anfrage Header (zu sehen über Firebug) und der Antwort Header  (zu sehen über Firebug).


----------



## fbfeix (6. Februar 2012)

*anfrage-header:*

HTTP/1.1 200 OK
Date: Mon, 06 Feb 2012 09:48:06 GMT
Server: Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1
X-Powered-By: PHP/5.3.1
Content-Length: 2210
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html

*antwort-header:*

HTTP/1.1 200 OK
Date: Mon, 06 Feb 2012 09:48:06 GMT
Server: Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1
X-Powered-By: PHP/5.3.1
Content-Length: 2210
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html


zum verschieben:
wenn das sinnvoll ist, wäre es ne nette Geste.


----------



## Ch (6. Februar 2012)

Also das mit den header kann nicht sein.
Wo sind denn im Anfrage Header diese Punkte z.B.?


```
X-Requested-With	XMLHttpRequest
```


```
Accept	text/html, */*; q=0.01
```


----------



## sheel (6. Februar 2012)

"200 OK" in der Anfrage ist doch auch etwas seltsam 
Das ist der Antwortheader doppelt.


----------



## FipsTheThief (6. Februar 2012)

Chewbacca hat gesagt.:


> Also das mit den header kann nicht sein.
> Wo sind denn im Anfrage Header diese Punkte z.B.?
> 
> 
> ...



Das muss auch nicht drinne stehen, jQuery schreibt das x-requested-with selber in den Header mit rein. 
Dies kann auch man auch bequem selber machen, was auch von Vorteil ist um einen AJAX Request zu erkennen auf Server Seite.


```
xmlhttpRequest.setRequestHeader('foobar', 'qwert');
```

Und schon kannst im Anfrage Header foobar qwert lesen.  Sinnvolle Namen natürlic hier von Vorteil.


----------



## Ch (7. Februar 2012)

Ist ja richtig, trotzdem sind es zwei Antwortheader(zumindest habe ich noch keinen Anfrageheader gesehen, der sich selber antwortet... ), intressant wäre natürlich auch die Antwort vom Server.

Ich kann natürlich tolle Geschichten in den Header schreiben, aber macht das Sinn? Ich benutze das "X-Requested-With" um wie du schon schreibst einen Ajaxrequest zu erkennen. Was z.B. sehr schön ist um in einer Funktion unterschiedliche Ausgaben zu handeln. Mit dieser Methodik lässt sich schön eine Barrierefreiheit umsetzen.

Hinzu kommt das Accept so kann ich erkennen, was die Anfrage als Antwort erwartet, z.B. json, xml oder reines html oder oder. Andernfalls also wird ein falschen Format zurückgegeben gibt es einen Fehler, was dann ja auch in meinen Augen Sinn macht.

Weiterhin sind von Vorteil "Accept-Language", "Host", "Referer", "User-Agent" will man z.B. eine Session erneuern oder eine csrf Protection einsetzen oder man hat einen xss Filter um Cross Site Scripting zu verhindern.

Ich kann nur raten ein JS Framework einzusetzen, das spart Zeit und Nerven und das Tolle ist es funktioniert auch.

Aber zurück zum Thema, ich denke hier gibt es mehreere Probleme.



> Funktionierte gestern nicht. Er gab mir immer meine Fehlermeldung aus, dass die Datei das falsche Format habe.



Wei wird die CSV eingelesen?



> Wenn ich bei der Datenübersicht auf den Knopf zum Speichern klicke hängt sich die Website auf und ich kann nirgendwo mehr klicken,



hört sich für mich eindeutig nach eine JS Fehler an. z.B. eine Funktion die vorm DOM aufgerufen wird.


----------



## fbfeix (7. Februar 2012)

Oh tut mir leid.
Hier nochmal beide:
*
Antwort-Header*
Accept-Ranges	bytes
Content-Length	1242
Content-Type	application/javascript
Date	Mon, 06 Feb 2012 08:42:08 GMT
Etag	"20000000262e2-4da-4b00863aebe90"
Last-Modified	Mon, 24 Oct 2011 09:53:05 GMT
Server	Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1

*Anfrage-Header*
Accept	*/*
Accept-Charset	ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept-Encoding	gzip, deflate
Accept-Language	de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Connection	keep-alive
Host	localhost
Referer	http://localhost/labor/index.php
User-Agent	Mozilla/5.0 (Windows NT 6.1; WOW64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1


----------



## Ch (7. Februar 2012)

Dein Antwort Header ist wahrscheinlich zu kurz. Wie setzt du in den? Ein Beispiel wäre so.


```
header('Content-length: ' . strlen('mein ganz langer String den ich aus der CSV eingelesen habe'));
```

außerdem willst du bestimmt kein Js zurückgegeben, also fehlt noch die Header Anweisung.

z.B.

```
header('Content-type:  text/html; charset=UTF-8' );
```


----------



## fbfeix (7. Februar 2012)

Oke stimmt. Aber muss ich den das immer angeben? Bisher habe ich das nur gemacht, wenn ich Bilder mit PHP erstellt habe, ansonsten nirgendwo und es hat trotzdem immer gepasst.


----------



## Ch (7. Februar 2012)

So habe selber noch mal gelesen, also es ist eine "Kann" Option. Zumindest gibt es aber auch kein "HTTP/1.1 200 OK" zurück. Also solltest du mal alles überprüfen.

1. stimmt die Anfrage, wird sie vom Php Skript entgegen genommen
2. Wird die Anfrage bearbeitet und wirft keine Fehler?
3. stimmt die Ausgabe?

 Aber erkläre doch mal, was du zurück gibst usw. poste doch mal die Ausgabe vom Php Skript, muß ja nicht vollständig sein. Ansonsten bleibt uns hier nur die Glaskugel....


----------



## fbfeix (7. Februar 2012)

Oke ich bin leider kein Profi aber eine "Kann" Option ist eine Option die enthalten sein *kann* oder?

Zu den Frage:

Es wirft keine Fehler und es wird auch richtig verarbeitet. Mein Problem ist ja, dass es nicht sofort verarbeitet wird, sondern erst wenn ich auf den Aktuallisieren-Button des Firefox klicke.

Zur Erinnerung nochmal: Es betrifft nur den Firefox, der InternetExplorer macht seinen Job hier ausnahmsweiße super.

Und hier Code:


```
class CSVInterfaceList
{
	public $Probenname;
	public $Probennummer;
	public $InterfacePairArray;
}


/**
 * <b>CSVInterfacePair</b>
 * <p>Enthält zwei Eigenschaften:
 * <table><tr><th>$ID</th><th>$Value</th></tr>
 * <tr>
 * <td>Die ID</td>
 * <td>Der Wert zu dieser ID</td>
 * </tr>
 * </table>
 * @author fbfeix
 *
 */
class CSVInterfacePair
{
	public $ID;
	public $Value;
}


class CSVInterface
{

	protected $csv_array; // 2D-Array: 1. Dimension: Zeile, 2. Dimension: Spalte

	/**
	 * <h3>Ein Array, dass alle Verfügbaren IDs enthält.</h3>
	 * </p>Der Index des jeweiligen Elements ist dabei die Wessling ID.</p>
	 * <p>Der Wert ist der Rohrdorfer Name wie er in der Tabelle in MySQL steht.</p>
	 * @var geschütztes Array(<b>WesslingID</b> | <b>Rohrdorfer Name</b>)
	 */
	protected $uebersetzungs_array; //index: Wessling-Id, Wert: Rohrdorfer Name



	/**
	 * Konstruktor der Klasse 'CSVInterface'.
	 * Initialisiert das Übersetzungsarray
	 * @return boolean
	 */
	public function __construct()
	{

		//Mit MySQL verbinden
		$con = mysql_connect("localhost", "root", "");
		if (!$con)
		return false;

		//Datenbank öffnen
		$select = mysql_select_db("labor");
		if (!select)
		return false;

		//markiere genaue Tabelle und Spaltenname
		$sql = "SELECT Rohrdorfer_Bezeichnung, wessling_id FROM sbs_werozuordnung_tbl";

		//Öffnen der Tabelle und Ergebnis auswerten
		$result = mysql_query($sql);
		if($result)
		{
			while($row = mysql_fetch_array($result))
			{
				$this->uebersetzungs_array[$row['wessling_id']] = $row['Rohrdorfer_Bezeichnung'];
			}
				
		}
		else
		echo "Beim anlegen eines Übersetzungsarrays ist ein Fehler aufgetreten";

		//Datenbank schließen
		mysql_close($con);
	}



	private function read_csv($path)
	{

		//prüft den Pfad
		if($path == "" || $path == null)
		return false; //Pfad ist leer, Funktion beenden

		//Ist die Datei auf die der Pfad verweist vorhanden?
		if(!file_exists($path))
		{
			echo "Datei existiert nicht";
			return false; //Datei ist nicht vorhanden: Funktion beenden
		}

		$fp = fopen($path, 'r');
		if($fp == false)
		{
			return false;
		}

		//Zählvariable
		$aktuelleZeilenNummer = 0;

		while(! feof($fp))
		{
			$zeile = fgetcsv($fp, 4096, ';');

			if($aktuelleZeilenNummer == 0) //Probennummern lesen
			{
				for($i = 4; $i < count($zeile); $i++)
				{
					$InterfaceElement = new CSVInterfaceList();
					$InterfaceElement->Probennummer = $zeile[$i];
					$this->csv_array[-4 + $i] = $InterfaceElement;
				}
			}
			else if($aktuelleZeilenNummer == 1) //Probennamen lesen
			{
				for($i = 4; $i < count($zeile); $i++)
				{
					$this->csv_array[-4 + $i]->Probenname = $zeile[$i];
				}
			}
			else //Probenwerte lesen
			{
				$zeile = $this->ReplaceNull($zeile);
				for($i = 4; $i < count($zeile); $i++)
				{
					if($zeile[1] != "" && $zeile[$i] != "")
					{
						$Pair = new CSVInterfacePair();
						$Pair->ID = $zeile[1];
						$Pair->Value = $zeile[$i];

						$this->csv_array[-4 + $i]->InterfacePairArray[] = $Pair;
					}

				}

			}
			//Zählvariable um 1 erhöhen
			$aktuelleZeilenNummer++;
		}


		fclose($fp);

	}



	/**
	 * <b>CSV_IntoTmpDB()</b>
	 * <p>
	 * @return boolean
	 */
	private function CSV_IntoTmpDB()
	{



		$con = mysql_connect("localhost", "root", "");
		if (!$con)
		return false;

		$select = mysql_select_db("labor");
		if (!select)
		return false;


		//_____________________________________________________
		//#####################################################
		//Tmp-Datenbank-tabellen leeren (daten_tbl, proben_tbl)

		$sql = "TRUNCATE TABLE `sbs_daten_tbl` ";

		$result = mysql_query($sql);

		if(!result)
		die('Ungültige Abfrage: ' . mysql_error());

		$sql = "TRUNCATE TABLE `sbs_proben_tbl` ";

		$result = mysql_query($sql);

		if(!result)
		die('Ungültige Abfrage: ' . mysql_error());
		//#####################################################
		//#####################################################



		//_____________________________________________________
		//#####################################################
		//neue Daten in Tmp-Datenbank-tabellen einfügen (daten_tbl, proben_tbl)



		//Tab sortiert nach den Proben
		echo '<div id="tabcontrol"><ul>';

		for($i = 0; $i < count($this->csv_array); $i++)
		{

			if($this->csv_array[$i]->Probenname != "" || $this->csv_array[$i]->Probennummer != "")
			{
				echo '<li><a href="#tabs-'.$this->csv_array[$i]->Probennummer.'">'.$this->csv_array[$i]->Probenname.' ('.$this->csv_array[$i]->Probennummer.')</a></li>';
			}
		}

		echo '</ul>';

		for($i = 0; $i < count($this->csv_array); $i++)
		{

			if($this->csv_array[$i]->Probenname != "" || $this->csv_array[$i]->Probennummer != "")
			{
				//Start des Tab-Contents
				echo '<div id="tabs-'.$this->csv_array[$i]->Probennummer.'">';
				echo '<form name="form_'.$this->csv_array[$i]->Probennummer.'" id="form_'.$this->csv_array[$i]->Probennummer.'" action="templates/insertdata.php" method="post">';

				echo '<table>';
				echo '<tr><th style="width: 50%; ">Name</th><th style="width: 50%; ">Wert</th></tr>';

				$sql = "INSERT INTO proben_tbl (proben_nummer, proben_name) VALUES (".$this->csv_array[$i]->Probennummer.",'".$this->csv_array[$i]->Probenname."')";

// 				echo "<br />".$sql."<br />";
				$result = mysql_query($sql);

				if(!result)
				die('Ungültige Abfrage: ' . mysql_error());

				$sql = "INSERT INTO daten_tbl (value, werozuordnung_id, daten_proben_id) VALUES (".
				$this->csv_array[$i]->InterfacePairArray[0]->Value.
						",'".$this->csv_array[$i]->InterfacePairArray[0]->ID.
						"',".mysql_insert_id().")";

				for($j = 0; $j < count($this->csv_array[$i]->InterfacePairArray); $j++)
				{
					$sql .= ", (".$this->csv_array[$i]->InterfacePairArray[$j]->Value.
								",'".$this->csv_array[$i]->InterfacePairArray[$j]->ID.
								"',".mysql_insert_id().")";

					
					//liste erzeugen:
					if($this->uebersetzungs_array[$this->csv_array[$i]->InterfacePairArray[$j]->ID])
					{
					echo '<tr><td style="border-bottom: 1px solid #ddd;">'.$this->uebersetzungs_array[$this->csv_array[$i]->InterfacePairArray[$j]->ID].'</td>';
					echo '<td style="border-bottom: 1px solid #ddd;"><input class="tablecontrollinginput" type="text" name="'.
					$this->csv_array[$i]->InterfacePairArray[$j]->ID."of".$this->csv_array[$i]->Probennummer.
								'" value="'.
					$this->csv_array[$i]->InterfacePairArray[$j]->Value.
								'"/></td></tr>'."\n";
					}
				}
				
// 				echo "<br />".$sql."<br />";

				//Probennummer, -name und -bemerkung
				echo "<tr><td><br /></td><td><br /></td></tr>";
				echo '<tr><td>Probennummer</td><td><input type="text" name="probennummer" class="tablecontrollinginput" value="'.$this->csv_array[$i]->Probennummer.'" /></td></tr>';
				echo '<tr><td>Probenname</td><td><input type="text" name="probenname" class="tablecontrollinginput" value="'.$this->csv_array[$i]->Probenname.'" /></td></tr>';
				echo '<tr><td>Bemerkung</td><td><input type="text" name="probenbemerkung" class="tablecontrollinginput"  /></td></tr>';

				echo "</table>";
				//Ende des Tab-Contents

				echo '</form>';
				echo '<div style="min-height: 40px;" id="Con_for_Btn_'.$this->csv_array[$i]->Probennummer.'">';

				echo '<button name="Button'.$this->csv_array[$i]->Probennummer.'" style="float: right; padding: 4px 0px;" onclick="SetValues(document.getElementById('."'" . 'form_'.$this->csv_array[$i]->Probennummer."'),'tabs-".$this->csv_array[$i]->Probennummer."')".'">In Datenbank eintragen</button>';
				echo '</div>';

				echo '</div>';

				$result = mysql_query($sql);

				if(!result)
				die('Ungültige Abfrage: ' . mysql_error());
			}
		}




		//#####################################################
		//#####################################################


		mysql_close($con);
	}

	private function CSV_IntoTmpDB2()
	{
		$con = mysql_connect("localhost", "root", "");
		if (!$con)
		return false;

		$select = mysql_select_db("labor");
		if (!select)
		return false;

		$sql = "INSERT INTO sbs_daten_tbl (value, werozuordnung_id) VALUES ";

		echo '<table>';
		echo '<tr><th style="width: 400px; ">Name</th><th style="width: 400px; ">Wert</th></tr>';

		for($i = 2; $i < count($this->csv_array); $i++)
		{
			for($j = 4; $j < count($this->csv_array[$i]); $j++) //beginnt bei der 5. Spalte
			{
				$this->csv_array[$i][$j] = str_replace(',', '.', $this->csv_array[$i][$j]);
// 				if($i > 2)
// 				{
// 					$this->csv_array[$i][$j] = str_replace('.', '', $this->csv_array[$i][$j]);
// 				}
				if($this->csv_array[$i][$j] != "" && $this->csv_array[$i][1] != "") //damit werden alle leeren Elemente entfernt bzw. nicht eingetragen
				{

					if($i +1 == count($this->csv_array))
					{
						if($sql != "INSERT INTO sbs_daten_tbl (value, werozuordnung_id) VALUES ")
						$sql .= ", (".$this->csv_array[$i][$j].", '".$this->csv_array[$i][1]."') ";
						else
						$sql .= "(".$this->csv_array[$i][$j].", '".$this->csv_array[$i][1]."') ";

						if($this->uebersetzungs_array[$this->csv_array[$i][1]]!= "")
						{
							echo '<tr><td style="border-bottom: 1px solid #ddd;">'.$this->uebersetzungs_array[$this->csv_array[$i][1]].'</td>';
							echo '<td style="border-bottom: 1px solid #ddd;"><input class="tablecontrollinginput" type="text" name="'.$this->csv_array[$i][1].'" value="'.$this->csv_array[$i][$j].'"/></td></tr>."\n"';
						}
					}
					else
					{
						if($sql != "INSERT INTO sbs_daten_tbl (value, werozuordnung_id) VALUES ")
						$sql .= ", (".$this->csv_array[$i][$j].", '".$this->csv_array[$i][1]."')";
						else
						$sql .= "(".$this->csv_array[$i][$j].", '".$this->csv_array[$i][1]."') ";
						if($this->uebersetzungs_array[$this->csv_array[$i][1]]!= "")
						{
							echo '<tr><td style="border-bottom: 1px solid #ddd;">'.$this->uebersetzungs_array[$this->csv_array[$i][1]].'</td>';
							echo '<td style="border-bottom: 1px solid #ddd;"><input class="tablecontrollinginput" type="text" name="'.$this->csv_array[$i][1].'" value="'.$this->csv_array[$i][$j].'"/></td></tr>'."\n";
						}
					}
						
				}

			}
		}

		echo '</table>';

		$result = mysql_query($sql);

		if(!result)
		die('Ungültige Abfrage: ' . mysql_error());


		mysql_close($con);

	}


	/**
	 * Löscht ein leeres Element in einem Array
	 * @param 1D-Array $zeile
	 * @return 1D-Array
	 */
	private function DeleteEmptyColumns($zeile)
	{
		for($i = 0; $i < count($zeile); $i++)
		{
			if($zeile[$i] != "")
			{
				$output[] = $zeile[$i];
			}
		}
		return $output;
	}

	private function ReplaceNull($zeile)
	{
		for($i = 0; $i < count($zeile); $i++)
		{
			if($zeile[$i] != "")
			{
				$output[$i] = str_replace('.', '', $zeile[$i]);
				$output[$i] = str_replace(',', '.', $output[$i]);
				$output1[$i] = str_replace(array('-/-', '<'), '', $output[$i]);
			}
		}
		return $output1;
	}

	public function ImportCSVintoTmp($path)
	{
		$this->read_csv($path);
		$this->CSV_IntoTmpDB();
		return true;
	}

	private function MoveImportedCSV()
	{

	}

	public function Import_TmpDB_intoDB()
	{

	}
}
```


----------



## Ch (7. Februar 2012)

Auf die Schnelle finde nirgends die Ausgabe? Der entsprechende teil vom Js wo du den Request holst fehlt auch.


----------



## FipsTheThief (7. Februar 2012)

Also wenn die Datei über Ajax übertragen wird, Dateiuploads über Ajax gehen ja und diese Datei drüben ankommt was sie auch tut denke ich. 

Dann ist das Problem a) auf Serverseite zu suchen oder b) irgendwas läuft beim IE falsch. Einfach mal noch andere browser durchtesten.

Opera, Chrome, Safari, und mit dem IE Tester alle anderen Versionen vom IE. Da könntest schon einmal einschränken. Wenn es dann immer nur noch im FF geht ist es merkwürdig. 
Sollte es nur im IE ( ich rede da von den älteren Versionen wie den 6er) nicht geht dann ist das Problem eindeutig dort zu suchen. 

1 Mögliche Ursache wäre natürlich das der sich da mit dem Charset sich irgendwie verhaspelt und alles kaputt geht dadurch.


----------



## Ch (7. Februar 2012)

Also ich steige hier dann aus, die Infos sind einfach zu wenig. Erstelle doch mal ein Test case und poste mal den Link.


----------

