blank in hyperlinks werden nicht interpretiert

Alles, was den Apache betrifft, kann hier besprochen werden.

blank in hyperlinks werden nicht interpretiert

Postby cng » 13. December 2005 08:07

hallo zusammen

ich betreue nebenbei eine informationsplattform, in welcher mitarbeiter in
den verschiednen abteilungen dokumente abspeichen können. da dies alles
word- und excelbenuzer sind, habe ich mich entschlossen, dass die daten im
format *.mht abgespeichert werden soll. mit hilfe eines php-scriptes lese ich
die daten aus den ordnern und hinterlege die als link auf den ensprechenden
seiten. so muss ich nicht mehr alles manuel machen, sondern wird automatisiert.

normalerweise verwende ich linux, aber hier musste ich winxp mit apache 2.0.52
php 4.3 und mysql verwenden.

ich habe nun das problem, dass die dateinamen der mitarbeiter auch leerschläge
enthalten und ich das format *.mht mit dem absoluten pfad aufrufen muss.

bei mir auf dem testsystem mit apache 2.0.49 funktioniert dies problemlos,
aber auf dem scharfen system geht es nicht. ich fand bis jetzt weder in
eimem php-forum, noch auf dem internet hinweise dafür. ich habe auch die httpd.conf verglichen.

kann es an der version von apache liegen? hat jemand eine idee, was ich machen kann?
ich habe mir auch schon überlegt, von 2.0.52 auf 2.0.49 zu wechseln.

ich danke für eure hilfe

gruss
michael
User avatar
cng
 
Posts: 11
Joined: 13. December 2005 07:46
Location: Bolligen / Bern / Schweiz

Postby deepsurfer » 13. December 2005 15:44

bei mir auf dem testsystem mit apache 2.0.49 funktioniert dies problemlos,
aber auf dem scharfen system geht es nicht.

Was geht da nicht ?
- der aufruf
- das abspeichern

Hättest du mal eine Fehlermeldung, dann kann man eher nach schauen wo eventuell einstellungen zu machen sind.
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby cng » 13. December 2005 17:18

ich habe eine informationsplattform, welche dokumentationen diverser
applikationen beinhaltet. z.b. ein ordner heisst adobe acrobat
(C:/webserver/dokumente/adobe acrobat/) in diesem ordner befinden
sich z.b 30 dokumente, welche im dateinamen auch blanks beinhalten.
wenn ich nun im menü software den eintrag adobe acrobat anwähle,
kommt die meldung, dass die seite nicht gefunden werden kann, weil
dann der pfad localhost/dokmente/adobe heisst. es sollte aber
localhost/dokumente/adobe acrobat/ heissen.

wenn ich die indexseite in diesem ordner direkt aufrufe, werden die
blanks in der url mit %20 ausgefüllt. die seite wird so angezeigt und
sämtliche dokumente werden dann als hyperlink angezeigt (ein php-script
erstellt die hyperlinks). klicke ich nun auf die dokumente, pasiert nichts.

mein webserver kann ordner- und dateinamen die blanks enthalten
nicht interpretieren. ich habe in der zwischenzeit den apache und php in
der gleichen version installiert, wie es auch auf dem testsystem installiert
ist.

ich habe die config-dateien auch ersetzt und suchte nach hinweisen. der
einzige unterschied den ich noch gefunden habe ist, dass ich auf dem
testsystem sp1 habe, und auf dem hauptsystem sp2. ich kann mir aber
nicht vorstellen, dass dies ein grund sein könnte. auf dem scharfen sytem
ich noch htaccess aktiviert.

sorry, es ist nicht leicht, dies erständlich zu erklären. ich hoffe, dass man
meine erklärung folgen kann.

ich danke für jeden hinweis.

gruss
michael
User avatar
cng
 
Posts: 11
Joined: 13. December 2005 07:46
Location: Bolligen / Bern / Schweiz

Postby deepsurfer » 13. December 2005 18:29

Ich kann jetzt falsch liegen, aber spontan fällt mir nur ein das in deinem PHPscript, was ja ein LINK aus dem Inhalt des Pfades generiert, die "space" angaben mit einem Zeichen vertauscht werden z.b. mit einem unterstrich und dieses dann sichtbar wird..

Ich hab zwar danach etwas herumgegooglet aber bisher kein eindeutiges Beispiel gefunden.

Auf diese Idee aufbauen fällt mir noch mod_rewrite ein oder im Script die Funktion einbauen, das eine Datei im Pfad die spaces getauscht werden und diese Datei dann wieder abgespeichert wird (rename funktion).

Was sagen die PHP Gurus hier aus dem Forum ??
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby cng » 13. December 2005 20:21

ich habe zwar meine seiten kontroliert, werde morgen nachmittag
aber nochmal alles checken. da die strucktur des webs auf dem system
anders aufgebaut ist als auf meinem testsystem, könnte ja ein fehler
bestehen. dass aber grundsätzlich am script was falsch icht, bezweifle ich,
da es ja auf dem testsystem einwandfrei funktioniert. dort haben ordner- und
dateinamen blanks drin.

danke und gruss
michael
User avatar
cng
 
Posts: 11
Joined: 13. December 2005 07:46
Location: Bolligen / Bern / Schweiz

Postby cng » 14. December 2005 11:12

leider bin ich nicht viel weiter gekommen.

1) ordnernamen mit blanks werden definitiv nicht erkannt. sobald ich
den ordnernamen ohne blanks erstelle, werden die dokumente aus diesem ordner auf der seite hinterlegt

2) klicke ich nun die hyperlinks an, funktiniert immer noch absolut nichts.
auf meinem testsystem geht es. ich habe das script kopiert und den pfad
angepasst.

hier noch das script, vieleicht mache ich ja doch was falsch:
Code: Select all
<?
  $verz = opendir ('C:/webserver/Dokumente/AdobeAcrobatElements/');
         echo "<table width='700'  border='0' cellspacing='2' cellpadding='2'>";
       echo "<tr>";
       echo "<td colspan='3' bgcolor='#DDEAF4'><strong>&nbsp;Information:</strong>";
       echo "</td>";
       echo "</tr>";
  while ($file = readdir ($verz))
  {
      if($file != "." && $file != "..")
      {
         $name = substr($file, 0, -4);
       echo "<tr>";
       echo "<td bgcolor='#DDEAF4'>&nbsp;<a href='C:/webserver/Dokumente/AdobeAcrobatElements/$file' target='_self'>$name</a><br /></td>";
       echo "</tr>";
      }
  }
  closedir($verz);
         echo "</table>";
?>


EDIT1: ich muss mich doch korrigieren. auch das mit den ordnernamen
welche blanks enthalten funktioniert auf meinem testsystem.
hier das funktionierende script:
Code: Select all
<?
  $verz = opendir ('C:/Dokumentationen/@erledigt/Adobe Acrobat Elements/');
         echo "<table width='700'  border='0' cellspacing='2' cellpadding='2'>";
       echo "<tr>";
       echo "<td colspan='3' bgcolor='#DDEAF4'><strong>&nbsp;Information:</strong>";
       echo "</td>";
       echo "</tr>";
  while ($file = readdir ($verz))
  {
      if($file != "." && $file != "..")
      {
         $name = substr($file, 0, -4);
       echo "<tr>";
       echo "<td bgcolor='#DDEAF4'>&nbsp;<a href='C:/Dokumentationen/@erledigt/Adobe Acrobat Elements/$file' target='_self'>$name</a><br /></td>";
       echo "</tr>";
      }
  }
  closedir($verz);
         echo "</table>";
?>


was nun?
User avatar
cng
 
Posts: 11
Joined: 13. December 2005 07:46
Location: Bolligen / Bern / Schweiz

Postby Wiedmann » 14. December 2005 21:37

Nur exemplarisch:
<a href='C:/webserver/Dokumente/AdobeAcrobatElements/$file' target='_self'>$name</a>

So ein "Link" kann ja nur lokal auf deinem Testrechner funktionieren. Online auf dem richtigen Server sieht das hoffentlich anders aus. Ansonsten funktioniert das auch ohne das Leerzeichenproblem nicht.

Problem eins:
Was ist ein Link mit dem ein Browser ein Dokument über den Webserver abruft?
http://de.selfhtml.org/html/verweise/projektintern.htm

Problem zwei:
Was die Leerzeichen und sonstige Sonderzeichen angeht:
http://de.php.net/manual/en/function.rawurlencode.php
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby cng » 14. December 2005 22:25

danke für die info. ich werde dies morgen durchlesen.

bei beiden systemen handelt es sich um clients, welche nur aus dem
lokalen geschäftsnetzwerk erreichbar sind. von aussen (internet) sind
die nicht erreichbar. zur zeit funktioniert der generierte hyperlink nur
auf dem testsystem, auf dem eigentlichen "intranet" funktioniert dies
leider noch nicht. wenn ich auf den link zeige, stimmt der pfad, aber bei
einem klick passiert absolut nichts. ich kann mir aber nicht erklähren,
warum dies nicht funktiniert.

nebenbei. privat betriebe ich einen linux-webserver mit allem drum und
dran. soweit habe ich ein ~geringes verständnis~

danke und gruss
michael
User avatar
cng
 
Posts: 11
Joined: 13. December 2005 07:46
Location: Bolligen / Bern / Schweiz

Postby Wiedmann » 14. December 2005 22:41

zur zeit funktioniert der generierte hyperlink nur
auf dem testsystem, auf dem eigentlichen "intranet" funktioniert dies
leider noch nicht.

Wie gesagt, deine Links sind eigentlich solche:
Code: Select all
<a href="file://C:/foo/bar.txt">bar.txt</a>

Sprich: Wenn ein Browser auf so einen Link klickt, öffnet er die Datei direkt im Dateisystem und nicht über den Server (wie ein Doppelklick im Explorer, Nautilus etc.). Das funktioniert natürlich nur zufällig, wenn sich de Server, der Client und die Dateien auf dem selben Rechner befinden.

Tatsächlich sind die Dateien ja auf dem Serverrechner und der Client kann sie also auf seiner lokalen Platte nicht finden. Deshalb sollte so ein Link so aussehen:
Code: Select all
<a href="http://server/foo/bar.txt">bar.txt</a>
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby cng » 15. December 2005 09:31

ich habe als test mal einen ordner mit dokumenten innerhalb von htdocs
angesteuert. auch so geht es nicht. htaccess kann ja wohl nicht schuld sein
oder?
wie schon geschrieben, funktioniert es auf der einen maschine, auf der andern
jedoch nicht. ich werde am nachmittag mal die webumgebung deinstallieren
und dann neu installieren, exakt mit den versionen etc. wie ichs auf dem
funktionierenden system habe.

der grund meiner bockigkeit ist, dass ich die M$ dateien nur dann öffnen kann,
wenn ich sie absolut anspreche. alle user arbeiten mit word und excel. sie
sind bereit, dies im mht-format abzuspeichern, welches der vorteil hat,
dass alle dateien in einer verpackt sind und jederzeit wieder im word usw.
geöffnet werden können. so ist es auch möglich, dass ich die
dokumentationspflege automatisieren kann. leider ist die funktinierende
maschine mein arbeitsinstrument und die gebe ich nicht einfach so frei (man
hinterlässt ja spuren ) :D
User avatar
cng
 
Posts: 11
Joined: 13. December 2005 07:46
Location: Bolligen / Bern / Schweiz

Postby cng » 16. December 2005 11:13

ich habe nun eine gleichwertige maschine genommen wie ich sie habe.
der einzige unterschied ist nur noch das servicepack von windows.
die haben bei uns irgend etwas daran geändert, da es mit sp1 auf
meiner maschine geht und auf den maschinen mit sp2 nicht.

ich versuchte auch herauszufinden, wie ich mein script abändern müsste,
damit das mit dem rawurlencode versuchen könnte. leider werde ich ab
diesem beispiel nicht schlau sorry :oops:
User avatar
cng
 
Posts: 11
Joined: 13. December 2005 07:46
Location: Bolligen / Bern / Schweiz

Postby cng » 16. December 2005 12:37

ich nochmals. nun ist klar, dass sp2 von windows XP schuld ist.
bei zwei maschinen mit sp1 geht es, mit zwei sp2er geräte nicht.

aber wo suche?
User avatar
cng
 
Posts: 11
Joined: 13. December 2005 07:46
Location: Bolligen / Bern / Schweiz

Postby cng » 16. December 2005 13:10

ich habe in der zwischenzeit mit einem softwaretypen gesprochen. der meint,
dass ich mein php script sp2-tauglich programmieren müsse. aber wie?

kann mir jemand helfen? ich bin php-anfänger.
User avatar
cng
 
Posts: 11
Joined: 13. December 2005 07:46
Location: Bolligen / Bern / Schweiz


Return to Apache

Who is online

Users browsing this forum: No registered users and 33 guests