Brauche bitte eine Idee für ein Gästebuch!!!
php^noob
- php
Hallo
hat villeicht einer von euch ne idee??
ich möchte in php ein gästebuch machen wo man einerseits mit html arbeiten kann aber auch die Sonderzeichen (z.b. < und > " " usw.) angezeigt werden also wenn man dan z.b. <br> schreibt macht er nen zeilenumbruch und bei --> oder so schreibt er des dann einfach so hin!!!
wie kann ich des machen???
bitte helft mir
güße
Jo (php^noob)
Moin!
Hallo
hat villeicht einer von euch ne idee??
ich möchte in php ein gästebuch machen wo man einerseits mit html arbeiten kann aber auch die Sonderzeichen (z.b. < und > " " usw.) angezeigt werden also wenn man dan z.b. <br> schreibt macht er nen zeilenumbruch und bei --> oder so schreibt er des dann einfach so hin!!!
wie kann ich des machen???
Das dürfte ziemlich unmöglich sein, weil du Bedeutungskonflikte hast:
Wenn jemand <b> schreibt, meint er dann "Fettschrift einschalten", oder wollte er ein B in eckigen Klammern eingeben?
Alle Boards, die Formatierung der Beiträge zulassen, behelfen sich mit einer Meta-Auszeichnung. Wer fette Schrift haben will, muß z.B. [b]Fettschrift[/b] eingeben. Und auch hier im Forum gibts solche Meta-Auszeichnung: Links kann man nicht mit <a href="linkziel"> eingeben, sondern muß dafür <linkziel> eingeben. Das wird allerdings noch von einem regulären Ausdruck geprüft, deshalb siehst du das <linkziel> so, wie es eingegeben wurde. Wenn ich meine Homepage mit einer existierenden URL verlinke, siehst du nur noch den Link: http://www.rtbg.de Aber den kannst du anklicken. Im Eingabefenster sehen beide exakt gleich aus.
Natürlich hat auch diese Methode einen Nachteil: Man kann nicht mehr die Zeichenfolge [b] bzw: <...> eingeben, weil das jetzt eine besondere Bedeutung hat. Das ist im Prinzip also nicht viel besser, als wenn man <b> eingibt, und das dann immer fett wird.
Im Grunde genommen mußt du, egal wie sie nun genau aussehen, ein paar Zeichenfolgen definieren, die für Formatierung zuständig sind, und verlierst immer die Möglichkeit, diese Zeichenfolgen dann direkt einzugeben. Du könntest dann noch definieren, dass es ein Escape-Zeichen gibt, welches vor der Zeichenfolge eingegeben werden kann, um der Zeichenfolge ihre Sonderwirkung zu nehmen. Dann muß aber das Escape-Zeichen besonders eingegeben werden, wenn es als Zeichen erscheinen soll. Du siehst: Das ist für den normalen Anwender alles nicht wirklich einfach zu verstehen, und wahrscheinlich ist es für normale Besucher zu kompliziert. Denn wer sich auskennt, könnte auch gleich normales HTML eingeben.
- Sven Rautenberg
Hallo,
danke
so ne idee mit den [ ] hatte ich auch schon -> dann mach ichs halt so
[ schreibt ja eh keiner hin aber kannst du mir sagen wie des mit <linkziel> geht das des nich verlinkt wird aber bei nem link schon http://www.web.de *testeobsgeht* geht des nur bei ner seite die 's gibt oder is des ein if des schaut ob http da steht??
gruß
php^noob
Moin!
so ne idee mit den [ ] hatte ich auch schon -> dann mach ichs halt so
[ schreibt ja eh keiner hin aber kannst du mir sagen wie des mit <linkziel> geht das des nich verlinkt wird aber bei nem link schon http://www.web.de *testeobsgeht* geht des nur bei ner seite die 's gibt oder is des ein if des schaut ob http da steht??
Im Prinzip ist es so, dass ein regulärer Ausdruck prüft, ob eine gültige URL angegeben wurde. Um es aber noch komplexer zu machen: Man kann auch Links auf lokale Dokumente setzen, z.B. auf die Forums-FAQ: </faq/>. Der Link wird auch erkannt. Ich hab' nicht nachgeschaut, wie der Posting-Parser das erkennt, aber in eben dieser FAQ steht drin, wie man Links hier im Forum setzen kann, und auch, welche URL-Formen erlaubt sind. Alles, was mit Slash / beginnt, ist mit Sicherheit eine lokale URL für _diesen_ Forumsserver. Außerdem kann man noch URLs auf andere Postings setzen, z.B. [pref:t=32485&m=175971]. Die werden sogar gesondert behandelt (wenn das Posting ins Archiv wandert, ändert sich der Link aber leider noch nicht).
Externe Links werden übrigens nicht darauf geprüft, ob es die Seite gibt, sondern nur, ob die URL formal korrekt ist. Es empfiehlt sich bei komplizierteren URLs mit vielen Parametern auch, die Posting-Vorschau zu benutzen, denn da passieren gerne mal Unglücke.
- Sven Rautenberg
Hallo Sven,
Im Prinzip ist es so, dass ein regulärer Ausdruck prüft,
ob eine gültige URL angegeben wurde. Um es aber noch
komplexer zu machen: Man kann auch Links auf lokale
Dokumente setzen, z.B. auf die Forums-FAQ: </faq/>.
Der Link wird auch erkannt. Ich hab' nicht nachgeschaut,
wie der Posting-Parser das erkennt, [...]
Im Grunde recht einfach. Zuerst werden die Links eingesammelt:
push @links,[$1, $2] while $txt =~ /[(link):\s*([^]\s]+)\s*]/ig;
Danach wird der Array per grep() auf Gueltigkeit geprueft:
@links = grep {
is_URL($_->[1] => qw(http ftp news nntp telnet gopher mailto))
Hier wird geprueft, ob es eine gueltige (absolute) URI aus
einer der angegebenen Protokolle ist.
or is_URL(($_->[1] =~ /[1][Ii][Ee][Ww]-[Ss][Oo][Uu][Rr][Cc][Ee]:(.+)/)[0] || '' => 'http')
Hier wird geprueft, ob die URI vielleicht ein
'view-source'-Link ist, Protokoll *muss* hierbei HTTP sein.
or ($_->[1] =~ m<^(?:.?.?/(?!/)|?)> and is_URL(rel_uri($_ -> [1],$base) => 'http'))
Hier wird geprueft, obs eine relative URI ist. Dazu wird
geschaut, ob entweder ein relativer oder ein absoluter Pfad
angegeben wurde, oder ob ein Link auf das aktuelle Script
gegeben ist und nur der Query-String unterschiedlich ist. Ist
das der Fall, wird eine absolute URL (ueber rel_uri) erstellt
und dann die Validitaet der neuen, absoluten URI geprueft.
Der Code stammt ueberigens noch aus dem alten Forum, ist also
aus Andies Feder.
Alles, was mit Slash / beginnt, ist mit Sicherheit eine
lokale URL für _diesen_ Forumsserver.
Auch alles, was mit . oder .. beginnt.
Gruesse,
CK
Vv ↩︎
Hallo!
(wenn das Posting ins Archiv wandert, ändert sich der Link aber leider noch nicht).
Könnte man da nicht eine wirklich einfache rewrite_rule in das Verzeichnis /Archiv/ legen, die den Request /?t=32485&m=176047 auf ein bestimmtes Script lenkt und diesem die Parameter übergibt? Dieses Script müßte dann einen Hash haben, in dem steht welches Jahr/Monat der Thread t=32485 ist, und dann einfach eine Header-Weiterleitung auf /2002/12/32485/#m176047.
Es würde ja ein Hash reichen, immer mit der ersten Thread-Nummer des Monats, dann könnte man die IDs Monatsweise in einer Schleife durchgehen und sobald die zu prüfende ID kleiner als die in der Schleife wird hätte man Monat und Jahr. Das setzt man eben zusammen und schickt es als Location-Header dem Browser zurück.
Da das soooo selten vorkommen dürfte halte ich so eine Lösung für erheblich Performance-Schonender als immer alle Links umzuschreiben.
Viele Grüße
Andreas
Salvete!
Das dürfte ziemlich unmöglich sein, weil du Bedeutungskonflikte hast:
Wenn jemand <b> schreibt, meint er dann "Fettschrift einschalten", oder wollte er ein B in eckigen Klammern eingeben?Alle Boards, die Formatierung der Beiträge zulassen, behelfen sich mit einer Meta-Auszeichnung. Wer fette Schrift haben will, muß z.B. [b]Fettschrift[/b] eingeben. Und auch hier im Forum gibts solche Meta-Auszeichnung: Links kann man nicht mit <a href="linkziel"> eingeben, sondern muß dafür <linkziel> eingeben. Das wird allerdings noch von einem regulären Ausdruck geprüft, deshalb siehst du das <linkziel> so, wie es eingegeben wurde. Wenn ich meine Homepage mit einer existierenden URL verlinke, siehst du nur noch den Link: http://www.rtbg.de Aber den kannst du anklicken. Im Eingabefenster sehen beide exakt gleich aus.
Eine kleine Ergänzung: Eine Technik aus "PostNuke" oder "PHPNuke" sei noch erwähnt - wenngleich sie für den "normalen" Nutzer eines Forums, Boards oder GBs sicherlich zu komplex ist:
Der Schreiber kann sich aussuchen, wie seine Nachricht interpretiert wird: Als "Plain Text" oder auch als "HTML".
Bitte bedenke aber (das geht an den Root-Schreiber), das auf jeden Fall sorgfältigt überlegt werden muss, welche HTML-Tags mit welchen Attributen erlaubt sind - sonst hast Du mal eben JavaScript, PopUps, Inlines etc. in Deinem GB - nicht angenehm! Das ist es nicht wert.
Bewährt hat sich in der Praxis allerdings die Methode, die Sven angeschnitten hat.
Grüße
Axel
Hi,
also soll ich zumbeispiel fett link und farbe erlauben
also so [tesxt:rot]blablaBLA[TEXT]
und mit link und b auch oder??
naja gar ned so schlecht an den popup scheiss hab ich gar ned gedacht danke!!!
grüße
php^noob
ps: wenns euch nix ausmacht erklärt mir bitte wie ich den string auflöse also des [text:rot] das dann immer wenn text da steh des nach dem : die farbe is solange bis wieder [text] kommt