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

+ wird im Text herausgenommen

Status
Für weitere Antworten geschlossen.

andynail

Mitglied
Hallo zusammen

ich würde gerne mit meiner Seite Dateien öffnen und dafür verwende ich eine PHP Datei, die mit folgendem Link aufgerufen wird:

<a href="javascript:location.href='Open.php?Pfad=der/auf c + Unterlagen&Datei=Dateiname.txt&Seite=' + location.href">Kontakt + Unterlagen</a>

Und jetzt erhalte ich aber stets von Notepad die Meldung das dieses Verzeichnis nicht existiere. Und jetzt schrieb ich in die open.php mit echo den Code zum ausführen von javascript und lasse mir das Verzeichnis mit echo "alert('$Filename')"; ausgeben. Und jetzt erhalte ich das Verzeichnis ohne das + Zeichen.

Wie bleibt bitte das + Zeichen drinen um das Verzeichnis öffnen zu können?

Danke gruß Andreas
 
Hättest du für uns noch deine PHP-Datei, dann würde es leichter zu verstehen sein, was du genau machen willst.

So steht der Link aber nicht in deiner Datei oder? Hast du ein Konkretes beispiel, am besten die Datei in der Link steht?
HTML:
<a href="javascript:location.href='Open.php?Pfad=der/auf c + Unterlagen&Datei=Dateiname.txt&Seite=' + location.href">Kontakt + Unterlagen</a>
 
Hallo

doch der Link steht so in einer html Datei. Und der Code der php Datei open.php sieht so aus:

Code:
<?php

$laufwerk = substr($_SERVER['DOCUMENT_ROOT'],0,1);
$pfad = $_GET['Pfad'];
$datei = $_GET['Datei'];
$seite = $_GET['Seite'];

$teile = explode('/', $seite);

$seite = $teile[count($teile)-1];
$Bereich = $_GET['b'];
$Suchen = $_GET['s'];
$Index = $_GET['Index'];

header("Location:http:/Startseite/$seite&b=$Bereich&name=$DBName$Bereich&s=$Suchen&Index=$Index");

$Filename = "$laufwerk:/$pfad/$datei";
echo "<script type='text/javascript'>";
echo "alert('$Filename')";
echo "</script>";


if (file_exists($Filename))
{
system("%windir%\\notepad.exe $Filename");
}
else
{
$Filename = "$laufwerk:/Dokumente/$datei";
system("%windir%\\notepad.exe $Filename");
}

?>
Ich will hier nur nicht den Dateinamen und die Verzeichnisstruktur preis geben.

Gruß Andreas
 
Okay nochmal ne kurze Verständnisfrage:
Welchen zweck soll das ganze haben? Was willst du denn damit durchführen? Mir fehlt gerade Absolut der Sinn.

Angenommen substr($_SERVER['DOCUMENT_ROOT'],0,1 = C
Dann ist $Filename = 'C:/der/auf/Dateiname.txt'

Es gibt keine Leerzeichen in einer URL, sondern nur %20. Warum eigentlich Javascript?
PHP:
echo '<a href="' . urlencode ('Open.php?Pfad=der/auf c + Unterlagen&Datei=Dateiname.txt&Seite=' . $_SERVER['PHP_SELF']) . '">Kontakt + Unterlagen</a>';

Hoffe ich konnte dir Weiterhelfen

edit:

Beachte das du deine Variablen auch anders abrufen musst.
PHP:
$pfad = urldecode($_GET['Pfad']);
$datei =  urldecode($_GET['Datei']);
$seite =  urldecode($_GET['Seite']);
 
Zuletzt bearbeitet:
Hallo

die Seite soll nicht ins Netz sondern nur auf meinem Rechner und auf einem USB Stick benutzt werden. Und so frage ich ab von wo aus die Dateien geöffnet werden sollen. Mir ist das mit den Leerzeichen in einer url bekannt. Doch das funktioniert einwandfrei. Und ich verwende javascript damit in diesem iframe wieder die Seite aufgerufen wird aus dieser die open.php aufgerufen wurde, also per Parameter übergeben wird. Und das alles funktioniert ja auch problemlos solange kein + dabei ist.

Hoffe auf weitere Hilfe und im Voraus Dunke Gruß Andreas
 
Ah jetzt verstehe ich es. Ich dachte schon wozu auf nem Server dateien geöffnet werden sollen...

Welcher Iframe?

Probiere mal statt:
PHP:
$Filename = "$laufwerk:/$pfad/$datei";
folgendes aus:
PHP:
$Filename = $laufwerk . ':/' . $pfad . '/' . $datei;

Hab die Vermutung, dass php versucht das + zu interpretieren.

edit

Habe gerade + durch urlencode gejagt und habe festgestellt dass dies %2B ist. Versuchs mal dementsprechend, und nicht vergessen, wieder zu decodieren.
 
Zuletzt bearbeitet:
Hallo

ich probierte es mal in den Link mit %2B und erhalte Leerzeichen. Alle anderen zeigt er an, nur nicht das Plus. Ach Gott wie schlimm so ein Plus. Was jetzt?

Danke gruß Andreas
 
Also wenn du dir sicher bist, dass das + Ordnungsgemäß in die url kommt, dann melde dich mal im php Forum, dort kann glaub ich dir besser geholfen werden. Gib dort am besten wieder den Link an, und folgenden Code:
PHP:
$pfad = urldecode($_GET['Pfad']);
$datei =  urldecode($_GET['Datei']);
$laufwerk = substr($_SERVER['DOCUMENT_ROOT'],0,1);
$Filename = "$laufwerk:/$pfad/$datei";
echo $Filename;
Ich persönlich weiß jetzt nicht mehr woran es noch liegen könnte.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben