---
title: "Censurera vissa namn eller ord"
type: "forum-thread"
url: "https://www.webforum.nu/amne/programmering/19315-censurera-vissa-namn-eller-ord"
topic: "Programmering"
topic_url: "https://www.webforum.nu/amne/programmering"
author: "Gimbo"
published: "2001-03-26T15:13:00.000Z"
updated: "2001-03-26T19:45:00.000Z"
replies: 8
views: 224
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/programmering/19315-censurera-vissa-namn-eller-ord"
---

# Censurera vissa namn eller ord

## #1 — Gimbo, 2001-03-26T15:13Z

Hejsan!

Jag undrar hur man gör för att sensurera vissa ord eller namn i ett cgi skript? alltså när de skriver ett visst namn så kommer den inte upp på sidan utan ett annat namn eller bara \*\*\*\* visas när de skriver det namnet, det är en never ending story jag har där jag inte vill att de ska skriva vissa namn...

skriptet ser ut så här:

\#!/usr/bin/perl

\# Enter the server path to the story page.
$path = "/web/sites/343/6suryoye/www.6suryoye.f2s.com/cgi-bin/story/story.html";

\# If you want to force people to use their names when adding to the story,
\# change the 0 in the next line to a 1.
$usename = 0;

\# If you want to force people to use their e-mail addresses when adding to the
\# story, change the 0 in the next line to a 1.
$useemail = 0;

\##############################################################################
\# If you don't want the script to tell you every time someone adds to the    #
\# story, you're done!                                                        #
\##############################################################################

\# If you want the script to tell you every time someone adds to the story,
\# remove the # in front of the next line.
\#$tellme = -1;

\# Enter the path to your mail program
$mailprogram = "/usr/lib/sendmail";

\# Enter your e-mail address here.  Put a backslash (\\) before the @.
$youremail = "you\\@yourdomain.com";

\##############################################################################
\# Congratulations!  You've finished defining the variables.  If you want to, #
\# you can continue screwing with the script, but it isn't necessary.         #
\##############################################################################

read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
@pairs = split(/&/, $buffer);
foreach $pair (@pairs) {
        ($name, $value) = split(/=/, $pair);
        $value =\~ tr/+/ /;
        $value =\~ s/%(\[a-fA-F0-9\]\[a-fA-F0-9\])/pack("C", hex($1))/eg;
        $value =\~ s/\<(\[^\>\]&#0124;\\n)\*\>//g; 
        $value =\~ s/\<//g;
        $value =\~ s/\>//g;
        $FORM{$name} = $value;
}
print "Content-type: text/html\\n\\n";

if ($usename) {
        unless ($FORM{'name'}) {
                print "\<html\>\<head\>\<title\>Please enter your name.\</title\>\</head\>\\n";
                print "\<body background=\\"http://www.utsikten.com/abraham/bglejon.jpg\\"\>\<h1\>Name required\</h1\>Please click back and enter\\n";
                print "your name.\\n";
                &sig;
        }
}

if ($useemail) {
        $temp = $FORM{'email'};
        $temp =\~ s/\_/a/g; $temp =\~ s/-/a/g;
        unless ($temp =\~ /\\w+@\\w+\\.\\w\\w+/) {
                print "\<html\>\<head\>\<title\>Please enter your e-mail.\</title\>\</head\>\\n";
                print "\<body background=\\"http://www.utsikten.com/abraham/bglejon.jpg\\"\>\<h1\>E-mail required\</h1\>Please click back and enter\\n";
                print "your e-mail address.\\n";
                &sig;
        }
}

unless ($FORM{'story'}) { 
        print "\<html\>\<head\>\<title\>You forgot something.\</title\>\</head\>\\n";
        print "\<body background=\\"http://www.utsikten.com/abraham/bglejon.jpg\\"\>\<h1\>Please add to the story\</h1\>You're trying to\\n";
        print "add to the story.  You can't do that unless you write\\n";
        print "something.\\n";
        &sig;
}

if ($FORM{'email'} && $FORM{'name'}) { $poster = "\<a href=\\"mailto:$FORM{'email'}\\"\>$FORM{'name'}\</a\>"; }
elsif ($FORM{'name'}) { $poster = "$FORM{'name'}"; }
elsif ($FORM{'email'}) { $poster = "\<a href=\\"mailto:$FORM{'email'}\\"\>$FORM{'email'}\</a\>"; }
else { $poster = "anonymous"; }

open(FILE,"$path");
@lines = \<FILE\>;
close(FILE);

open(FILE,"\>$path");
foreach $line(@lines) {
        if (substr($line,0,10) eq "\<!--add--\>") {
                print FILE "\<tr\>\<td width=\\"190\\"\>\<center\>This paragraph is by\\n";
                print FILE "$poster\</center\>\</td\>\<td width=\\"350\\"\>\\n";
                print FILE "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$FORM{'story'}\</td\>\</tr\>\\n";
                print FILE "\<!--add--\>\\n";
        }
        else { print FILE "$line"; }
}

print "\<html\>\<head\>\<title\>TACKAR!\</title\>\</head\>\<body background=\\"http://www.utsikten.com/abraham/bglejon.jpg\\"\>\\n";
print "Tack för att du la dit din fortsättning!  Klicka på back knappen och uppdatera sidan\\n";
print "för att se din fortsättning. Om inte din fortsättning dyker upp på en gång så dyker den upp senare, du beöver inte klicka på add story knappen flera gånger, din fortsättning kommer upp, jag lova!!!\\n";

if ($tellme) {
        open (MAIL,"&#0124;$mailprogram -t");
        print MAIL "To: $youremail\\n";
        print MAIL "From: \\"$FORM{'name'}\\" \<$FORM{'email'}\>\\n";
        print MAIL "Subject: Someone added to the story!\\n\\n";
        print MAIL "Hello.  This is just to let you know that someone added\\n";
        print MAIL "to your never ending story.  They wrote:\\n\\n$FORM{'story'}\\n";
        close(MAIL);
}
&sig;

sub sig {
\# Please do NOT change this sub or any place in this script where this sub
\# is called
        print  "\<center\>\<a hr";
        print  "ef=\\"http://\\" target=\\"new\\"\>";
        print  "\</a\>, \<a href=\\"\\" ta";
        print  "rget=\\"new\\"\>\</a\>, ";
        print  " \<a href=\\"\\" ";
        print  "arget=\\"new\\"\>\</a\>\<";
        print  "\</center\>\</body\>\</html\>\\n";       
        exit;
}

Permalänk: https://www.webforum.nu/p/19315

## #2 — Csson, 2001-03-26T15:50Z

Lite otestad kod:

```
my @censur = ('bengt', 'kalle', 'knut');

for(0..$#censur)  {
    $FORM{'story'} =~ s!\b$censur[$_]\b!Sven!ig;
}
```

Bör ersätta alla förekomster av Bengt, Kalle och Knut med Sven. Placeras troligen bäst före raden open(FILE,"$path");

/Csson

Permalänk: https://www.webforum.nu/p/341700

## #3 — Gimbo, 2001-03-26T16:09Z

det fungerar inte, jag får en interner server error när jag lägger in den kod snutten du gav mig

Permalänk: https://www.webforum.nu/p/341701

## #4 — Gimbo, 2001-03-26T16:22Z

jag menar namnet blir inte censurerat jag får inte internal server error utan namnet blir inte censurerat helt enkelt, e tacksom för hjälp :-)

Permalänk: https://www.webforum.nu/p/341702

## #5 — Csson, 2001-03-26T16:36Z

Det var nog jag som stirrade mig lite blind på att det var namn som skulle censureras, så det blev $FORM{'name'} som censurerades... Redigerade inlägget ovan, så nu bör det censurera rätt formulärfält :).

/Csson

Permalänk: https://www.webforum.nu/p/341703

## #6 — Gimbo, 2001-03-26T17:07Z

Vad menar du?? kan du vara snäll o skriva kod snutten som jag ska lägga in i koden o vart jag ska lägga den.

Det är namn som ska censureras, det skulle vara bra om även ord kunde censureras.

Permalänk: https://www.webforum.nu/p/341704

## #7 — Csson, 2001-03-26T18:14Z

Jag rättade mitt ursprungliga inlägg, så den koden borde fungera:

```
my @censur = ('bengt', 'kalle', 'knut');
for(0..$#censur)  {
    $FORM{'story'} =~ s!\b$censur[$_]\b!Sven!ig;
}
```

Det är namn du vill censurera, men inte i formulärfältet "name", utan i "story".

/Csson

Permalänk: https://www.webforum.nu/p/341705

## #8 — Gimbo, 2001-03-26T19:34Z

Det fungerar fortfarande inte, vart ska jag klistra in kod snutten du gav mig??

du kanske har tröttnat på mig men detta e viktigt, so pleas help ;-)

Permalänk: https://www.webforum.nu/p/341706

## #9 — Gimbo, 2001-03-26T19:45Z

Jag skämta det fungera tack så mycket för all hjälp :-)

Permalänk: https://www.webforum.nu/p/341707

---

Tråden på webben: https://www.webforum.nu/amne/programmering/19315-censurera-vissa-namn-eller-ord
