Funktion popen() und Umlaute

Schrödi

Mitglied
Hi,

ich habe ein Problem mit popen. Ich möchte die Funktion nutzen, um verschiedene Dateien auf dem Server auszuführen. Mein Problem hierbei sind die Umlaute. Für Pfade und Dateinamen ohne ein Umlaut funktioniert mein Script, nur nicht mit. Leider lassen sich die Umlaute nicht vermeiden. Gibt es eine Lösung für mein Problem?

Mein Code:

Datei 1:

Code:
<?php
session_start();

$allfiles = $_SESSION['array'];
if($_GET['searchstring']==""){
	foreach($allfiles as $file){
		?>
		<a href="#" onClick="ajax_exec('<?php echo dirname($file)."/"; ?>','<?php echo basename($file); ?>')"><?php echo basename($file);?></a><br>
		<?php
	}
}
else{
	foreach($allfiles as $file){
		if(ereg(strtolower  ($_GET['searchstring']),strtolower  (basename($file)))){
			?>
			<a href="#" onClick="ajax_exec('<?php echo dirname($file)."/"; ?>','<?php echo basename($file); ?>')"><?php echo basename($file);?></a><br>
			<?php
		}
	}
}
?>

Datei 2: (Wird über die Funktion ajax_exec aufgerufen und übergibt die Variablen per GET)

Code:
$path = $_GET['path'];
$file = $_GET['file'];
popen("\'".$path.$file."\'", "r");

Gruß Schrodi
 
Hi,

die Funktionen bringen leider nicht den gewünschten Effekt. War auch der falsche Ansatzpunkt: Die Variablen werden über die URL richtig übergeben.

Ich habe jetzt mal getestet, ab wann die Variablen verfälscht werden:

Nachdem ich diese aus der Sessionvariablen raushole werden die Umlaute durch Fragezeichen ersetzt, zumindest im Browser. Schaue ich mir den Quelltext direkt an, sind die Umlaute auch noch Umlaute. Kann mir das nicht erklären.


Gruß Schrodi
 
Hört sich nach einem Konflikt in der Zeichenkodierung an.

In welcher Kodierung sind die Dateien gespeichert und in welcher Kodierung liefert das Skript die Daten aus?
 
Gute Frage, weiß ich nicht.

Die Pfade holt er sich mit den Funktionen dir(), is_dir() und is_file().
Die Ergebnisse werden direkt in einem Array gespeichert.

Hier ist auch noch alles in Ordnung, wenn ich mir das Array ausgeben lasse und von hier aus die Dateien öffnen will funktioniert auch noch alles. Die Umlaute sind auch noch Umlaute, wenn ich es mir mittels HTML ausgebe.
Erst wenn das Array durch die Sessionvariable gelaufen ist, tritt der Fehler auf.

Wie bekomme ich das heraus, in welcher Kodierung die Daten gespeichert sind und wie sie ausgegeben weden?

Gruß
 
Zurück