Coppermine - SMF Bridge Fehler Coppermine - SMF Bridge Fehler
 

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Main Menu

Coppermine - SMF Bridge Fehler

Started by Cheffu, October 28, 2007, 08:39:08 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Cheffu

Hallo,
wenn ich nach der Anleitung die beiden bridge funtkioniert es erstmal. Probleme gibt es aber, wenn ich meinen header includen will.

Wenn ich im Forum angemeldet bin:
Dann bekomme ich folgende Fehlermeldung "Fatal error: Cannot redeclare ssi_shutdown() (previously declared in .../forum/SSI.php:186) in .../forum/SSI.php on line 188".
Vermutlich liegt es daran, das ich die SMF SSI-Funktion "ssi_logout();" benutze und Coppermine ebenfalls einen Logout Knopf darstellen will.

Wenn ich nicht Forum angemeldet bin:
Dann bleibt einfach alles weiß und im Quelltext steht absolut nichts.

An meinem Header liegt es vermutlich nicht, da alles wunderbar funktioniert, solange ich die Bridge aus lasse.


Vielen Dank schonmal für evtl. Hilfe

Cheffu
Schreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung.

Joachim Müller

Hi Benny,

Du kannst keine Datei innerhalb von Coppermine includieren, die die Header-Daten modifiziert (mit denen die Cookie-Daten ausgelesen werden), da das nur einmal passieren kann. Was Du vorhast ist schlicht und ergreifend unmöglich - Du kannst die SSI.php von SMF nicht auf einer Coppermine-Seite includieren. Vgl. Doku -> Einstellungen -> Path to custom header include:
QuotePath to custom header include

Optional relative path to a custom header file. Using this option, you can include non-coppermine code bits to be included into your theme, e.g. an overall navigation that gets included on your whole website. You can only add a relative path (seen from the root path of your coppermine install) - not an absolute one, nor a http include from another website. This option is only meant for experienced users who have some PHP know-how.

Warning: you mustn't include full html pages that contain an html header or footer (tags like <head> or <body>), nor can the included file do file header manipulation, e.g. reading another (non-coppermine) cookie.
Es geht dabei nicht darum, dass wir so böse Menschen sind und das nicht wollen: es ist einfach Skript-technisch unmöglich (im Sinne von "ausgeschlossen").

Wenn es nur darum geht, die Navigation zu inkludieren, dann ist das möglich, muss aber anders angepackt werden.

Cheffu

Hi GauGau

Dass das Headerauslesen nicht 2 mal möglich ist verstehe ich.

Komisch finde ich aber, dass ich sehrwohl die SSI Funktion im Template von Coppermine erfolgreich nutzen kann, solange nur die beiden nicht gebridged sind.
Das ganze kannst du dir ansehen unter: http://www.bgb08.de/galerie2/index.php
Ich kann mich dort einloggen in Coppermine sowohl im Menü in SMF.

Mir wird nun nur nicht ganz klar wieso das mit der Headermanipulation erst in Kraft treten soll, wenn ich die Bridge gemacht habe.

Wie du dort siehst geht es nicht darum die Navigation zu inkludieren, denn dies habe ich schon geschafft, es sei denn ich denke dabei an etwas anderes wie du.

mfg
Benny
Schreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung.

Joachim Müller

Quote from: Cheffu on November 01, 2007, 07:51:38 PM
Dass das Headerauslesen nicht 2 mal möglich ist verstehe ich.
Es geht um den Dateiheader im Sinne von PHP im Rahmen der Kommunikation zwischen Server und Client, nicht um die Elemente, die im HTML-Output zu sehen sind. Zwei Header innerhalb einer Datei sind technisch nicht möglich - frage die PHP-Entwickler (oder eigentlich korrekter die Erfinder der HTTP-Spezifiaktionen), warum das so ist ;). Ich könnte mir aber vorstellen, dass sie antworten, dass Du ja auch nur einen Kopf hast und nicht zwei. Die Spezifikationen sind verfügbar unter http://www.faqs.org/rfcs/rfc2616

Quote from: Cheffu on November 01, 2007, 07:51:38 PMKomisch finde ich aber, dass ich sehrwohl die SSI Funktion im Template von Coppermine erfolgreich nutzen kann, solange nur die beiden nicht gebridged sind.
Da werden dann auch keine Cookies gelesen und geschrieben, so dass nur ein Header im Sinne von PHP vorhanden ist.

Quote from: Cheffu on November 01, 2007, 07:51:38 PMWie du dort siehst geht es nicht darum die Navigation zu inkludieren, denn dies habe ich schon geschafft, es sei denn ich denke dabei an etwas anderes wie du.
Eben: wir reden da über unterschiedliche Dinge - das ist möglicherweise ein Aspekt (Kommunikation zwischen Server und Client), mit der Du Dich noch nicht beschäftigt hast. Ich rede nicht über die Ausgabe von irgend welchen Navigationselementen (also um reine Ausgabe von HTML-Daten), sondern um den Datei-Header. Vertrau mir: es macht keinen Sinn, in dieser Richtung weiter zu forschen: Du kannst SSI.php nicht inkludieren, wenn Du gebridged bist. Es geht nicht. Ich habe es auch schon probiert - Du müsstest SSI.php komplett umschreiben und in die Bridge einbauen. Es geht hier nicht um ein bißchen rumbasteln mit Includes.

Cheffu

Alles klar, wenn du sagst das geht absolut nicht, dann geht es auch nicht.

Danke für die Mühe

Gruß
Benny
Schreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung.

Cheffu

Hi,
mir ist eine sehr unschöne Lösung eingefallen, aber eine Lösung.
Ich kann die SSI Sachen per iFrame einbinden. Das funktioniert auch in soweit, dass man sich ein und ausloggen kann und so. Nur wenn man einen falschen Benutzername oder Passwort eingibt, dann kommt man Standartmäßig zu dem Anmeldeteil des Forums. Dies erscheint aber nun auch leider im iFrame. Ebenfalls erscheint das Forum im iFrame wenn ich auf einen angemeldeten Benutzer klicke. Link: http://www.bgb08.de/fertig2/

Weis jemand wie ich die Links dann aus dem iFrame raus bekomm? Der Link ist vermutlich irgendwo in der SSI.php von SMF versteckt, deshalb ist dies hier wohl das falsche Forum, aber hier habe ich damit angefangen und GauGau weis vielleicht Rat.

Gruß
Benny
Schreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung.

Joachim Müller

Hm, so genau weiss ich das auch nicht mit SSI.php. In der Tat sind iframes Sch.... Ich würde mal nach eventuell vorhandenen target-Attributen für die <a href> tags suchen und diese auf "_parent" oder "_top" umbiegen. Aber warum willst Du die Login-Felder überhaupt per SSI.php anbieten? Du kannst doch locker herausfinden, ob der Benutzer angemeldet ist und falls nicht zeigst Du ihm ein "handgemachtes" Formular mit entsprechenden Ziel-Attributen.
Den iframe mit SSI.php würde ich nur dazu nutzen, Daten von SMF anzuzeigen (also Geburtstag, Events, neueste Postings etc.), aber nicht um ein Login-Formular zu generieren. Bleibt noch die Sache mit den Links - da könntest Du mal über die Verwendung von <base> nachdenken, mit dem Hintergedanken im Kopf, das Target-Attribut zu ändern.

Cheffu

Ich habe nach den <a href> tags gesucht, aber habe diese nicht gefunden um eben dies mit target zu machen.
Ich will die Login Feder mit SSI.php anbieten, da ich nicht weis wie ich ohne die SSI funktion zu benutzen herausfinden kann, ob der Benutzer angemeldet ist. Wenn ich selbst ein Login Formular bastel (wobei ich keine Ahnung habe wie), dann könnt ich doch gleich die SSI Funktion benutzen? Oder wäre es mit einer selbstgebastelten (auch wenn ich wie gesagt nicht weis wie) möglich, dass sich die header nicht in die quere kommen?

gruß
Benny
Schreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung.

Joachim Müller

Um innerhalb von Coppermine-Seiten herauszufinden, ob ein Benutzer angemeldet ist fragst Du einfach die Konstante USER_ID ab.

Also etwa so:<?php
if (USER_ID == '') {
  
// Hier das Login-Formular, weil der Besucher nicht angemeldet ist.
} else {
  
// Wir tun nix, weil der Benutzer schon angemeldet ist
}
?>

Cheffu

Ok, also verstehe ich richtig, dass ich also die Coppermine-SMF Bridge machen soll und dann mit dem von dir geposteten Befehl mein Formular anzeigen lassen soll?
Falls dies so ist müsste ich nurnoch das mit dem Login-Formular hinbringen und es würde auf den Coppermine Seiten gehen.
Dann hätte ich aber keine Anzeige von Leuten die online sind, es sei denn dies würde auch irgendwie gehen.

Jedenfalls müsste ich dann für Coppermine eine andere Anzeige machen, wie im Forum selbst, auf dem Rest der Seite und auf der mit Wordpress gebauten Startseite.
Ich denke das obwohl iFrames Müll sind diese wohl die beste Lösung wären, da dies dem Headerproblem und so aus dem Weg geht.
Und dazu müsste ich wenn ich es richtig verstehe nur die <a hrefs> auf parent _top oder so setzen. Daran versuche ich mich nun einfach mal.

Gruß und danke für die Mühe
Benny
Schreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung.