• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Eine Datei von einem Ordner öffnen der ein + enthält

andynail

Mitglied
Hallo zusammen

meine Webseite ist eine Linksammlung für meinen PC und für meinen USB Stick. Und auf der Webseite gibt es die Möglichkeit Dateien zu öffnen und der Link dafür lautet folgendermaßen:

<a href="javascript:location.href='Open.php?Pfad=KONTAKT + UNTERLAGEN&Datei=Kontakt Job Center Stuttgart.txt&Seite=' + location.href">Kontakt + Öffnungszeiten Job Center</a>

Und der Code der Datei Open.php lautet:

PHP:
<html>
<?php
$laufwerk = substr($_SERVER['DOCUMENT_ROOT'],0,1);
$pfad = urldecode($_GET['Pfad']);
$datei =  urldecode($_GET['Datei']);
$seite =  urldecode($_GET['Seite']); 
$Bereich = $_GET['b'];
$DBName = $_GET['db']; 
$Suchen = $_GET['s'];
$Index = $_GET['Index'];
header("location:$seite&db=$DBName&s=$Suchen&Index=$Index");
$Filename = "$laufwerk:/$pfad/$datei";
echo "<script type='text/javascript'  charset='utf-8' defer='defer'>";
echo "alert(location)";
echo "</script>";
if (file_exists($Filename))
{
system("%windir%\\notepad.exe $Filename");
}
else
{
$Filename = "$laufwerk:/Dokumente/$datei";
system("%windir%\\notepad.exe $Filename");
}
?>
</html>

Jedoch wird das + Zeichen nie angezeigt und die Datei kann somit nicht geöffnet werden. Ich stellte die Frage bereits im Javascript Forum und CGollhardt schrieb das ich es hier mal versuchen sollte.

Und damit bedanke ich mich bereits jetzt für Eure Hilfe.

Danke Gruß Andreas
 
Hallo

ok nur wollte ich nicht herausfinden wie ich urlencode und encodeURIComponent einsetzen soll. Also würde ich mich freuen von Dir ein Beispiel zu bekommen. Und %28 steht schon drin und ich schreibe ja auch echo "alert" und da wird das + angezeigt.

Würde mich also über weitere Hilfe sehr freuen, denn auch wenn ich hier nicht sofort zu stelle bin ist mir diese Funktion schon wichtig. Also vielen Dank im Voraus.

Gruß Andreas
 
Das kann aber nicht sein.
Wenn du ein richtiges header-Location sendest, kann der JavaScript-Code gar nicht ausgeführt werden.

Du musst bereits bei der Liste die URI encoden nicht nur in der open.php
 
Hallo

wenn ich javascript ausführe, dann muß ich bloß vom Texteditor zurück auf meine Seite, und erhalte da erst einmal das alert und die Seite zeigt eine Fehlermeldung und dies kann mir ja jetzt erst einmal egal sein.

Ich komme nicht weiter und würde mich über Code freuen. Denn was ist bitte notwendig wenn es um das encoden geht? Und wie schreibe ich die Zeilen für urlencode oder encodeURIComponent?

Danke gruß Andreas
 
Also, ich verstehe eigentlich nicht, was du machen willst.
Erkläre mal ausführlich, was das sein soll, vielleicht verstehe ich das dann.
 
Hallo Asterixus

auf meiner Webseite, eine Linksammlung für meinen PC und für meinen usb Stick, gibt es auch die Möglichkeit Text Dateien zu öffnen. Und so erstellte ich den oben gezeigten Code der Datei open.php und rufe diese mit folgender Zeile aus einer Linksammlung in einem iframe heraus auf:

<a href="javascript:location.href='Open.php?Pfad=.../KONTAKT %2b UNTERLAGEN/Job Center/&Datei=Kontakt Job Center Stuttgart.txt&Seite=' + location.href">Kontakt + Öffnungszeiten Job Center</a>

Und was der Code der php Datei ja noch zeigt ist, daß erst einmal geprüft wird ob sich die Datei überhaupt auf dem PC befindet oder ob die Datei auf dem usb Stick öffnen soll.

Dies funktioniert auch bei allen Dateien einwandfrei. Doch jetzt habe ich wie zu sehen ist eine Datei die sich in dem Ordner Kontakt + Unterlagen befindet und diese wird nicht gefunden.

Ich wüsste nicht was ich dazu noch mehr schreiben solle, denn damit ist ja meine Situation ereklärt.

Ich bedanke mich bei dir bereits jetzt für weitere Hilfe und freue mich wieder was von dir zu hören.

Gruß Andreas
 
Also, ich verstehe eigentlich nicht, was du machen willst.
Erkläre mal ausführlich, was das sein soll, vielleicht verstehe ich das dann.
Hast du hier:
http://www.html.de/javascript-ajax-und-dhtml/34301-wird-im-text-herausgenommen.html#post254562


Probiere doch mal folgendes zu Testzwecken

Aufrufende Datei:
PHP:
$myLink = 'Open.php?Pfad=der/auf c + Unterlagen&Datei=Dateiname.txt&Seite=' . $_SERVER['PHP_SELF'];
$myLink = urlencode(str_replace("+", md5 ('SymbolPlus'), $myLink));
echo '<a href="' . $myLink . '">Kontakt + Unterlagen</a>';

open.php
PHP:
$pfad = urldecode($_GET['Pfad']);
$pfad = str_replace(md5 ('SymbolPlus'),'+', $myLink);

Wenn das funktioniert, dann kannst du es entweder so lassen, oder dir ne andere Möglichkeit überlegen, das Pluszeichen zu maskieren. + Wird wahrscheinlich in ein Leerzeichen umgewandelt während der Übertragung.

Alternativ probiere es auch einfach nur in der open.php mit:
open.php
PHP:
$pfad = urldecode($_GET['Pfad']);
$pfad = str_replace(' ','+', $myLink);

Ansonsten bin ich jetzt absolut ratlos...

edit
Mist schon wieder zu langsam, das Linkheraussuchen hat wohl mehr Zeit gebraucht wie geplant...
 
Zuletzt bearbeitet:
Hallo CGollhardt

und vielen Dank. Aber ich bitte auch um Entschuldigung das ich mich jetzt erst melde. Es wird also das + in ein Leerzeichen umgewandelt und das ist nicht schön wie ich finde. Und jetzt suche ich also nach 3 Leerzeichen un ersetze das Mittlere durch ein Plus, mit der Zeile die du mir zur Verfügung gestellt hattest. Wenn es noch eine andere Möglichkeit gäbe wäre ich froh drüber, aber bis dahin funktioniert diese Variante auf jeden Fall.

Und dafür nochmals vielen Dank gruß Andreas
PS: Deite Homepage hatte mir gefallen
 
Zurück
Oben