Seite 1 von 1
$ENV{'REMOTE_USER'}
Verfasst: 15.12.2008 22:34
von Luis2
Hallo,
ich habe ein phpbb 3.02 Forum im "Testlauf" in einem durch .htaccess geschützten Bereich.
Ich möchte gerne, dass meine User als Gäste posten können, da sich in diesem Bereich ja sowieso nur legetimierte Personen aufhalten können.
Aber es sollte jeder Nachricht oder Antwort mittels $ENV{'REMOTE_USER'} der Username als Signatur hinzugefügt werden.
Wie kann ich das bewerkstelligen?
Gruß Luis
Verfasst: 15.12.2008 23:25
von piero
musst du in posting_editor.html und viewtopic_body.html was machen...
ich geh mal davon aus, dass du prosilver benutzt... für andere styles ists ähnlich
posting_editor.html:
finde:
Code: Alles auswählen
<dl>
<dt><label for="username">{L_USERNAME}:</label></dt>
<dd><input type="text" tabindex="1" name="username" id="username" size="25" value="{USERNAME}" class="inputbox" /></dd>
</dl>
ersetze durch:
Code: Alles auswählen
<input type="hidden" name="username" id="username" value="$ENV{'REMOTE_USER'}" class="inputbox" />
setzt voraus, dass $ENV{'REMOTE_USER'} direkt genutzt werden kann...
das feld wird beim beitrag schreiben nicht angezeigt, und als standardwert $ENV{'REMOTE_USER'} genommen. das kann jedoch leicht geändert werden
viewtopic_body.html:
finde:
Code: Alles auswählen
<!-- IF postrow.SIGNATURE --><div id="sig{postrow.POST_ID}" class="signature">{postrow.SIGNATURE}</div><!-- ENDIF -->
ersetze durch:
Code: Alles auswählen
<!-- IF postrow.SIGNATURE --><div id="sig{postrow.POST_ID}" class="signature">geschrieben von: {postrow.POST_AUTHOR_FULL}.</div><!-- ENDIF -->
das sollte alles sein...
Verfasst: 15.12.2008 23:53
von Dave
@piero
php im template wird nicht so ganz klappen
Code: Alles auswählen
<input type="hidden" name="username" id="username" value="{USERNAME}" class="inputbox" />
Wozu die änderung in der viewtopic noch is, is mir nen rätzel. Der name des gastes sollte ja im Beitrag als Benutzername auftauchen.
Öffne posting.php suche nach:
Code: Alles auswählen
'USERNAME' => ((!$preview && $mode != 'quote') || $preview) ? $post_data['username'] : '',
ersetze mit:
Code: Alles auswählen
'USERNAME' => ((!$preview && $mode != 'quote') || $preview) ? $post_data['username'] : $_ENV['REMOTE_USER'],
MfG
Dave
Verfasst: 15.12.2008 23:56
von piero
Dave hat geschrieben:@piero
php im template wird nicht so ganz klappen
ja hab ich mir auch gedacht... nur "$ENV{'REMOTE_USER'}" war halt auf ne komische art geschrieben, da dachte, dass es vllt so eingesetzt werden könnte^^
Verfasst: 16.12.2008 09:18
von Luis2
Danke erst mal für die Antworten.
Ich werde das mal testen und dann berichten.
(kann ein paar Tage dauern)
Gruß Luis
Verfasst: 16.12.2008 22:50
von Luis2
Hallo zusammen,
so, jetzt habe ich es versucht, wie von Dave vorgeschlagen und von Piero ergänzt. Aber leider kein Erfolg
Ich denke schon, dass die $ENV{'REMOTE_USER'} bei mir direkt genutzt werden kann. Ich habe sie benützt in meinem alten Forum, welches allerdings ein perl Forum (ikonboard) ist.
Jetzt habe ich als Test in der posting.php testweise statt:
Code: Alles auswählen
'USERNAME' => ((!$preview && $mode != 'quote') || $preview) ? $post_data['username'] : $_ENV['REMOTE_USER'],
einen festen Textstring eingesetzt:
Code: Alles auswählen
'USERNAME' => ((!$preview && $mode != 'quote') || $preview) ? $post_data['username'] : 'testXXX',
aber auch dieser Text erscheint nirgends, wenn ich in meinem Testforum als Gast poste.
Übrigens: Der Benutzername aus meiner .htpasswd (ich schrieb fälschlicherweise .htaccess) sollte gar nicht unbedingt den Benutzernamen des Forums überschreiben, denn damit nehme ich ja meinen Teilnehmern die Möglichkeit sich am phpBB anzumelden und verschiedene Funktionen wie "Abstimmungen" zu benützen. Es würde reichen, wenn in der Nachricht am Schluss einfach nochmal dieser Name steht, den die $_ENV['REMOTE_USER'] aus meiner .htpasswd ausliest.
Vielleicht erbarmt sich noch mal jemand und kann mir auf die Sprünge helfen.
Gruß Luis
Verfasst: 17.12.2008 22:04
von Luis2
Ich habe weiter experimentiert!
wenn ich in der posting.php folgenden code ändere
Code: Alles auswählen
'USERNAME' => ((!$preview && $mode != 'quote') || $preview) ? $post_data['username'] : '',
'SUBJECT' => $post_data['post_subject'],
'MESSAGE' => $post_data['post_text'],
und der "message" die env... anhänge
Code: Alles auswählen
'USERNAME' => ((!$preview && $mode != 'quote') || $preview) ? $post_data['username'] : '' ,
'SUBJECT' => $post_data['post_subject'],
// von Luis
'MESSAGE' => $post_data['post_text']."\n\n\n\n\n Benutzername: ".$_ENV["REMOTE_USER"],
so erscheint im Textfeld einwandfrei ein paar Leerzeilen und die gewünschte Signatur des Benutzernamens aus der .htpasswd
Die Sache hat nur einen kleinen Haken. Die Signatur sollte erst beim Absenden einer Nachricht hinzugefügt werden, damit sie vom User nicht gelöscht werden kann.
Wie kann ich die Signatur so einfügen, dass sie erst beim Absenden der Message hinzugefügt wird?
Ich bedanke mich schon einmal im Voraus, wenn sich jemand meines Problemes annimmt!
Gruß Luis