Verlinkungsfehler

Gesperrt
Joergel
Beiträge: 11
Registriert: Do 19. Jun 2003, 18:30
Kontaktdaten:

Verlinkungsfehler

Beitrag von Joergel » Di 24. Jun 2003, 10:19

Hallo Forum,

ich habe folgenden Fehler bei der internen Verlinkung eines Bildes:
falls ich gleichzeitig in einem anderen Fenster den Admin-Modus laufen habe erscheint die aufgerufene Seite im Editormodus also mit den kleinen Bezeichnungen unter'm Bild etc., falls ich nicht eingeloggt bin erhalte ich eine Fehlermeldung.


Der Output-Code:
<?php

if ("CMS_IMG[1]" != "") {

$img = '<img src="CMS_IMG[1]" border="0">';

if ("CMS_LINK[1]" != "http://") {
$img = sprintf('<a href="%s" target="%s">%s</a>',"CMS_LINK[1]", "CMS_LINKTARGET[1]", $img);

}

echo $img;

}

echo "<br>";
echo "CMS_IMGDESCR[1]";
echo "<br>";
echo "CMS_LINKDESCR[1]";
echo "<br>";

?>

Wer kann sich denken woran das liegen könnte?

Danke für's Hirnschmalzopfer

Jörgel

Joergel
Beiträge: 11
Registriert: Do 19. Jun 2003, 18:30
Kontaktdaten:

Beitrag von Joergel » Di 24. Jun 2003, 16:50

Sorry, vielleicht sinnvoll zu wissen, die Fehlermeldung lautet:

Warning: open_basedir restriction in effect. File is in wrong directory in /usr/local/etc/httpd/vhosts/joerg3/contenido/conlib/local.php on line 225

Warning: Failed opening 'main.loginform.php' for inclusion (include_path='.:') in /usr/local/etc/httpd/vhosts/joerg3/contenido/conlib/local.php on line 225

Gruß Jörgel

MAE
Beiträge: 11
Registriert: Di 24. Jun 2003, 14:29
Kontaktdaten:

session.inc ???

Beitrag von MAE » Mo 30. Jun 2003, 09:01

Hallo,

habe denselben Fehler. Wird dadurch verursacht, dass der Parameter contenido=%SessionID% mit in den Link eingebaut wird.

Wenn man das mal nachschaut, findet man im File session.inc die Klasse session in der folgende Funktion definiert wird:

Code: Alles auswählen

  function url($url) {
  	
    // Remove existing session info from url
    $url = ereg_replace(
      "([&?])".quotemeta(urlencode($this->name))."=".$this->id."(&|$)",
      "\\1", $url);

    // Remove trailing ?/& if needed
    $url=ereg_replace("[&?]+$", "", $url);

    switch ($this->mode) {
      case "get":
        $url .= ( strpos($url, "?") != false ?  "&" : "?" ).
                urlencode($this->name)."=".$this->id;
      break;
      default:
        ;
      break;
    }
In der switch Anweisung wird geprüft ob man cookies aktiv hat und wenn nicht (get) wird die ID dazu gefügt. Wozu weiß ich nicht, ist jemand hier der mir/uns weiter helfen kann?

Gruß Mathias

Joerg
Beiträge: 11
Registriert: Di 17. Sep 2002, 17:08
Kontaktdaten:

Re: session.inc ???

Beitrag von Joerg » Mo 30. Jun 2003, 12:12

Hallo 'MAE',
MAE hat geschrieben:habe denselben Fehler. Wird dadurch verursacht, dass der Parameter contenido=%SessionID% mit in den Link eingebaut wird.

[snip]

In der switch Anweisung wird geprüft ob man cookies aktiv hat und wenn nicht (get) wird die ID dazu gefügt. Wozu weiß ich nicht, ist jemand hier der mir/uns weiter helfen kann?
nun, daran liegt das wahrscheinlich nicht. Das ist ein fallback. Falls die SessionID nicht über cookies propagiert werden kann, wird sie an die URL angehängt.

Wegen der open_basedir Direktive kann local.php nicht inkludiert werden. Da muss dran gedreht werden.

Aus der php.ini:

Code: Alles auswählen

; open_basedir, if set, limits all file operations to the defined directory
; and below.  This directive makes most sense if used in a per-directory
; or per-virtualhost web server configuration file. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.
Viele Gruesse,
Joerg

MAE
Beiträge: 11
Registriert: Di 24. Jun 2003, 14:29
Kontaktdaten:

Beitrag von MAE » Mo 30. Jun 2003, 12:18

Hallo Jörg,

verstehe nur Bahnhof, was muss ich wo drehen ???

Joerg
Beiträge: 11
Registriert: Di 17. Sep 2002, 17:08
Kontaktdaten:

Beitrag von Joerg » Mo 30. Jun 2003, 12:46

Versuch 'rauszukriegen welcher Pfad bei Dir in open_basedir steht. Liegen Deine Sachen bei einem Hoster oder lokal?
Bei einem Hoster kannst Du ein Skript wie

Code: Alles auswählen

<?php
phpinfo();
?>
ablegen und aufrufen. Das gibt Dir alle PHP-Infos.
Lokal kannst Du in Deiner php.ini nachsehen.
Alle Dateioperationen sind nur unterhalb des Pfades in open_basedir erlaubt. Versucht man bspw. eine Datei in einem anderen Verzeichnis zu öffnen, kommt es zu obiger Fehlermeldung.

hth,
Joerg

Joergel
Beiträge: 11
Registriert: Do 19. Jun 2003, 18:30
Kontaktdaten:

Beitrag von Joergel » Mo 30. Jun 2003, 15:31

Hallo Joerg,
danke für's Interesse, aber ob's daran liegt ?
Mein Pfad liegt bei einem internen Link ja zwangsläufig unterhalb des base_dir da der gesamte contenido-Ordner ja unterhalb liegt und phpinfo() zeigt's auch:
base_dir: /www/vhosts/joerg3/
Stutzig macht mich, dass contenido in: /usr/local/etc/httpd/ (Fehlermeldung) und nicht unter www/ sucht.
Ist da vielleicht irgendwo 'nen absoluter Pfad einprogrammiert?
Ich frag' aber auch mal bei meinem Hoster nach.

Joergel

Joerg
Beiträge: 11
Registriert: Di 17. Sep 2002, 17:08
Kontaktdaten:

Beitrag von Joerg » Mo 30. Jun 2003, 16:52

Joergel hat geschrieben:Hallo Joerg,
danke für's Interesse, aber ob's daran liegt ?
Hm, PHP behauptet es jedenfalls.
Joergel hat geschrieben:base_dir: /www/vhosts/joerg3/
Stutzig macht mich, dass contenido in: /usr/local/etc/httpd/ (Fehlermeldung) und nicht unter www/ sucht.
Vielleicht ist das genau der Knackpunkt.

Viel Erfolg,
Joerg

Joergel
Beiträge: 11
Registriert: Do 19. Jun 2003, 18:30
Kontaktdaten:

Beitrag von Joergel » Mo 30. Jun 2003, 19:12

Wer weiß denn wie und wo der Pfad generiert wird? Mein Hoster sagt übrigens seinerseits sei alles o.k. Muss also wohl an der dynamischen Pfaderzeugung liegen.

Jörgel

Gesperrt