Themen mit http nicht zulassen

Neue Projekte und Anfragen, Teamarbeiten und Alpha/Beta Scripte jeder Art.
KEINE Supportanfragen zu bestehenden MODs!
Antworten
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Themen mit http nicht zulassen

Beitrag von Holger »

Hi,

kann ich irgendwie verhindern, dass Themen und Antworten mit URLs geschrieben werden?
Am liebsten wäre mir, eine Fehlermeldung wird angezeigt, wenn jemand versucht eine Antwort/ein Thema mit URL zu speichern.

Gruss
Holger
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Man könnte mittels preg_match vorhandene URL-Tags im Post zählen lassen und bei einem Ergebnis dann meckern.
Also sowas in der Art:

Code: Alles auswählen

if (preg_match("/\[url/", $message))
{
message_die(GENERAL_MESSAGE, 'Keine Links posten!');
}
Möglich wäre auch:

Code: Alles auswählen

if (strpos($message, "[url"))
{
message_die(GENERAL_MESSAGE, 'Keine Links posten!');
}
Einbauen würde ich das in der posting.php direkt vor der Zeile mit

Code: Alles auswählen

prepare_post(...);
Ansonsten müsste man in der bbcode.php in der Funktion make_clickable zusätzlich alle umgesetzten Links zählen, sofern diese eben vorhanden sind.
Da müsste ich mir aber nochmal eingehender Gedanken machen, was da zu tun wäre.
Oder Du baust die Formatierung aus der viewtopic.php einfach aus...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Die von Dir vorgeschlagenen Code-Schnipsel funktionieren nur, wenn mit dem bbcode [url] gearbeitet wird?
Könnte man auf ähnlicher Art nach "http" suchen?
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Klar.
Musst dann eben eine 2. Prüfung machen.
Sinnvoll wären "http", "www", "ftp", etc...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Ok, muss ich wirklich eine 2. Prüfung machen oder würde z.B.

Code: Alles auswählen

if (strpos($message, "http")) 
{ 
message_die(GENERAL_MESSAGE, 'Keine Links posten!'); 
}
reichen?
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nicht wirklich, da man ja Links auch nur mit www.oxpus.de posten kann, also ohne http.
Vielleicht wäre es geschickter, selbst bei diesen vielen Prüfungen einen Zähler zu verwenden, also vor der ersten URL-Prüfung auf 0 und mit jeder Regel eins hochzählen.
Und nach der letzten Regel prüfen, ob der Zähler > 0 ist und dann die Meldung ausgeben.
Was anderes geschieht ja in der bbcode.php mit den unterschiedlichen Link-Formen ja auch nicht beim Formatieren...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Da die Spambots fast immer links mit http posten reicht das ja.

Könnte ich sonst ganz stupide auch

Code: Alles auswählen

if (strpos($message, "http")) 
{ 
message_die(GENERAL_MESSAGE, 'Keine Links posten!'); 
}

if (strpos($message, "www")) 
{ 
message_die(GENERAL_MESSAGE, 'Keine Links posten!'); 
}

prepare_post(...);
verwenden?
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ja, das ginge auch. Vergrössert aber dabei das Script, welches der Server ja komplett laden muss.
Aber funktionabel...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

Ich habe

Code: Alles auswählen

if (strpos($message, "http")) 
{ 
message_die(GENERAL_MESSAGE, 'Keine Links posten!'); 
} 


if (strpos($message, "www")) 
{ 
message_die(GENERAL_MESSAGE, 'Keine Links posten!'); 
} 


prepare_post(...);
eingesetzt. Trotzdem werden z.B. www.test.de nicht angemeckert!

/Holger
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Benutzeravatar
Bootenks
Beiträge: 1836
Registriert: Sa 29.Mai, 2004 23:36
Wohnort: G?rlitz (?stlichste Stadt Deutschlands)

Beitrag von Bootenks »

Och Leute... Sowas macht man doch nicht...

strpos gibt beim Fund die Stelle als int zurück und im negativen Fall den BOOLEAN Wert FALSE!

Klar ihr denkt, dass wenn er nichts findet da gar nicht reingeht und wenn er was findet die Zahl als TRUE wertet! Dem ist aber nicht in allen Fällen so. Um genau zu sein klappt das bei einem Wert nicht: 0 Wenn man in einer Bedingung nur 0 stehen hat, bedeutet dieses FALSE! Sprich diese Stelle spuckt euch in die Suppe. *grins*
Nur ein Informatik Student. ^^
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

UND?
Wie ist die Lösung, Schlaumeier? *fgrins*

:rofl:
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se
Benutzeravatar
Bootenks
Beiträge: 1836
Registriert: Sa 29.Mai, 2004 23:36
Wohnort: G?rlitz (?stlichste Stadt Deutschlands)

Beitrag von Bootenks »

Ich und Schlaumeier :P Hier führen viele Wege nach Rom... So würde es z.B. gehen:

Code: Alles auswählen

!stristr($message, "http") === FALSE
funktionieren :P

Naja ich würde es aber an deiner Stelle lieber mit reg. Expression machen :)

Edit:
jetzt hab ich dir das Bsp unterschlagen.. :P nicht, dass ich noch ein Drückeberger bin :P

Code: Alles auswählen

eregi("http|www", $message)
Zuletzt geändert von Bootenks am Mo 20.Nov, 2006 13:21, insgesamt 1-mal geändert.
Nur ein Informatik Student. ^^
Holger
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Beitrag von Holger »

UND??????????????? WIE??????????? :wall:

Oder: wie kann ich

Code: Alles auswählen

!stristr($message, "http") === FALSE
mit dem anderen kombinieren?



EDIT:
Also:

Code: Alles auswählen

if (eregi("http|www", $message)) 
{ 
message_die(GENERAL_MESSAGE, 'Keine Links posten!'); 
} 

prepare_post(...);
Zuletzt geändert von Holger am Mo 20.Nov, 2006 13:26, insgesamt 2-mal geändert.
Benutzeravatar
Bootenks
Beiträge: 1836
Registriert: Sa 29.Mai, 2004 23:36
Wohnort: G?rlitz (?stlichste Stadt Deutschlands)

Beitrag von Bootenks »

jep so schaut es aus ;)
Nur ein Informatik Student. ^^
Antworten