Hi Leute....
die PHP-Funktion "include" ist ja ansich genjal... nur finde ich ziemlich kurriose dinge:
versuche ich mein GB (ist ein installiertes Script) in meine Contentbox zu includen so wird die Site zerrissen dargestellt (Trotz CSS overflow: auto in der entsprechenden Box) zudem werden die Captchas nicht angezeigt. Stattdessen nur ein "x" für fehlende Grafiken
weiteres nicht so schönes ist:
Der Zeichensatz (bei mir generell UTF-8) wird nicht beim includen übernommen... folglich werden alle Umlaute mit "?" bzw quadern dargestellt....
gibt es da einen Trick wie man solche Probleme umgehen kann?
MFG
Stefan
Seite 1 von 1
[php][include] Nur Bedingt Möglich?
Anzeige
#2
geschrieben 06. August 2009 - 11:03
Da du schreibst, es ist ein fertig installiertes Skript, dann wird das bestimmt auch eine komplette HTML Ausgabe mit <html><head>...</head><body>...</body></html> usw. machen. In einer "Contentbox" darf das jedoch nicht so sein. Hier müsstest du das Skript abändern.
Das die Captchas nicht geladen werden, wird daran liegen, dass du durch das includen eine andere relative URL-Basis bekommst. Z.B. wird vielleicht versucht das Captcha unter / zu laden, obwohl das Gästebuch im Ordner /gb/ liegt.
Wenn das so der Fall ist, dann musst du das Skript so bearbeiten, dass durch das Einbinden per include wieder eine sinnvolle HTML Ausgabe entsteht.
Wegen den Umlauten: Sind die Dateien um UTF-Format abgespeichert und gibt deine Seite die Info aus, dass sie UTF enkodiert ist? Zur Not lässt du einfach die Umlaute mit ihrem HTML Namen ersetzen.
Das die Captchas nicht geladen werden, wird daran liegen, dass du durch das includen eine andere relative URL-Basis bekommst. Z.B. wird vielleicht versucht das Captcha unter / zu laden, obwohl das Gästebuch im Ordner /gb/ liegt.
Wenn das so der Fall ist, dann musst du das Skript so bearbeiten, dass durch das Einbinden per include wieder eine sinnvolle HTML Ausgabe entsteht.
Wegen den Umlauten: Sind die Dateien um UTF-Format abgespeichert und gibt deine Seite die Info aus, dass sie UTF enkodiert ist? Zur Not lässt du einfach die Umlaute mit ihrem HTML Namen ersetzen.
#3
geschrieben 06. August 2009 - 11:24
Zitat (Diewie: 06.08.2009, 12:03)
Da du schreibst, es ist ein fertig installiertes Skript, dann wird das bestimmt auch eine komplette HTML Ausgabe mit <html><head>...</head><body>...</body></html> usw. machen. In einer "Contentbox" darf das jedoch nicht so sein. Hier müsstest du das Skript abändern.
da muss ich erstmal schauen wo das script selbst hinterlegt ist.... dachte bin mal faul und nutze das vom Provider vorinstallierte
Aber werd dem mal nachgehen.
Zitat
Das die Captchas nicht geladen werden, wird daran liegen, dass du durch das includen eine andere relative URL-Basis bekommst. Z.B. wird vielleicht versucht das Captcha unter / zu laden, obwohl das Gästebuch im Ordner /gb/ liegt.
verstehe ich nicht ganz... die relativen Pfade ändern sich doch nicht.
oder habe ich da was bei "include" missverstanden? solange ich so oder so die URL wie folgt angebe
http://URL/SCRIPTVERZEICHNIS/SCRIPT&SCHALTER=WASWEISICH
gilt dann nicht automatisch als relativer ausgangsupnkt
SCRIPTVERZEICHNIS/
oder ist der Relative Pfad trotzalledem noch
URL/
Zitat
Wegen den Umlauten: Sind die Dateien um UTF-Format abgespeichert und gibt deine Seite die Info aus, dass sie UTF enkodiert ist? Zur Not lässt du einfach die Umlaute mit ihrem HTML Namen ersetzen.
jupp ist deklariert als UTF.... dieses Problem taucht wie gesagt idr in den include-Files auf die quasi als Rohdaten eingefügt werden...
und selbst
http://validator.w3.org/check?uri=http%3A%...ine&group=0
meldet, dass die Seite "Full 4.1 Strict" ist. Sprich die Zeichenkodierung "UTF-8" welche ich eingestellt habe wird richtig interpretiert.
so entsprechend eingefügt (NUR IN DER INDEX.PHP welche als Ausgangspunkt für alle Includes dient)
<!-- Meta-Angaben --> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="author" content="Stefan Geschwind">
#4
geschrieben 07. August 2009 - 15:52
Soweit ich weiß wird als Pfad der Dateien, die in der mit include aufgerufenen Datei relativ eingebunden sind, mit include() tatsächlich zu dem der Datei, in der die Datei eingebunden wurde. ^^
Zumindest ists mir letzens so gegangen als ich eine externe Datei includen wollte, sämtliche Bilddateien wollten dann nichtmehr vom Server der Datei sondern von meinem Server aufgerufen werden. :/
Zumindest ists mir letzens so gegangen als ich eine externe Datei includen wollte, sämtliche Bilddateien wollten dann nichtmehr vom Server der Datei sondern von meinem Server aufgerufen werden. :/
#5
geschrieben 07. August 2009 - 16:37
Zitat (Dommix: 07.08.2009, 16:52)
Soweit ich weiß wird als Pfad der Dateien, die in der mit include aufgerufenen Datei relativ eingebunden sind, mit include() tatsächlich zu dem der Datei, in der die Datei eingebunden wurde. ^^
ach du heiliger Jesus... nun hab ich aber Synapsen-Muskel-Karter
Zitat
Zumindest ists mir letzens so gegangen als ich eine externe Datei includen wollte, sämtliche Bilddateien wollten dann nichtmehr vom Server der Datei sondern von meinem Server aufgerufen werden. :/
Na da bin ich ja wenigstens nicht alleine
#6
geschrieben 31. August 2009 - 09:17
das ist sogar ganz doll mit Absicht so und auch ganz richtig. In den manchen Fällen sind remote includes, also Includes von entfernten Maschinen auch überhaupt garnicht erlaubt und vom Provider deaktiviert.
Thema verteilen:
Seite 1 von 1