Avatar billede jammerlab Nybegynder
20. september 2002 - 17:00 Der er 22 kommentarer og
3 løsninger

PHP tagwall sikkerhed

Dau derude... min tagwall virker fint, men der er ingen sikkerhed... hvordan for jeg den til at fjerne <> i den text som man adder? :) og hvordan kan jeg få den til at identify tags som ":)" så den indsætter et billed istedet... det skal siges jeg er n00b til php men jeg har da kunnet lave en tagwall til mysql uden at læse en skid hehe så lidt kan jeg vel -> fyr løs!
Avatar billede jammerlab Nybegynder
20. september 2002 - 17:07 #1
upz nu ved jeg hvad jeg også glemte at spørge om... er der en commando i php som stopper det hele? I mirc scripting er dte bare "halt" er der noget lignende?
Avatar billede andy Nybegynder
20. september 2002 - 17:25 #2
Avatar billede rune_m Nybegynder
20. september 2002 - 17:52 #3
addslashes($string);
stripslashes($string);
exit;
Avatar billede rune_m Nybegynder
20. september 2002 - 17:55 #4
function addSmileys($outp) {
    $outp = wordwrap ($outp, 80, "\n", 1);
    $outp2 = nl2br($outp);
    $outp2 = str_replace(":)", "<img border='0' src='./smilies/smile.gif'>", $outp2);
    $outp2 = str_replace(";)", "<img border='0' src='./smilies/wink.gif'>", $outp2);
    $outp2 = str_replace(":(", "<img border='0' src='./smilies/sur.gif'>", $outp2);
    $outp2 = str_replace(":hmm", "<img border='0' src='./smilies/hmm.gif'>", $outp2);
    $outp2 = str_replace(":frown", "<img border='0' src='./smilies/frown.gif'>", $outp2);
    $outp2 = str_replace(":cool", "<img border='0' src='./smilies/cool.gif'>", $outp2);
    $outp2 = str_replace(":tup", "<img border='0' src='./smilies/thumb.gif'>", $outp2);
    $outp2 = str_replace(":o", "<img border='0' src='./smilies/redchicks.gif'>", $outp2);
    $outp2 = str_replace(":insta", "<img border='0' src='./smilies/instagib.gif'>", $outp2);
    $outp2 = str_replace(":finger", "<img border='0' src='./smilies/thefinger.gif'>", $outp2);
    $outp2 = str_replace(":wow", "<img border='0' src='./smilies/wow.gif'>", $outp2);
    $outp2 = str_replace(":rock", "<img border='0' src='./smilies/rock.gif'>", $outp2);
   
   
    return $outp2;
}

$minvariabel = addSmileys($minvariabel);
echo $minvariabel;
----------
kan kun anbefale at indsætte det i en funktion så du kan tage en hvilken som helst variabel og adde smileys ..
Avatar billede jammerlab Nybegynder
20. september 2002 - 19:26 #5
ok jeg prøver at forstå :|
stripslashes($string); < $string er så den text der skal addes i tagwallen ik?

exit; < yes så det er altså commandoen til at stoppe hele lortet? :)

den med replace der... det kræver nok lidt test fra min side... men ellers så er det pænt easy?
Avatar billede rune_m Nybegynder
20. september 2002 - 20:12 #6
addslashes når du gemmmer i mysql .. og strip når du henter frem igen .. exit stopper ja ..

addslashes smider \ foran: " ' \ .. strip fjerner igen.

$var = str_replace("<", "",$var);
$var = str_replace(">", "",$var);
Hjælper også lidt i den retning ;)
Avatar billede jammerlab Nybegynder
20. september 2002 - 23:34 #7
Hm rune du lyder som om du er frisk på at hjælpe mig lidt mere for jeg kan ikke lige finde ud af at få det til at virker :)
http://www.jammerlab.dk/tagwall.txt
der kan du se min rimlig simple tagwall hehe... hjælp mig lige - tak
Avatar billede kau Nybegynder
20. september 2002 - 23:37 #8
Talker...
Hm... Du er vel ikke den vicevært på thebeat eller noget?
Avatar billede jammerlab Nybegynder
20. september 2002 - 23:52 #9
?? Nej jeg er ikke vicevært... jeg har været 3d graffikeren på det gamle thebeat :)
Avatar billede kau Nybegynder
21. september 2002 - 00:02 #10
Ah.. Ok jeg var Assistent i kaldte mig KaW ved ik om du kan husk :D
Avatar billede jammerlab Nybegynder
21. september 2002 - 00:08 #11
hehe kan ikke huske så meget fra den :) men sjovt det var det da indtil vi lukkede...
Avatar billede kau Nybegynder
21. september 2002 - 00:45 #12
Yup :)
Avatar billede alrua Nybegynder
22. september 2002 - 00:55 #13
http://dk.php.net/manual/en/function.htmlentities.php

Den skal du bare sende alt dit output igennem - så sørger den for at man ikke kan indsætte html-kode :)
Du kan selv vælge om du vil gøre det når du sætter det ind i databasen, eller når du hiver det ud.

Mht smilies, har rune vist svaret dig :)

-Alrua
Avatar billede rune_m Nybegynder
22. september 2002 - 11:08 #14
:) den kendte jeg ikke
Avatar billede jammerlab Nybegynder
22. september 2002 - 12:43 #15
hehe jamen det går ik... som sagt er jeg lidt n00b så kigger altså bare forvirret på jeres svar :)
string htmlentities ( string string [, int quote_style [, string charset]])

erhm...... som sagt *lost* :)
Avatar billede alrua Nybegynder
22. september 2002 - 18:47 #16
hvis du har din tekst i $text vil:

$text = htmlentities($text);

erstatte alle html-tags så de er "uskadelige"

-Alrua
Avatar billede jammerlab Nybegynder
23. september 2002 - 10:38 #17
hehe ok jeg tager et kik på det når jeg kommer hjem :)
Alura tak for du skærer det ud i pap for mig ;)
Avatar billede jammerlab Nybegynder
23. september 2002 - 16:27 #18
Alura - tak, nu virker sikkerheden ihvertfald... nu mangler jeg bare det der smily ting :)
Avatar billede jammerlab Nybegynder
23. september 2002 - 16:31 #19
$gettags = mysql_query("SELECT id,opretter,tekst FROM tagwall ORDER BY id DESC");
while($tags=mysql_fetch_array($gettags)) {
$tags[tekst] = htmlentities($tags[tekst]);
str_replace(":)", "<img src='sti/til/giffile.fig'>", $tags[tekst]);
print "
<table width=400 border=0 cellspacing=0 cellpadding=0 class=menu>
  <tr>
    <td class=wares5><span class=normaltextfed>&nbsp; $tags[opretter]</span></td>
  </tr>
  <tr>
    <td><span class=normaltext>$tags[tekst]</td>
  </tr>
</table><br>
";


ser det ikke rigtigt ud? eller vil i lige rette den til så det passer? :)
Avatar billede alrua Nybegynder
23. september 2002 - 16:51 #20
Her har rune faktisk svaret dig...forsøger mig lige med noget pap igen ;)

function addsmilies($outp) {
    $outp2 = htmlentities($outp);
    $outp2 = nl2br($outp2);
    $outp2 = wordwrap ($outp2, 80, "\n", 1);
    $outp2 = str_replace(":)", '<img border="0" src="./smilies/smile.gif">', $outp2);
    $outp2 = str_replace(";)", '<img border="0" src="./smilies/wink.gif">', $outp2);
    $outp2 = str_replace(":(", '<img border="0" src="./smilies/sur.gif">', $outp2);
    $outp2 = str_replace(":hmm:", '<img border="0" src="./smilies/hmm.gif">', $outp2);
    $outp2 = str_replace(":frown:", '<img border="0" src="./smilies/frown.gif">', $outp2);
    $outp2 = str_replace(":cool:", '<img border="0" src="./smilies/cool.gif">', $outp2);
    $outp2 = str_replace(":tup:", '<img border="0" src="./smilies/thumb.gif">', $outp2);
    $outp2 = str_replace(":o", '<img border="0" src="./smilies/redchicks.gif">', $outp2);
    $outp2 = str_replace(":insta:", '<img border="0" src="./smilies/instagib.gif">', $outp2);
    $outp2 = str_replace(":finger:", '<img border="0" src="./smilies/thefinger.gif">', $outp2);
    $outp2 = str_replace(":wow:", '<img border="0" src="./smilies/wow.gif">', $outp2);
    $outp2 = str_replace(":rock:", '<img border="0" src="./smilies/rock.gif">', $outp2);
   
   
    return $outp2;
}

$minvariabel = addSmileys($minvariabel);
echo $minvariabel;
-----
Det den gør...

Det første (til og med })er en funktions-dekleration, som du bare skal have med på alle dine sider. Den gør det at den automatiserer en process (i dette tilfælde at adde smilies).

Når du har den defineret (altså når du har inkluderet koden) kan du kalde funktionen med en parameter og funktionen sender så teksten i parametren tilbage med text erstattet med smilies.
I det her tilfælde vil funktionen også sørge for linjeombrydning og at alle linjeskift som brugeren har indtastet bliver til <br>.

Jeg har tilladt mig at tilføje htmlentities også, så du faktisk kan nøjes med at kalde denne funktion.

Funktionen bruges ligesom htmlentities gjorde før:
  $text = addsmilies($text);
Så vil $text være formateret som det skal og smilies vil være tilføjet.

Du skal dog ændre nogle ting i funktionen for at den virker. Jeg vil her tage en linje som eksempel:
    $outp2 = str_replace(":)", '<img border="0" src="./smilies/smile.gif">', $outp2);
Denne linje erstatter teksten ":)" med et billedet smilies/smile.gif

Du kan så ændre i både tekst og billedeplacering for at tilføje smilies og i hele taget få det til at se ud som du vil have det :)

Jeg har også foretaget et par andre ændringer, bl.a. flyttet wordwrap ned _efter_ nl2br funktionen så linjeskiftene derfra ikke bliver konverteret til <br>-tags

Håber det hjælper :)

-Alrua
Avatar billede alrua Nybegynder
23. september 2002 - 17:00 #21
Med den dersens funktion indbygget:

$gettags = mysql_query("SELECT id,opretter,tekst FROM tagwall ORDER BY id DESC");
while($tags=mysql_fetch_array($gettags)) {
$tags['tekst'] = addsmilies($tags['tekst']);
print "
<table width=400 border=0 cellspacing=0 cellpadding=0 class=menu>
  <tr>
    <td class=wares5><span class=normaltextfed>&nbsp; $tags[opretter]</span></td>
  </tr>
  <tr>
    <td><span class=normaltext>$tags[tekst]</td>
  </tr>
</table><br>
";
}
Avatar billede jammerlab Nybegynder
23. september 2002 - 19:54 #22
Alrua ... den pap metode der virker ret heftigt... jeg tror sq jeg er ved at fatte det *GG*, men jeg kan ikke teste det endnu min switch valgte åbenbart bare at buste port 4 hvor min server sad i :| sååå... jeg må lige se på det engang...
Avatar billede alrua Nybegynder
23. september 2002 - 20:08 #23
Rart at høre - altid til tjeneste :D
Du kan vel bare skifte port? ;)

Hvis du skal have mere skåret ud i pap, kan du vel finde mig på msn eller icq, hhv. alrua55@hotmail.com og 3072521 - det er trods alt nemmere :D

-Alrua
Avatar billede jammerlab Nybegynder
15. januar 2003 - 10:28 #24
alura smid et svar :)
Avatar billede alrua Nybegynder
15. januar 2003 - 17:36 #25
ok så :D
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