php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 06-02-2008, 17:20
erikbln
 Registrierter Benutzer
Links : Onlinestatus : erikbln ist offline
Registriert seit: Feb 2007
Beiträge: 45
erikbln ist zur Zeit noch ein unbeschriebenes Blatt
Standard Root-Verzeichnis global festlegen

Hallo Forum,

gibt es eine gute Möglichkeit, ohne absoluten Pfad (also ohne Domain) für sämtliche PHP-Aktionen dasselbe Root-Verzeichnis anzugeben, das auch ein Browser nimmt, wenn z.B. href="/kontakt.html" geklickt wird? Man sollte dies nur einmal angeben müssen.

Danke & Grüße,
Erik

Geändert von erikbln (06-02-2008 um 17:23 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 06-02-2008, 17:23
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

$_SERVER['DOCUMENT_ROOT'] wäre ev etwas für dich. Wobei das dann aber ein absoluter Pfad wäre
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #3 (permalink)  
Alt 06-02-2008, 17:37
erikbln
 Registrierter Benutzer
Links : Onlinestatus : erikbln ist offline
Registriert seit: Feb 2007
Beiträge: 45
erikbln ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke für die schnelle Antwort. Das hatte ich schon ein paar Threads weiter unten gesehen, aber wie würde ich das konkret umsetzen? Ich würde halt gerne einmal zu Beginn meiner config.php festlegen, von welchem Verzeichnis z.B. bei include('/inc/kontakt.php'); ausgegangen werden soll (d.h. dies soll gleichbedeutend sein mit domain.de/inc/kontakt.php), und es sollte auch lokal mit xampp funktionieren.
Mit Zitat antworten
  #4 (permalink)  
Alt 06-02-2008, 17:46
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
von welchem Verzeichnis z.B. bei include('/inc/kontakt.php');
Bei einem Linux/Unix wird in diesem Fall versucht von / auszugehen. Das wird dir bei einem Hoster aber Fehlermeldungen um die Ohren hauen weil du keine Berechtigung hast ausserhalb deines Webauftritts auf Dateien zuzugreifen und ggf existiert dieser Pfad ja nicht.
Für includes sollte man immer absolute Pfade wählen und da bietet sich
PHP-Code:
include($_SERVER['DOCUMENT_ROOT'].'/inc/kontakt.php'); 
an v.a. weil es dann auch auf einem Windows funzen wird.
Allenfalls könntest du via php.ini den include Pfad ergänzen...
Ich für meinen Teil bevorzuge jedoch die Lösung mit Server + Doc Root

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #5 (permalink)  
Alt 06-02-2008, 18:07
erikbln
 Registrierter Benutzer
Links : Onlinestatus : erikbln ist offline
Registriert seit: Feb 2007
Beiträge: 45
erikbln ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Super, das funktioniert schonmal, vielen Dank. Allerdings muss ich das bei jedem include erneut angeben, oder gibt es auch die Möglichkeit, es nur einmal global zu tun, um Redundanz zu vermeiden?

Der nächste Schritt ist die Einbindung von Grafiken, für die ich mir eine kleine Funktion geschrieben habe. Ist eigentlich selbsterklärend, und funktioniert auch, aber ist das Eurer Meinung nach gut gelöst? Auch hier ist der Slash, mit dem der Pfad beginnt, der "Knackpunkt". $img_pfad bekommt halt z.B. den Wert '/fotos/01.jpg'.

PHP-Code:
function single_img($img_pfad$alt_text) {
$size getimagesize($_SERVER['DOCUMENT_ROOT'].$img_pfad);
echo 
'<img src="'.$img_pfad.'" alt="'.$alt_text.'" '.$size[3].' />';

Mit Zitat antworten
  #6 (permalink)  
Alt 06-02-2008, 21:28
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Auch hier ist der Slash, mit dem der Pfad beginnt, der "Knackpunkt". $img_pfad bekommt halt z.B. den Wert '/fotos/01.jpg'.
Wieso Knackpunkt? Pfade für die Clients finde ich persönlich am besten mit / also pseudoabsolut
So funzt es auf der lokalen Testkiste wie im Web und der Pfad sagt auch mehr als ../../../bla/file.txt
Und wegen der Redundanz beim serverseitigen include mit $_SERVER['DOCUMENT_ROOT'] würde ich mir keine Sorgen machen.
Mit der "richtigen" IDE tippst du eh nur '$_S' ENTER 'DO' ENTER (ich glaube sogar 'D' reicht, weil es imho keine weitere Servervar gibt die mit D beginnt).
Ein Hoch auf die Codevervollständigung

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #7 (permalink)  
Alt 06-02-2008, 21:56
erikbln
 Registrierter Benutzer
Links : Onlinestatus : erikbln ist offline
Registriert seit: Feb 2007
Beiträge: 45
erikbln ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Wieso Knackpunkt?
Das schrieb ich nur deswegen, weil es durch den Slash erstmal nicht mehr gleich behandelt wird (denn der Browser deutet das ja anders als es PHP auf dem Server tut), aber dank DOCUMENT_ROOT gibt es dann ja doch wieder dasselbe Ergebnis.
Zitat:
Pfade für die Clients finde ich persönlich am besten mit / also pseudoabsolut
Ja, unbedingt, ich mache das nur so.
Zitat:
Mit der "richtigen" IDE tippst du eh nur '$_S' ENTER 'DO' ENTER (ich glaube sogar 'D' reicht, weil es imho keine weitere Servervar gibt die mit D beginnt).
Stimmt, aber ich kann ja auch zu Beginn der config.php einfach eine Variable erstellen und dann mit dieser weiterarbeiten:
PHP-Code:
$root $_SERVER['DOCUMENT_ROOT']; 
Mit Zitat antworten
  #8 (permalink)  
Alt 06-02-2008, 22:05
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

noch einfacher geht's mit ...

PHP-Code:
// konstante definieren
define('LOC_REAL'dirname(__FILE__));
// path settings for includes    
ini_set('include_path'LOC_REAL); 
^^ muss in deine config eingebunden werden, welche sich im project-root befindet.

einbinden kannst du dann weitere dateien so ....
PHP-Code:
include_once './path/to/file.php'
die pathangabe bezieht sich dabei relativ auf den include_path.

um ansonsten auf den path zugreifen zu können, arbeite mit der konstante ...

z.b.
PHP-Code:
$size getimagesize(LOC_REAL.$img_pfad); 



EDIT:
noch was angepasst. ;-)
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |



Geändert von Abraxax (06-02-2008 um 22:08 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 06-02-2008, 22:05
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Stimmt, aber ich kann ja auch zu Beginn der config.php einfach eine Variable erstellen und dann mit dieser weiterarbeiten:
Klar kannst du das, nur hast du genau gleich viel Redundanz
Vermutlich würde der Code dann sogar ein oder zwei tausendstel Sekunden langsamer, weil erst eine Var erstellt und ein Wert zugewiesen werden muss.
@Haxe
Das ist echt ne geile Lösung
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

Geändert von jahlives (06-02-2008 um 22:07 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 06-02-2008, 22:09
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

hab noch was bearbeitet. ;-)
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #11 (permalink)  
Alt 06-02-2008, 22:16
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du läufst am späten Abend ja zur Hochform auf
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #12 (permalink)  
Alt 06-02-2008, 22:20
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

*gg*

ich verwende das so oder so ähnlich in einem projekt .-)

aber das ist alles nur für den serverseitigen teil.

wenn du nun LOC_HTTP z.b. haben willst, musst du das ganze von hand angeben.

einen optimalen weg / den heiligen gral zur automatischen ermittlung habe ich noch nicht gefunden.
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #13 (permalink)  
Alt 06-02-2008, 22:24
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
einen optimalen weg / den heiligen gral zur automatischen ermittlung habe ich noch nicht gefunden.
OffTopic:

Wenn du ihn gefunden hast würde ich ihn patentieren lassen und in sauteuren Volumenlizenzen verhöckern


Gruss und gut's Nächtle
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #14 (permalink)  
Alt 06-02-2008, 22:36
Abraxax
  THE REAL HAXE (Administrator)
Links : Onlinestatus : Abraxax ist offline
Registriert seit: Jul 2002
Ort: neuss.nrw.de
Beiträge: 22.623
Abraxax befindet sich auf einem aufstrebenden Ast
Standard

hier mal ein ansatz ...

PHP-Code:
// basic settings http
define('LOC_HTTP_TMP''/'.str_replace($_SERVER['DOCUMENT_ROOT'], ''LOC_REAL));
define('LOC_HTTP', ( LOC_HTTP_TMP == '/' '' LOC_HTTP_TMP )); 
evtl gibt's eine besser lösung.
__________________
INFO: Erst suchen, dann posten! | MANUAL(s): PHP | MySQL | HTML/JS/CSS | NICE: GNOME Do | TESTS: Gästebuch | IM: Jabber.org |


Mit Zitat antworten
  #15 (permalink)  
Alt 07-02-2008, 00:54
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Interessant wird das ganze bei der Url - ich finde es ist wesentliche weniger Fehleranfällig überall mit einer absoluten Url zu arbeiten:
PHP-Code:
'http://' $_SERVER['SERVER_NAME'] .
   
mb_substr(urldecode($_SERVER['REQUEST_URI']),0,-(mb_strlen($_SERVER['PATH_INFO']))) . '/'
Zufrieden bin ich damit aber auch noch nicht ganz ...
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:50 Uhr.