1 |
wakaba |
1.1 |
<html> |
2 |
|
|
<head> |
3 |
|
|
<title>Newsportal</title> |
4 |
|
|
</head> |
5 |
|
|
<body textcolor=black bgcolor=white> |
6 |
|
|
<h1 align=center>News Portal</h1> |
7 |
|
|
|
8 |
|
|
<p>Version 0.24pre1</p> |
9 |
|
|
|
10 |
|
|
<h2>Einleitung</h2> |
11 |
|
|
|
12 |
|
|
<p>Newsportal ist ein PHP-Basierter Newsreader. |
13 |
|
|
Es steht unter der GNU Public License (siehe beiliegende LICENSE).</p> |
14 |
|
|
|
15 |
|
|
|
16 |
|
|
<h2>Überblick</h2> |
17 |
|
|
|
18 |
|
|
<p>Diese Skriptsammlung ermöglicht von einer Webseite aus den Zugriff auf einen |
19 |
|
|
Newsserver (per NNTP). Man kann damit Webforen und Newsgruppen verbinden, so |
20 |
|
|
daß auf ein "Webforum" auch per NNTP zugegriffen werden kann. Dieses Skript |
21 |
|
|
eignet sich auch für die Präsentation von Announce-Newsgruppen auf |
22 |
|
|
Webseiten, ohne daß der Benutzer merkt, daß er in Wirklichkeit auf einen |
23 |
|
|
Newsserver zugreift.</p> |
24 |
|
|
|
25 |
|
|
<p>Die eigentliche Funktionalitäts des Skripts liegt in der Datei |
26 |
|
|
<tt>newsportal.php3</tt>, in der die meisten php3-Funktionen untergebracht sind. |
27 |
|
|
Zusätzlich gibt es vier weitere php3-Dateien, auf die direkt mit dem Browser |
28 |
|
|
zugegriffen wird: |
29 |
|
|
<UL> |
30 |
|
|
<li><i>index.php3</i> zeigt die auf dem Newsserver verfügbaren Newsgruppen an (sofern |
31 |
|
|
sie auch in die Datei groups.txt eingetragen sind). |
32 |
|
|
<li><i>thread.php3</i> zeigt die Artikel in einer Newsgruppe an. |
33 |
|
|
<li><i>article.php3</i> zeigt einen einzelnen Artikel an. |
34 |
|
|
<li><i>post.php3</i> schreibt eine Nachricht in die passende Newsgruppe. |
35 |
|
|
WARNUNG: Dieses Skript erzeugt noch nicht unbedingt RFC-Konforme |
36 |
|
|
Nachrichten. So werden Umlaute im Subject nicht 7bit-kodiert! |
37 |
|
|
<li><i>config.inc</i> enthält die Einstellungen |
38 |
|
|
<li><i>body.inc</i> enthält die HTML-Bodyzeile, in der z.B. die Hintergrundfarbe |
39 |
|
|
gesetzt wird. Das betrifft nur "index.php3", "thread.php3", "post.php3" |
40 |
|
|
und "article.php3". |
41 |
|
|
<li><i>deutsch.lang</i>: Die deutschen Sprachdefinitionen |
42 |
|
|
<li><i>english.lang</i>: Die englischen Sprachdefinitionen |
43 |
|
|
</ul></p> |
44 |
|
|
|
45 |
|
|
<p>Da das Abfragen der Artikelübersicht vom Newsserver viel Zeit beansprucht, |
46 |
|
|
werden diese Dateien im Verzeichnis <tt>spool/</tt> zwischengespeichert. Die Dateien |
47 |
|
|
dort drin können nach belieben gelöscht werden, sie werden bei Bedarf neu |
48 |
|
|
angelegt.</p> |
49 |
|
|
|
50 |
|
|
<h2>Installation:</h2> |
51 |
|
|
|
52 |
|
|
<p><ol> |
53 |
|
|
<li>Das Archiv in ein Verzeichnis entpacken. |
54 |
|
|
|
55 |
|
|
<li>Die Datei <tt>config.inc</tt> muß angepasst werden (für einen Schnellstart müssen |
56 |
|
|
<i>$server, $port, $title</i> und gegebenenfalls <i>$readonly</i> verändert werden). |
57 |
|
|
|
58 |
|
|
<li>In die Datei <tt>groups.txt</tt> werden alle Newsgruppen eingetragen, die |
59 |
|
|
Newsportal anzeigen soll. Optional kann man hinter den Gruppennamen von |
60 |
|
|
einem Leerzeichen getrennt eine Beschreibung eintragen, die dann von der |
61 |
|
|
<tt>index.php3</tt> angezeigt wird. Fehlt diese, wird die Beschreibung vom |
62 |
|
|
Newsserver angefordert. |
63 |
|
|
|
64 |
|
|
<li>Das Verzeichnis spool muß mit "<code>chmod 777 spool</code>" für jeden les- und |
65 |
|
|
schreibbar gemacht werden. Nach einem Update kann es passieren, daß das |
66 |
|
|
Skript ohne das Löschen aller Dateien in diesem Verzeichnis nicht |
67 |
|
|
funktioniert. Das kommt aber darauf an, ob ich das Format dieser Dateien |
68 |
|
|
geändert habe. NewsPortal erkennt normalerweise fehlerhafte Spooldateien und |
69 |
|
|
löscht sie gegebenenfalls. |
70 |
|
|
</ol></p> |
71 |
|
|
|
72 |
|
|
<h2>Konfiguration</h2> |
73 |
|
|
<p>Folgende Einstellungen können in der <tt>config.inc</tt> vorgenommen werden: |
74 |
|
|
</p> |
75 |
|
|
|
76 |
|
|
<p><b>Verzeichnisse und Dateien:</b> |
77 |
|
|
<UL> |
78 |
|
|
<li><i>$file_newsportal="newsportal.php3":</i> Name des newsportal-Skripts |
79 |
|
|
|
80 |
|
|
<li><i>$file_groups="index.php3"</i>: Die Gruppenübersicht |
81 |
|
|
|
82 |
|
|
<li><i>$file_thread="thread.php3"</i>: Die Artikelübersicht |
83 |
|
|
|
84 |
|
|
<li><i>$file_article="article.php3"</i>: Zeigt den Artikel an |
85 |
|
|
|
86 |
|
|
<li><i>$file_post="post.php3"</i>: einen Artikel schreiben. Die Datei kann entfernt |
87 |
|
|
werden, wenn das System auf readonly gesetzt ist (siehe unten) |
88 |
|
|
|
89 |
|
|
<li><i>$file_language="deutsch.lang"</i>: Verweis auf die Sprachdefinitionsdatei. |
90 |
|
|
<li><i>$file_footer</i>: Hier kann Optional der Name einer Datei angegeben |
91 |
|
|
werden, die an jede über Newsportal verschickte Nachricht |
92 |
|
|
angehängt wird. |
93 |
|
|
</ul></p> |
94 |
|
|
|
95 |
|
|
<p><b>Servereinstellungen</b> |
96 |
|
|
<UL> |
97 |
|
|
<li><i>$server</i>: Adresse des Newsservers |
98 |
|
|
<li><i>$port</i>: Port des Newsservers, normalerweise 119 |
99 |
|
|
<li><i>$post_server</i>: Optional kann hier für das Schreiben von |
100 |
|
|
Artikeln ein eigener Server angegeben werden. Es ist dann natürlich so, |
101 |
|
|
daß ein Artikel eine Zeit braucht, bis er vom $post_server zum $server |
102 |
|
|
gelangt ist. |
103 |
|
|
<li><i>$post_port</i>: Port des Post-Newsservers, normalerweise 119 |
104 |
|
|
<li><i>$maxfetch</i>: Hier wird die maximal bei einem Aufruf von thread.php3 vom |
105 |
|
|
Newsserver anzufordernden Artikelübersichten beschränkt. Auf "0" gesetzt |
106 |
|
|
werden so viele Artikel angefordert, wie neu zur Verfügung stehen, jede |
107 |
|
|
andere Nummer legt die Maximalanzahl fest. Diese Option sollte nur dann |
108 |
|
|
auf etwas anderes als 0 gesetzt werden, wenn es Probleme mit der |
109 |
|
|
Geschwindigkeit gibt. |
110 |
|
|
<li><i>$initialfetch</i>: Bei einem Neuaufbau der Overview-Spooldatei wird statt |
111 |
|
|
$maxfech viele Artikel maximal $initialfetch viele Artikel abgeholt. |
112 |
|
|
Bei "0" ist es auch ungeschränkt. |
113 |
|
|
<li><i>$server_auth_user</i>: Falls der Newsserver durch Name und Passwort |
114 |
|
|
gschützt wird, kann hier der Username angegeben werden. Ansonsten |
115 |
|
|
einfach die Variable auf "" setzen. |
116 |
|
|
<li><i>$server_auth_pass</i>: Hier wird das zum Usernamen passende Passwort |
117 |
|
|
angegeben. |
118 |
|
|
</ul></p> |
119 |
|
|
|
120 |
|
|
<p><b>Threaddarstellung</b> |
121 |
|
|
<ul> |
122 |
|
|
<li><i>$treestyle</i>: Setzt das Aussehen des Nachrichtenbaums. |
123 |
|
|
<ul> |
124 |
|
|
<li>0: Einfache Auflistung der Artikel</li> |
125 |
|
|
<li>1: Einfache Auflistung der Artikel, jedoch als HTML-Auflistung</li> |
126 |
|
|
<li>2: Einfache Auflistung in Tabellenform</li> |
127 |
|
|
<li>3: Thread mit HTML-Auflistungen</li> |
128 |
|
|
<li>4: Thread aus Textzeichen</li> |
129 |
|
|
<li>5: Thread auf Graphikelementen</li> |
130 |
|
|
<li>6: Thread aus Textzeichen mit Tabelle</li> |
131 |
|
|
<li>7: Thread aus Grafikzeichen mit Tabelle</li> |
132 |
|
|
</ul></li> |
133 |
|
|
|
134 |
|
|
<li><i>$thread_fontPre</i>: Der Inhalt dieser Variable wird vor Texten in |
135 |
|
|
der Threadansicht ausgegeben. Diese Variable ist gedacht um z.B. die |
136 |
|
|
Textgröße der Texte zu ändern. Standardmäß wird |
137 |
|
|
dort der Font klein gestellt. Das ist bei alle Threadstyles sinnvoll, wo mit |
138 |
|
|
Tabellen gearbeitet wird, bei allen anderen ist es schöner die Variable |
139 |
|
|
auf einen leeren String zu setzen.</li> |
140 |
|
|
|
141 |
|
|
<li><i>$thread_fontPost</i>: Das gleiche wie $thread_fontPre, nur daß |
142 |
|
|
dieser String nach Textausgaben ausgegeben wird.</li> |
143 |
|
|
|
144 |
|
|
<li><i>$thread_showDate,<br> |
145 |
|
|
$thread_showSubject,<br> |
146 |
|
|
$thread_showAuthor</i>: |
147 |
|
|
<ul> |
148 |
|
|
<li>true: das Datum / das Subject / der Autor wird im Artikelbaum angezeigt |
149 |
|
|
<li>false: Darstellung wird unterdrückt. |
150 |
|
|
</ul> |
151 |
|
|
|
152 |
|
|
<li><i>$thread_maxSubject</i>: Anzahl der Zeichen, die vom Subject in der |
153 |
|
|
Artikelübersicht angezeigt werden. |
154 |
|
|
|
155 |
|
|
<li><i>$maxarticles</i>: Gibt die Anzahl der Artikel an, die maximal im Artikelbam |
156 |
|
|
angezeigt werden. "0" bedeutet keine Beschränkung. |
157 |
|
|
Es werden immer die letzten x Artikel angezeigt, wo wie sie auf dem |
158 |
|
|
Newsserver liegen. Das muß nicht unbedingt mit dem Erstelldatum des |
159 |
|
|
Artikels übereinstimmen. |
160 |
|
|
|
161 |
|
|
<li><i>$maxarticles_extra</i>: Das Problem beim Betrieb mit $maxarticles |
162 |
|
|
ist, daß alle Artikeldaten vom Newsserver komplett neu angefordert |
163 |
|
|
werden müssen, wenn der angegebene Wert überschritten worden |
164 |
|
|
ist. Damit dies nicht ganz so oft vorkommt, kann $maxarticles_extra |
165 |
|
|
gesetzt werden. Dann wird die Artikeldatenbank erst neu aufgebaut, wenn |
166 |
|
|
$maxarticles + $maxarticles_extra Artikel vorliegen, wobei dann |
167 |
|
|
$maxarticles viele Artikeldaten angefordert werden. Wenn man mit |
168 |
|
|
$maxarticles arbeitet, weil die Newsgruppen zu groß sind, sollte man |
169 |
|
|
unbedingt immer auch mit $maxarticles_extra arbeiten. Der Wert sollte etwa |
170 |
|
|
20% von $maxarticles betragen. Nur dann, wenn man wirklich eine ganz genau |
171 |
|
|
vorgegebene Anzahl von Artikeln auf einer Webseite anzeigen will, sollte |
172 |
|
|
man hier den Wert auf Null setzen. |
173 |
|
|
|
174 |
|
|
<li><i>$age_count</i>: Anzahl der verschiedenen Altersstufen für die |
175 |
|
|
farbliche Markierung von Artikeln |
176 |
|
|
|
177 |
|
|
<li><i>$age_time[n]</i>: maximales Alter eines Artikels in Sekunden, so daß der |
178 |
|
|
Artikel mit der Farbe $age_color[n] markiert wird. n ist eine natürliche |
179 |
|
|
Zahl >= 1, wobei alle Zahlen von 1 bis n vergeben sein müssen, Lücken sind |
180 |
|
|
also nicht erlaubt. |
181 |
|
|
|
182 |
|
|
<li><i>$age_color[n]</i>: Die Farbe, mit dem der Artikel markiert wird |
183 |
|
|
|
184 |
|
|
<li><i>$thread_sorting</i>: Die Sortierreihenfolge für die Artikel: |
185 |
|
|
<ul> |
186 |
|
|
<li>0: Keine Sortierung, die Artikel werden in der Reihenfolge angezeigt, |
187 |
|
|
in der sie vom Newsserver kommen. |
188 |
|
|
<li>1: aufsteigende Sortierung, die ältesten Artikel zu oberst |
189 |
|
|
<li>-1: absteigende Sortierung, die neusten Artikel zu oberst |
190 |
|
|
</ul> |
191 |
|
|
Es ist zu beachten, daß die Artikel in einer Baumstruktur angezeigt |
192 |
|
|
werden, so daß der oberste Artikel eines Teilbaums immer den Ausschlag |
193 |
|
|
gibt. |
194 |
|
|
|
195 |
|
|
<li><i>$articles_per_page</i>: Ist dieser Wert ungleich 0, so gibt er die |
196 |
|
|
Anzahl der Artikel an, die auf einer Seite gleichzeitig angezeigt werden |
197 |
|
|
sollen. Es gibt dann Links um die einzelnen Seiten zu wechseln. Benutzt man |
198 |
|
|
diese Option, so sollte man <i>$maxarticles</i> beachten: Diese Variable |
199 |
|
|
gibt nämlich auch an, wieviele Artikel in den Spooldateien gespeichert |
200 |
|
|
werden, sa daß ein zu hoher Wert trotz Seiteneinteilung die |
201 |
|
|
Geschwindigkeit herabsetzen kann.</li> |
202 |
|
|
|
203 |
|
|
<li><i>$startpage</i>: In Verbindung mit $articles_per_page wird hier |
204 |
|
|
angegeben, welche Seite bei Aufruf des Threads angezeigt werden soll: |
205 |
|
|
<ul> |
206 |
|
|
<li>"first": zeigt zuerst die erste Seite an. |
207 |
|
|
<li>"last": zeigt die letzte Seite an. |
208 |
|
|
</ul> |
209 |
|
|
Die Angabe sollte mit <i>$thread_sorting</i> abgestimmt werden. "first" |
210 |
|
|
für 0 und 1, und "last" für -1.</li> |
211 |
|
|
</ul></p> |
212 |
|
|
|
213 |
|
|
<p><b>Artikeldarstellung</b> |
214 |
|
|
<ul> |
215 |
|
|
<li><i>$article_show["Subject"],<br> |
216 |
|
|
$article_show["From"],<br> |
217 |
|
|
$article_show["Newsgroups"],<br> |
218 |
|
|
$article_show["Organization"],<br> |
219 |
|
|
$article_show["Date"],<br> |
220 |
|
|
$article_show["Message-ID"],<br> |
221 |
|
|
$article_show["User-Agent"],<br> |
222 |
|
|
$article_show["References"]</i>: Bei "true" wird die jeweilige Headerzeile in der |
223 |
|
|
Artikelansicht angezeigt, bei "false" wird sie unterdrückt. Momentan ist |
224 |
|
|
die Ansicht weiterer Headerzeilen nicht möglich. |
225 |
|
|
</ul></p> |
226 |
|
|
|
227 |
|
|
<p><b>Frameunterstützung</b><br> |
228 |
|
|
Beispieldateien für die Frameunterstützung liegen in |
229 |
|
|
<tt>extras/frames/</tt>. In dieser Sektion werden die targets für |
230 |
|
|
diverse Links definiert, also in welchem Frame welche Webseite dargestellt |
231 |
|
|
werden soll. In der <tt>config.inc</tt> muß statt "<i>thread.php3</i>" |
232 |
|
|
"<i>thread_frameset.php3</i>" eingetragen werden. |
233 |
|
|
<ul> |
234 |
|
|
<li><i>$frame_article</i>: Name des Artikel-Frames. Muß mit dem Namen |
235 |
|
|
in <tt>thread_frameset.php3</tt> übereinstimmen |
236 |
|
|
<li>$frame_thread</i>: Name des Thread-Frames; |
237 |
|
|
<li><i>$frame_groups</i>: Name des Frames für die Gruppenübersicht, |
238 |
|
|
normalerweise "_top". |
239 |
|
|
<li><i>$frame_post</i>: Name des Schreiben-Frames |
240 |
|
|
<li><i>$frame_threadframeset</i>: Frame, in dem der Frameset erscheinen |
241 |
|
|
soll, der den Artikel- und Thread-Frame aufnimmt. Normalerweise "_top". |
242 |
|
|
<li><i>$frame_externallink</i>: Zielframe für extrerne Links innerhalb |
243 |
|
|
von Artikeln |
244 |
|
|
</ul> |
245 |
|
|
|
246 |
|
|
<p><b>Sicherheitseinstellungen</b> |
247 |
|
|
<ul> |
248 |
|
|
<li><i>$send_poster_host</i>: bei "true" wird bei jeder geschriebenen Nachricht noch |
249 |
|
|
die Zeile "X-HTTP-Posting-Host: " in den Header geschrieben, und der Name |
250 |
|
|
des Rechners eingetragen, der die Nachricht abgeschickt ist. Das kann als |
251 |
|
|
Ersatz von "NNTP-Posting-Host" angesehen werden, dessen Wert beim Einsatz |
252 |
|
|
von Newsportal immer nur den Namen des Webservers anzeigt. |
253 |
|
|
<li><i>$readonly</i>: wenn auf "true" gesetzt, kann man keine Artikel in Gruppen |
254 |
|
|
schreiben. |
255 |
|
|
<li><i>$testgroup</i>: auf "true" gesetzt wird beim Anzeigen des Threads überprüft, ob |
256 |
|
|
betreffende Gruppe in die "groups.txt" eingetragen ist. |
257 |
|
|
Andernfalls könnte man über das direkte Eintragen der richtigen URL eine |
258 |
|
|
Gruppe einsehen, obwohl diese nicht in der Gruppenübersicht angezeigt wird. |
259 |
|
|
<li><i>$validate_email</i>: Hier kann eingestellt werden, wie Newsportal |
260 |
|
|
beim Posten eine angegebene eMail-Adresse auf richtigkeit prüft: |
261 |
|
|
<ul> |
262 |
|
|
<li>0: keine Überprüfung. Ist nicht zu empfehlen, da |
263 |
|
|
normalerweise der Newsserver eine Fehlermeldung liefert, wenn |
264 |
|
|
die Adresse syntaktisch Falsch ist. |
265 |
|
|
<li>1: Ü:berprüft die Adresse auf syntaktische Richtigkeit. |
266 |
|
|
<li>2: hier wird zusätzlich überprüft, ob zu der angegebenen |
267 |
|
|
Domain ein MX oder A Record existiert. |
268 |
|
|
</ul> |
269 |
|
|
</UL></p> |
270 |
|
|
|
271 |
|
|
<p><b>Allgemeines</b> |
272 |
|
|
<ul> |
273 |
|
|
<li><i>$title</i>: Name des Systems, wird als Überschrift verwendet |
274 |
|
|
|
275 |
|
|
<li><i>$organization</i>: Die Organisation für den NNTP-Header beim |
276 |
|
|
Schreiben von Nachrichten |
277 |
|
|
|
278 |
|
|
<li><i>$setcookies</i>: Erlaubt dem Benutzer, seinen Namen und seine eMail-Adresse |
279 |
|
|
beim schreiben eines Artikels als Cookie abzuspeichern, so daß die Daten |
280 |
|
|
beim erneuten Schreiben eines Artikels automatisch eingesetzt werden. |
281 |
|
|
|
282 |
|
|
<li><i>$compress_spoolfiles</i>: Hier kann eingestellt werden, ob die |
283 |
|
|
Spooldateien komprimiert werden sollen. Dies ist im Normalfall empfohlen, |
284 |
|
|
da auf etwa 10 bis 15% der Originalgröße komprimiert wird. |
285 |
|
|
Bei aelteren PHP-Versionen muß man diese Variable jedoch auf |
286 |
|
|
<code>false</code> setzen, falls diese Kompression noch nicht |
287 |
|
|
unterstützen. |
288 |
|
|
</ul></p> |
289 |
|
|
|
290 |
|
|
<h2>Sicherheitshinweise</h2> |
291 |
|
|
|
292 |
|
|
<p>Ein paar Kleinigkeiten müßen beachtet werden, damit NewsPortal |
293 |
|
|
nicht zu einem Sicherheitsloch werden soll: |
294 |
|
|
<ul> |
295 |
|
|
<li>Zu Debugzwecken wird immer der User-Agent in der Artikelansicht |
296 |
|
|
mitübermittelt, wenn die Anzeige ($article_show["User-Agent"]) |
297 |
|
|
abgeschaltet ist, ist der Eintrag lediglich unsichtbar. |
298 |
|
|
<li>Die config.inc kann solange von jedem Websurfer (der den Dateinamen |
299 |
|
|
kennt) abgerufen werden, wie die Datei nicht in einen geschützten Bereich |
300 |
|
|
des Webservers verschoben worden ist. |
301 |
|
|
</ul></p> |
302 |
|
|
|
303 |
|
|
<p>Dieses Skript war ursprünglich (und eigentlich immer noch) nur für |
304 |
|
|
den Zugriff auf lokale Newsgruppen |
305 |
|
|
gedacht. Wenn Gruppen des UseNet im Web verfügbar sind, ergeben sich |
306 |
|
|
folgende Probleme: |
307 |
|
|
<ul> |
308 |
|
|
<li>Spammer können anonym ($send_poster_host beachten!) Artikel abschicken |
309 |
|
|
<li>Newsportal erzeugt 8bit-Headerzeilen (z.B. das Subject), was eigentlich |
310 |
|
|
nicht erlaubt ist. Es scheint aber keine ernsthaften Probleme zu geben. |
311 |
|
|
<li>Es gibt im Internet Listen mit sogenannten "offenen" Newsservern. Offen |
312 |
|
|
heißt hier meist nicht, daß die jeder benutzen darf, sondern |
313 |
|
|
daß diese einfach nur nicht ordentlich gesichert worden sind. Bevor Du |
314 |
|
|
also einen solchen Newsserver benutzt, solltest Du Dich vergewissern, |
315 |
|
|
daß der Betreiber nichts gegen Dein Vorhaben einzuwenden hat. |
316 |
|
|
<li>Es wird im UseNet oft nicht gerne gesehen, wenn Personen anonym in |
317 |
|
|
Newsgruppen schreiben können. Bevor Du also schreibenden Zugriff auf |
318 |
|
|
eine Newsgruppe erlaubst, solltest Du in der betreffenden Gruppe nachfragen, |
319 |
|
|
ob es dort keine Einwände gibt. Etwas anderes ist es natürlich, |
320 |
|
|
wenn Du NewsPortal in einem geschützten Bereich Deines Webservers |
321 |
|
|
betreibst, auf den nur eine Dir bekannte Benutzergruppe zugreifen kann. |
322 |
|
|
<b>Gib keinen öffentlichen Schreibzugriff auf UseNet Newsgruppen, wenn |
323 |
|
|
Du nicht ganz genau weißt, was Du tust!</b> |
324 |
|
|
</ul></p> |
325 |
|
|
|
326 |
|
|
<p>Die Benutzung des Skripts erfolgt auf eigene Gefahr!</p> |
327 |
|
|
|
328 |
|
|
|
329 |
|
|
<h2>Kompatiblität</h2> |
330 |
|
|
|
331 |
|
|
<p>Sollte auf jedem PHP3-Fähigen Webserver zusammen mit jedem NNRP-fähigen |
332 |
|
|
Newsserver laufen. Webserver und Newsserver müßen nicht auf der selben |
333 |
|
|
Maschine laufen.</p> |
334 |
|
|
|
335 |
|
|
<h2>Kontakt:</h2> |
336 |
|
|
|
337 |
|
|
<p>Florian Amrhein<br> |
338 |
|
|
eMail: <a href="mailto:florian.amrhein@gmx.de">florian.amrhein@gmx.de</a><br> |
339 |
|
|
WWW: <a href="http://floh.gartenhaus.net">http://floh.gartenhaus.net</a> |
340 |
|
|
</p> |