HTML-Seiten in Mitglieder-Bereich einbinden

Fragen zur Implementierung und/oder Anpassung von ConPresso 3.x werden in diesem Forum diskutiert.
Antworten
Philon
ConPresso-Newbie
Beiträge: 10
Registriert: 01.01.1970 01:00

HTML-Seiten in Mitglieder-Bereich einbinden

Beitrag von Philon »

Hallo zusammen!

meine conpresso-Installation testet sich bisher sehr gut. Um alles nun zufriedenstellend zu realisieren, gibt es noch ein Problem.

Hintern members.php soll ein Supportbereich liegen. Soweit sieht es für den Gebrauch ganz sinnvoll aus (Handbuch studiert). Im Supportbereich sollen nun extern generierte HTML-Dateien begutachtet werden können. Für jeden Benutzer andere...

Kurz: wie verwende ich den geschlossenen User-Bereich für externe Daten?

Ein paar Gedanken:
1) Linkliste zu /$meinName/stats1/ auf geschl. Nutzerbereich. meinName soll Anmeldename von conpresso bekommen, find ich noch. Stats1 sind dann jeweils die generierten Unterseiten (erstmal statische Links)

2) Daraus resultiert die Frage der Absicherung. Wie kann ich dieses Verzeichnis so absichern das nur der auth. Benutzer Zugriff hat? UserA soll nicht UserB sehen, durch umstricken des Links.

3) Überlegung 1 war: mod_auth_sql für Apache jeweils nur den Benutzer auf seine Seite zu lassen. Pflege per htaccess und UserDB von conpresso. PHP kann evtl. zu HTTP-Auth weiterleiten, so dass eine neue Passworteingabe überflüssig wird.

4) Überlegung 2: man könnte wohl auch per PHP die Seiten ausliefern, für eingebettete Grafiken aber sicherlich schwierig, denke ich. Alle Daten immer durch PHP parsen lassen, nunja!?

Wie würdet ihr denn am sinnvollsten sowas realiseren?

Vielen Dank für jeglichen Tipp!
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 01:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal
Kontaktdaten:

Beitrag von Matthias V »

über wieviele Seiten und Benutzer reden wir denn?

ist es nicht am einfachsten, diese Seiten in personalisierte Rubriken rein zu kopieren, dass sie in der Datenbank gespeichert werden, dann ist die Sache mit dem Zugriff kein Problem mehr.

Für diesen Fall brächte jeder Benutzer eine Benutzergruppe.

Oder man schreibt die html-Dateien in php-Dateien, bzw. benennt die Endung um, dann kann man immer überprüfen, ob der richtige User eingeloggt ist.

Man könnte ja über eine Suche nach Dateien in einem Verzeichnis die Links zu den dateien generieren lassen. Allerdings müsst in jeder Datei eine abfrage stehen, dass sichergestellt ist, dass der richtige Benutzer die Dateien öffnet (für den Fall, dass sie direkt aufgerufen werden.

ich glaube so einfach ist das nicht, die infos von der Anmeldung bei PHP aus der Session nun auch noch der HTTP-Authentifizierung bereitzustellen.
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Philon
ConPresso-Newbie
Beiträge: 10
Registriert: 01.01.1970 01:00

Beitrag von Philon »

für den Start hab ich erstmal 10 Benutzer. Problem ist, dass es sich um Statistiken handelt die regelmässig zu HTML ausgeneriert werden und dass von externer Quelle.

Wir müssten halt genau diese Quelle in das CMS einbinden bzw. vom CMS aus zugänglich machen. Alles nach Möglichkeit so, dass keine Änderungen an den gelieferten Daten entstehen...

Umbenennen der Dateien wird dann schwierig, wenn in den Dokumenten auch Links sind (Bilder + andere Seiten). Ich kann mir nur vorstellen, dass das einzige sinnvolle eine Übergabe von PHP nach Apache ist. Ein PHP-Proxy für jede Datei müsste evtl. sogar durch parsen der URL rumfummeln, vom Dateityp mal ganz abgesehen.
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 01:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal
Kontaktdaten:

Beitrag von Matthias V »

Man müsste auch HTML-Dateien in PHP-Dateien includen können. Möglich wäre auch eine automatische umformatierungen von Verweisen zu anderen Dateien/Seiten. Aber das müsste man erstmal so programmieren.

Ich weiß nicht so ganz, ob man einen Leseschutzt über das Verzeichnis legen kann, was php dann umgehen kann.

Sind denn die HTML-Dateien so, dass man den Namen einer anderen Datei rauskriegen kann, wenn man weiß, wie eine heißt?
Wenn die keiner findet müsste man sie ja nicht schützen.

Oder man schützt die Dateien mittels mod_rewrite, so dass alle Aufrufe von Dateien in einem Ordner auf eine index.php umgelenkt werden, so dass man nicht direkt an die Dateien rankommt, sondern das einen PHP-Skript überlässt, welches die Conpresso-Authentifizierung benutzt.

Aber villeicht kann MarkusR ja auchnoch was hierzu schreiben, falls er konkretere Ideen hat.

Gruß Matthias V
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Philon
ConPresso-Newbie
Beiträge: 10
Registriert: 01.01.1970 01:00

Beitrag von Philon »

ich denke mod_rewrite ist fast die einzige Möglichkeit da richtig was dran zu sichern und eine klare Verknüpfung zwischen conpresso und Apache herzustellen. Ich werde es die Tage mal testen.

Soweit danke für die sachdienlichen Hinweise zur Ergreifung der Lösung :)
Philon
ConPresso-Newbie
Beiträge: 10
Registriert: 01.01.1970 01:00

Ein Update

Beitrag von Philon »

ich habe inzwischen ein wenig PHP geschrieben. Nun liefert mir ein kleines Skript Dateien per readfile aus. Jetzt hänge ich daran dieses auch via member.php ausführen zu lassen und vor allem die Session davon irgendwie mitzubekommen um an die Nutzerdaten zu kommen.

Wie ich im Templating zumindest mal gesehen habe, könnte man dort eigenes PHP einbinden. Es wäre also möglich so eine Rubrik zu erzeugeun und mit einem eigenen Template eine Inhaltsseite mit Links auf die externen Files zu schreiben. Die Rubrik könnte ich dann wohl absichern, was dann von conpresso verwaltet wird.

Wie komme ich an die UserID?

Alternativ ist es vielleicht auch sinnvoll das ganze in einem mod zu separieren. Allerdings habe ich dazu leider keinerlei Dokumentation finden können.
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Wie Du vielleicht in der member.php gesehen hast, stehen alle Angaben zum User in $_SESSION['SID_user'].

Die ID zum Beispiel in $_SESSION['SID_user']['id']

Darüber hinaus enthält dieser Session-Key noch usergroups_id, editor, initial, email, admin, language und name im gleichen array.

Wenn Du Modulentwickler werden willst, dann wende Dich an balu, der Dir die notwendigen Infos zusammenstellt bzw. Dir verrät, wo Du diese Infos findest.

Wobei man zwischen einem Modul (Oberfläche, Funktionen, Plug&Play, Handbuch etc.) und einer Modifikation (wie bei phpBB) unterscheiden muß, bei der nur einige Codeteile ergänze bzw. geändert werden.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 01:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal
Kontaktdaten:

Beitrag von Matthias V »

Erst einmal musst du, um die Session zu benutzen die _include/common.inc.php einbinden, welche dir die Session startet.

Dann kannst du mittels $_SESSION['SID_user'] und aller darin liegenden Array-Elemente an die User_ID ran kommen.

Wenn du mal in die _rubric/index.php schaust, dann siehtst du die ersten 3 eingebundenen Dateien, die dir auch weiterhelfen können, wenn du sie einbindest. Dann müsste deine Sache aber eine Rubrik werden, wofür wiederum die rubric.php in das Verzeichnis gehört, in dem du arbeitest.

Das Dokumentationssystem für die Entwicklung von Modulen ist zur Zeit deaktiviert, aber über support@conpresso.de wird dir Balu weiter helfen, wenn du das ganze in ein Modul schreiben möchtest.

Gruß Matthias V

Edit: Markus war mal wieder schneller.
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Mal eine Zwischenfrage...

die Erwähnung von member.php habe ich zuerst einfach mal so hingenommen... allerdings gibt es diese Datei in ConPresso 3.4.x nicht!

Liegt es im Bereich des Möglichen daß dieser Thread eigentlich zu ConPresso4 gehört...?
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 01:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal
Kontaktdaten:

Beitrag von Matthias V »

MarkusR hat geschrieben:Mal eine Zwischenfrage...

die Erwähnung von member.php habe ich zuerst einfach mal so hingenommen... allerdings gibt es diese Datei in ConPresso 3.4.x nicht!

Liegt es im Bereich des Möglichen daß dieser Thread eigentlich zu ConPresso4 gehört...?
Stimmt, :gruebel: ist mir noch gar nicht aufgefallen (das wir uns hier eigentlich bei Conpresso 3.4 befinden). Aber zum Glück habe ich auch alles im Bezug auf Conpresso 4 geschrieben.

Mal sehen, was Philon wirklich benutzt.
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Philon
ConPresso-Newbie
Beiträge: 10
Registriert: 01.01.1970 01:00

Beitrag von Philon »

Hm, das ist doch interessant. In Betrieb ist das System natürlich auf Conpresso 3. Zum Testen habe ich natürlich ein lokales Setup installieren wollen. Conp3 hatte jedoch mit MySQL 5 ein Problem im SQL, ich glaub es hing mit verschachtelten Befehlen zur Erzeugung einer Tabelle zusammen.

Da ich an MySQL 5 nix ändern konnte, habe ich kurzerhand ein Conpresso 4 Setup durchlaufen lassen. Das lief dann soweit auch ordentlich. Bleibt jetzt also noch die Frage wie die Implementation in 3.4 aussieht. Wenn die sich nämlich so stark unterscheidet, sollte ich das Mod lieber für 3 oder 4 basteln. Sollte/Kann der Produktionsserver (ohne weiteres) aktualisiert werden?
Benutzeravatar
Matthias V
Modul-Entwickler
Beiträge: 1251
Registriert: 01.01.1970 01:00
Wohnort: Sondershausen
Hat sich bedankt: 54 Mal
Danksagung erhalten: 147 Mal
Kontaktdaten:

Beitrag von Matthias V »

Philon hat geschrieben:Sollte/Kann der Produktionsserver (ohne weiteres) aktualisiert werden?
Conpresso 4 ist natürlich vielseitiger und besser, ist ja ne Weiterentwicklung.

Markus hat für ein Update ein Transfer-Skript gebastelt: http://community.conpresso.de/viewtopic.php?t=2111
mod_Guestbook 4.1.0

Features:
- Einträge als ConPresso-Artikel
- benutzt Templates, Rubriken, ...
- Captcha
- BB-Code + Smilies + Zitieren
- Badwords
- Anonymisierung
Philon
ConPresso-Newbie
Beiträge: 10
Registriert: 01.01.1970 01:00

Beitrag von Philon »

Ich muss diesen Thread jetzt doch nochmal anwärmen...

Inzwischen habe ich das System am laufen, mit conpresso 4.0.

Ein Detail was mir in einem Test nun aufgefallen ist, nachdem ich Cookies deaktiviert habe, kommt mir noch ein wenig komisch vor.

Ich ziehe wie vorgeschlagen $_SESSION['SID_user'] um an die User-Infos heranzukommen. Ohne Cookies funzt das aber nicht.

Klar, es liegt am Link. Auf einer Rubrikenseite leite ich auf mein PHP-Script, ohne die SESSION mitzugeben.

Wie könnte ich PHPSESSID auslesen, falls vorhanden und an diesen Artikellink anhängen? Innerhalb eines Artikels PHP ausführen?
Benutzeravatar
balu
ConPresso-Entwickler
Beiträge: 1748
Registriert: 01.01.1970 01:00
Hat sich bedankt: 81 Mal
Danksagung erhalten: 133 Mal

Beitrag von balu »

Hiho,

der Server sollte das selber machen koennen, wenn session.use_trans_sid aktiv ist. Oder Du benutzt die Konstante SID.

Mehr Infos ueber die PHP-Sessions findest Du unter
http://de2.php.net/manual/de/ref.session.php

Ich wuerde aber auf jeden Fall empfehlen im eigenen Script auch die common.inc.php von ConPresso einzubinden, da CPO die Session je nach Einstellung auch in der Datenbank speichert.

Balu
Antworten