Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

php include mit absoluten verzeichnissen bzw. URL?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
chrizz
PostRank 10
PostRank 10
Beiträge: 3044
Registriert: 05.07.2006, 10:37
Wohnort: Berlin

Beitrag von chrizz » 21.07.2007, 02:16

tag allerseits,
ich versuche ne MySQL Verbindung aus ner datei herzustellen, die den MySQL Connect Befehl aus einer anderen Datei inkludiert.
Die mysql_connect liegt an einem festen Ort. Jedoch muss ich von unterschiedlichen Dateien in unterschiedlichen Ordner darauf zugreifen.

Bei include("https://www.domain.tld/mysql_conntect.inc.php") findet er die datei nicht und spuckt logischerweise nen Fehler bei der ersten mySQL Abfrage aus.

WEnn ich die Datei mit "/www/htdocs/test46378/test/mysql_connect_inc.php",
dann meckert er das der User wwwrun keine Zugriffsberechtigung auf die DB hat...allerdings wird der nirgendwo erwähnt und die daten in der mysql_connect sind auch gänzlich andere...

irgendwie glaube ich, dass es nur irgendwo nen kleiner denkfehler ist...

vielleicht kann mir ma jemand auf die sprünge helfen...;)

Danke!

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


To-Bi-As
PostRank 6
PostRank 6
Beiträge: 443
Registriert: 08.10.2006, 02:20

Beitrag von To-Bi-As » 21.07.2007, 02:43

schon mal versucht mit include("/mysql_conntect.inc.php"), also ohne Filesystem und HTTP, also direkt aus dem httpdocs-Root herraus.

Gruß, Ingo

cren
PostRank 6
PostRank 6
Beiträge: 379
Registriert: 04.06.2005, 16:30

Beitrag von cren » 21.07.2007, 10:46

To-Bi-As, in dem Fall wird aber nicht auf das httpdocs-Rootverzeichnis zugegriffen, sondern auf das Rootverzeichnis des Dateisystems.
Bei include("https://www.domain.tld/mysql_conntect.inc.php") findet er die datei nicht und spuckt logischerweise nen Fehler bei der ersten mySQL Abfrage aus.
Kann auch nicht klappen.
WEnn ich die Datei mit "/www/htdocs/test46378/test/mysql_connect_inc.php",
dann meckert er das der User wwwrun keine Zugriffsberechtigung auf die DB hat...allerdings wird der nirgendwo erwähnt und die daten in der mysql_connect sind auch gänzlich andere...
Sicher dass der Pfad stimmt? Sind die anderen Variablen in der Datei, die die mysql_connect-Datei inkluded, bekannt? Werden irgendwelche Variablen ggf. wieder von nem anderen Script überschrieben?

chrizz
PostRank 10
PostRank 10
Beiträge: 3044
Registriert: 05.07.2006, 10:37
Wohnort: Berlin

Beitrag von chrizz » 21.07.2007, 10:49

ähm. sorry.....war gestern zu spät.....:(
Die mysql_conntect liegt nicht im root...die liegt auch in nem separaten Ordner...
/subordner/mysql_connect.php
/subordner/anderedatei.php ---> benötigt die mySQL_Connect
/subordner/Subsubordner/anderedatei.php ---> benötigt die mySQL_Connect

in den letzten beiden dateien ist nur eine Variable für den Pfad drin.
Derzeit noch als URL inkludiert. ICh bracuhe also nur eine Variable ändern und dann muss es für alles passen.... Dachte ja man könnte schön vom Root referenzieren, aber das klappt ja auch irgendwie nicht...
habs grad mal versucht mit:
/www/htdocs/test12498/test/ als variabler Pfad....da gibt es zwar keine Fehlermeldung, aber das inkludierte Script wird überhaupt nicht verarbeitet.....hm...
dann werd ich mir das nochmal anschauen müssen...jetzt macht er nach'm formular absenden gar nichts mehr...

schön, dass fertige scripte immer soviele Probleme bereiten...:(

Im Formular wird nen hidden input beim Absenden mit value 1 belegt.
<input type="hidden" name="letteritbid[]" value="1">

in dem Auswertungsscript dafür ist die Abfrage wiefolgt:
if(is_array($_POST['letteritbid']))

und da läufts immer ganz cool dran vorbei...;) Kann jemand damit was anfangen? so gut kann ich dann doch kein PHP, als dass ich wüsste, warum das nen is_array ist...

btw: vielleicht machts einiges einfacher: Das script, was ich versuche zum Laufen zu bringen ist LetterIt2. Backend läuft, mails werden auch gesendet....Nur das mit dem An & Abmelden klappt beim dem Newsletter noch nicht...

fettes danke...

cren
PostRank 6
PostRank 6
Beiträge: 379
Registriert: 04.06.2005, 16:30

Beitrag von cren » 21.07.2007, 11:01

Oh wei... LetterIt... das ist doch von otterware.de oder?

Hab mit StatIt (auch von otterware.de) ähnliche Erfahrungen machen müssen. Das Problem dabei war, dass der Pfad, der als Variable angegeben wurde, nur unter ganz bestimmten Voraussetzungen funktioniert. Sobald man etwas von der "Norm" abweicht gehts nicht mehr. Genauer gesagt: sobald man mit eigenen Unterverzeichnissen arbeitet, deren Verzeichnisstruktur vom Programmierer so nicht bedacht wurden.

Das ganze ist darauf ausgelegt, dass der Pfad in der Variable ein relativer sein muss (da z. T. via Dateisystem genutzt und z. T. via URL).

Also, Vorschlag zur Lösung:

- den Pfad in der Variablen relativ lassen
- Datei mysql_connect.php in anderedatei.php inkludieren über include( dirname(__FILE__) . "/mysql_connect.php" );
- Datei mysql_connect.php in Subsubordner/anderedatei.php inkludieren über include( dirname(__FILE__) . "/../mysql_connect.php" );
...

Viel Erfolg :)
Zuletzt geändert von cren am 21.07.2007, 11:48, insgesamt 1-mal geändert.

chrizz
PostRank 10
PostRank 10
Beiträge: 3044
Registriert: 05.07.2006, 10:37
Wohnort: Berlin

Beitrag von chrizz » 21.07.2007, 11:16

hm. das mit dem inkludieren klappt jetzt mittlerweile...zumin lass ich mir am ende jeder inkludierten datei nochmal den dateinamen ausgeben und alle sachen, die inkludiert werden sollen, kommen auch an.
allerdings wird das formular nicht abgearbeitet beim absenden....ich meine, dass es gestern nacht irgendwann mal funktioniert hatte.....aber.....das war gestern nacht :(

EDIT: Es scheint zu gehen.....ich hatte noch ne andere URL Pfadangabe im formular.....nämlich die URL Ausgabeseite (die die LetterIt nutzen werden wissen was ich meine ;) )
und jetzt scheint es wirklich zu funktionieren....

cren: kennst du denn nen besseren Script, was die Möglichkeit bietet noch sachen wie Vorname/Nachname einzubinden? Mein Plan ist ja immernoch, dass ich das mit meinem ModX CMS verknüpfe....da gibts zwar nen eigenes Script (koops mailing list), aber das hat vorn und hinten nicht funktioniert...

ich danke euch erstma für die Hilfe....schönen samstach :)

cren
PostRank 6
PostRank 6
Beiträge: 379
Registriert: 04.06.2005, 16:30

Beitrag von cren » 21.07.2007, 11:49

Hm sorry, ein anderes Script ist mir grad nicht bekannt.

To-Bi-As
PostRank 6
PostRank 6
Beiträge: 443
Registriert: 08.10.2006, 02:20

Beitrag von To-Bi-As » 22.07.2007, 01:32

@cren
To-Bi-As, in dem Fall wird aber nicht auf das httpdocs-Rootverzeichnis zugegriffen, sondern auf das Rootverzeichnis des Dateisystems.
Bist Du Dir da wirklich sicher?? Denn dann dürften meine Seiten alle nicht laufen. Filezugriff auf Systemebene ist für meinen Apache nicht erlaubt "base-restriction" und "allow_url_fopen" auch nicht.
Also ich mache das immer mit include("/ordner/mysql_conntect.inc.php") und da wird das httpdocs-Root plus dem Ordner verwendet, nicht das System-Root. (Suse 9.3, Apache 2, PHP4).

Gruß, Ingo

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag