Avatar billede nikksen Nybegynder
24. december 2005 - 14:29 Der er 6 kommentarer og
1 løsning

Tegn ændres til f.eks. < ved retning af nyhed i database

Jeg har et nyhedssystem hvor jeg så har tilføjet en funktion til at rette de oprettede nyheder, men når jeg retter dem bliver tegn som " > < osv. ændret til tekstform som f.eks. &lt;

Herunder ses den del af koden der opdaterer nyheden. Hvad mangler jeg eller hvad gør jeg galt?


$query  = $db->query("SELECT * FROM oak_news WHERE id='$id'");
                $viewnyhed = $db->fetch_array($query);

                if ( !$viewnyhed['id'] ) {
                        error($lang['badname'], false);
                }

                $delete = "delete$viewnyhed[id]";
                $delete = "${$delete}";

                $navn            = isset($newnavn) ? checkInput($newnavn, 'no', 'no', 'javascript', false) : '';
                $titel            = isset($newtitel) ? checkInput($newtitel, 'no', 'no', 'javascript', false) : '';
                $tekst            = isset($newtekst) ? checkInput($newtekst, 'no', 'no', 'javascript', false) : '';
                $dato            = isset($newdato) ? checkInput($newdato, 'no', 'no', 'javascript', false) : '';
                $type    = isset($newtype) ? checkInput($newtype, 'no', 'no', 'javascript', false) : '';

                if($delete != "") {
                    // Slettes fra database
                    $db->query("DELETE FROM oak_news WHERE id='$delete'");

                    $site_body = "<font class=txt><p align=center>Nyheden: <i>$viewnyhed[titel]</i> er <font color=#8C0000>slettet</font>!</p></font>";
                }else{
                    // Indsættes i database til retning af nyhed
                    $db->query("UPDATE oak_news SET navn='$navn', titel='$titel', tekst='$tekst', dato='$dato', type='$type' WHERE id='$id'");
Avatar billede fixxxer Nybegynder
24. december 2005 - 14:34 #1
Post funktionen checkInput().. "fejlen" skal nok findes i den..
Avatar billede nikksen Nybegynder
24. december 2005 - 14:50 #2
Det havde jeg også lidt på fornemmelsen, men ved ikke hvad den evt. skal ændres til...
Avatar billede fixxxer Nybegynder
24. december 2005 - 14:56 #3
Hvis du copy/paster den her ind, så kan jeg jo forsøge at fortælle dig hvad den skal ændres til :)
Avatar billede nikksen Nybegynder
24. december 2005 - 15:02 #4
Den er fra xmbforum:

function checkInput($input, $striptags='no', $allowhtml='no', $word='', $no_quotes=true) {
    // Function generously donated by FiXato

    $input = trim($input);
    if ( $striptags == 'yes' ) {
        $input = strip_tags($input);
    }

    if ( $allowhtml != 'yes' && $allowhtml != 'on' ) {
        if ( $no_quotes ) {
            $input = htmlspecialchars($input, ENT_NOQUOTES);
        } else {
            $input = htmlspecialchars($input, ENT_QUOTES);
        }
    }
    if ( $word != '' ) {
        $input = str_replace($word, "_".$word, $input);
    }

    return $input;
}
Avatar billede fixxxer Nybegynder
24. december 2005 - 15:10 #5
2. argument i funktionen checkInput() fortæller om HTML skal være tilladt. Hvis det ikke er, så ændres HTML til deres matchende entities, som fx &lt;

$tekst            = isset($newtekst) ? checkInput($newtekst, 'no', 'yes', 'javascript', false) : '';
Avatar billede nikksen Nybegynder
24. december 2005 - 15:17 #6
Det virkede, tak for det! :)
Avatar billede fixxxer Nybegynder
24. december 2005 - 15:21 #7
Tak for point :)

Glædelig jul
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester