Archiv verlassen und diese Seite im Standarddesign anzeigen : datei von externen domain includieren
matin
03.12.2005, 15:29:04
hallo,
ich bin ziemlich neu in php. ich möchte bei meiner navigation ein dynamisches menü mit untermenüs verwenden. das ganze habe ich mir auch schon gebastelt und funtioniert auch.
nun habe ich aber eine subdomain (bzw. mehrere, für die jeweiligen themenbereiche) und möchte dort auch das menü includieren. nur irgenwie funktioniert das ganze nicht so recht. ich schaffe es nicht, die navigationsdatei "menuenavigation.php" in den subdomains einzubinden (hinweis: ich möchte die datei "menünavigation.php" nur einmal am server speichern müssen):
<?
include('http://www.meinedomain.at/menunavigation.php');
?>
das ganz funzt nicht. was mache ich falsch?
hmmm, aus sicherheitsgründen ist das standardmäßig deaktiviert, dass von externen quellen eine datei includiert werden kann ...
auch bei subdomains dürfte das der grund sein ...
falls du deinen server mit confixx konfigurieren kannst, kann man das da irgendwo umstellen .. wo, weiß ich jetzt leider selbst nicht mehr ...
falls du confixx nicht verfügbar hast oder den punkt nicht findest, frag einfach mal deinen space/server-provider!!!
mfg
xabbuh
03.12.2005, 16:20:19
Liegen die Subdomains auf unterschiedlichen Servern?
matin
03.12.2005, 16:41:25
Liegen die Subdomains auf unterschiedlichen Servern?
nein, wird alles vom selben aus gehandelt. die subdomain ist nur ein "unterverzeichnis".
xabbuh
03.12.2005, 16:42:15
Dann gib den Pfad einfach so an, wie er im Dateisystem ist.
Damir
03.12.2005, 17:29:19
Hi,
damit sollte es gehen.
Entweder nimmst du fopen():
http://www.selfphp.de/funktionsreferenz/dateisystem_funktionen/fopen.php
besser aber noch (so pingen wir unsere CronJobs an - klappt immer!):
<?PHP
function curlStart($domain){
unset($message);
$fp = curl_init($domain);
// Maximale Ausfuehrungszeit
curl_setopt($fp,CURLOPT_TIMEOUT,10);
// Durchlauf abbrechen wenn Server mit einem ERROR > 300 antwortet
curl_setopt($fp,CURLOPT_FAILONERROR,1);
curl_exec($fp);
// letzte Fehlermeldung
if(curl_errno($fp) != 0){
$message[0] = FALSE;
$message[1] = curl_error($fp);
}
else{
$message[0] = TRUE;
$message[1] = "+OK";
}
curl_close($fp);
return $message;
}
$message = curlStart($domain);
if($message[0] == FALSE){
// Fehlermeldung falls nicht erreichbar
echo $message[0];
}
else{
echo $message[1];
}
?>
Bye DAmir
matin
04.12.2005, 20:49:42
@damir
besten dank. aber leider versteh ich das jetzt gar nicht ... hab einfach die idee mit den subdomains fallen lassen und alles unter der hauptdomain laufen ...
xabbuh
04.12.2005, 22:23:19
hab einfach die idee mit den subdomains fallen lassen und alles unter der hauptdomain laufen ...
Warum das? Wenn alle Subdomains auf einem Rechner liegen, ist es kein Problem, die Pfadangabe relativ zum aktuellen Arbeitsverzeichnis bzw. absolut zum Wurzelverzeichnis des Dateisystems anzugeben.
Damir
05.12.2005, 00:13:54
@matin
Einfach die URL zu der Datei eingeben - der Rest wird pewr echo ausgegeben.
@xabbuh
Subdomains laufen aber in der Regel unter anderen User-Rechten als die Hauptdomain- ich weiss aber allerdings nicht wie das bei Webhosting ist.
Bye Damir
matin
05.12.2005, 08:59:35
@matin
Einfach die URL zu der Datei eingeben - der Rest wird pewr echo ausgegeben.
Bye Damir
auf die gefahr hin, dass ich nerve, aber wo muss ich die url eingeben bei dem obigen code?
Damir
05.12.2005, 11:58:09
Hi,
in $domain!!!!
$message = curlStart($domain);
also
$message = curlStart("www.irgendeinedomain.de/meineSeite.php");
Bye Damir
meikel (†)
05.12.2005, 12:45:55
in $domain!
Kennst Du das Script eigentlich? Vielleicht möchte der Fragesteller nicht den HTML Ausstoß sondern das Script inkludieren... <g>
Damir
05.12.2005, 14:37:42
So wie ich es verstanden habe den HTML-Bereich........
Oder ist es anders???
xabbuh
05.12.2005, 15:03:28
@xabbuh
Subdomains laufen aber in der Regel unter anderen User-Rechten als die Hauptdomain- ich weiss aber allerdings nicht wie das bei Webhosting ist.
Achso, das war mir nicht bekannt, dass es überlicherweise so gehandthabt wird. Aber zumindest sollte man sich dann zunächst einmal darüber schlau machen, ob die Zugriffsrechte einen include()-Aufruf über das Dateisystem zulassen.
meikel (†)
05.12.2005, 21:42:49
Achso, das war mir nicht bekannt, dass es überlicherweise so gehandthabt wird.
Mir auch nicht, weil es nicht üblich ist. Man kann (aber man muß nicht) für eine Subdomain einen neuen User kreieren, wenn man mit einer teuren Hotline Nummer Geld verdienen möchte...
Damir
05.12.2005, 22:54:25
Mir auch nicht, weil es nicht üblich ist.
Na dann schau dir mal das Flagschiff Plesk (der Nachfolger von Confixx) an - der kreiert fleissig seine Subdomains unter neuen Usern.......
Wenn ich einen Server ohne Plesk laufen lasse, dann wuerde ich es auch nicht machen. Aber gerade fuer "kleine Webhoster", die sich einen Server bei Schlund, Puretec etc. mieten bietet sich das an (ich meine Plesk) - dann bist du gefangen!!!!!!
meikel (†)
06.12.2005, 00:47:53
Na dann schau dir mal das Flagschiff Plesk
Nein! Einmal und nicht wieder!
Aber gerade fuer "kleine Webhoster", die sich einen Server bei Schlund, Puretec etc. mieten bietet sich das an (ich meine Plesk) - dann bist du gefangen!!!!!!
a. ich verwende Confixx.
b. generell: es ist Unfug, wenn nur für eine Subdomain ein neuer User kreiert wird. Ein neuer User macht nur dann Sinn, wenn sich FTP User 1 nicht an den Dateien von FTP User 2 vergreifen darf.
Damir
06.12.2005, 11:01:50
@Meikel
Aber das ist ja das Problem..... Confixx wird nicht mehr weiter entwickelt und Plesk hat es abgeloest. Bei Confixx fand ich es sehr gut, dass man viel mehr eingreifen konnte (z.B. Subdomains in Unterverzeichnissen etc.). Allerdings war die Aufteilung (Admin,User - das dritte faellt mir jetzt nicht ein - ich glaube Anbieter oder so) in Confixx nicht so toll - das haben die in Plesk besser geloest. Aber..... naja, Plesk hat aus meiner Sicht zu viele Macken und geht nicht sehr gut auf Admins ein. Schlimmer noch..... Wenn du in Plesk ein langes und kryptisches Passwort nimmst dann erwartet dich eine boese Ueberraschung. Er meckert zwar nicht und du kannst dich in Plesk einloggen aber er selber kann nicht mehr auf MySQL zugreifen (du als Root(heisst ja admin in Plesk) allerdings auch nicht mehr - den Rest kannst du dir ja denken wie dann nichts mehr funktioniert.....
Ich koennte dir echt noch viele Macken erzaehlen aber ich denke, das du da auch schon einiges gehoert hast.
Am besten man bleibt der alleinige Herrscher ueber sein System und traut solcher Software nicht - ist meine Erfahrung.
Damir
meikel (†)
06.12.2005, 13:43:43
Aber das ist ja das Problem..... Confixx wird nicht mehr weiter entwickelt und Plesk hat es abgeloest.
Ein üblicher marktwirtschaftlicher Vorgang: man kauft einen Konkurrenten deshalb, um das Konkurrenzprodukt vom Markt zu nehmen.
... - den Rest kannst du dir ja denken wie dann nichts mehr funktioniert...Riesengroßes Geheule im Supportforum und eine dicke Decke auf dem Telefon.
matin
09.12.2005, 17:48:48
So wie ich es verstanden habe den HTML-Bereich........
Oder ist es anders???
hallo,
ich möchte die menünavigation auf der subdomain "http://sub-1.meinedomain.com/" includieren. die datei, die ich includieren möchte ("navigation.inc.php") liegt im hauptverzeichnis meiner domain (ohne www): http://meinedomain.com/navigation.inc.php
folgendes habe ich versucht, funzt aber nicht ...
<?PHP
function curlStart($meinedomain.com/navigation.inc.php){
unset($message);
$fp = curl_init($meinedomain.com/navigation.inc.php);
// Maximale Ausfuehrungszeit
curl_setopt($fp,CURLOPT_TIMEOUT,10);
// Durchlauf abbrechen wenn Server mit einem ERROR > 300 antwortet
curl_setopt($fp,CURLOPT_FAILONERROR,1);
curl_exec($fp);
// letzte Fehlermeldung
if(curl_errno($fp) != 0){
$message[0] = FALSE;
$message[1] = curl_error($fp);
}
else{
$message[0] = TRUE;
$message[1] = "+OK";
}
curl_close($fp);
return $message;
}
$message = curlStart($meinedomain.com/navigation.inc.php);
if($message[0] == FALSE){
// Fehlermeldung falls nicht erreichbar
echo $message[0];
}
else{
echo $message[1];
}
?>
wie gesagt, versteh ich den ganzen code oben nicht ...
neben der menünavigation möchte ich dann noch andere bereich includieren (z. b. den header und den footerbereich). dies müsste eigentlich dann nach dem selben code gehen?
meikel (†)
09.12.2005, 18:06:38
ich möchte die menünavigation auf der subdomain "http://sub-1.meinedomain.com/" includieren. die datei, die ich includieren möchte ("navigation.inc.php") liegt im hauptverzeichnis meiner domain (ohne www): http://meinedomain.com/navigation.inc.php
Warum so umständlich?
Verwende für include absolute Pfade im Dateisystem und laß den Unfug mit den url_fopen wrappern.
zb (erfundene Daten):
include '/srv/www/htdocs/web47/html/domain1/script.php';
include '/srv/www/htdocs/web47/html/domain2/script.php';
matin
09.12.2005, 18:44:54
super, funzt! das ist ja viel einfacher und das versteh ich auch ... danke!
vBulletin® v3.8.3, Copyright ©2000-2024, Jelsoft Enterprises Ltd.