Avatar billede kimox Nybegynder
20. juli 2005 - 20:49 Der er 16 kommentarer og
1 løsning

Hjælp til br

Hej jeg har et problem med mit script.. hvis jeg skal opdagtere en tekst som jeg har hentet fra min db, og jeg har lavet på den måde at jeg kan trykke enter en masse gange, så den automatisk går ind og skriver <br /> når man har trykket "gem" .. Det er også smart, men hvis man igen efter går ind for at redigere i teksten, kigger den for de allerede eksisterende <br /> og så bare skriver dem ind i min DB så de bliver kaldt frem på min side.. hvordan fjerne man det så man stadig kan gå ind og lave "enter" uden at skulle slette de eksisterende <br />

??

koden:

<?php
require "db.php";

if (isset($_POST['tekst'])) {
$tekst = nl2br(htmlspecialchars(addslashes($_POST['tekst'])));
$id = intval($_POST['id']);
mysql_query("UPDATE di_forside SET tekst='$tekst' WHERE id=1") or die(mysql_error());
    echo "<center>Teksten på forsiden blev opdagteret</center>";
}
Avatar billede sukos Juniormester
20. juli 2005 - 21:07 #1
Du dropper blot din formatering af teksten inden du gemmer i DB.
Og når du så laver udtrækket, så formater den som du vil.
Avatar billede kimox Nybegynder
20. juli 2005 - 21:14 #2
er du sød at vise mig hvordan ?
Avatar billede sukos Juniormester
20. juli 2005 - 21:25 #3
Jow da, og kik gerne på denne artikel først, omkring sikkerhed ved brug af DB

http://www.eksperten.dk/artikler/190

<?php
require "db.php";

// Bruger lige funktionen fra linket ovenover:

function add_slash($var){
return get_magic_quotes_gpc()?$var:addslashes($var);
}



if (isset($_POST['tekst'])) {
$tekst = nl2br(htmlspecialchars(addslashes($_POST['tekst'])));
$id = intval($_POST['id']); // hvad laver den her? :O)
mysql_query("UPDATE di_forside SET tekst='". add_slash($_POST["tekst"]) ."' WHERE id=1") or die(mysql_error());
    echo "<center>Teksten på forsiden blev opdagteret</center>";


$get = mysql_query("SELECT tekst FROM di_forside WHERE id = 1") or die (mysql_error());
$tekst = mysql_result($get,0);
echo"<form>";
echo"<textarea rows='6' cols='20'>". $tekst ."</textarea>";
echo"</form><p>". nl2br(htmlentities($tekst));


}
Avatar billede sukos Juniormester
20. juli 2005 - 21:26 #4
Hov, mangler jo lige endnu en funktion! :O)

function strip_slash($var){
return get_magic_quotes_runtime()?stripslashes($var):$var;
}

echo nl2br(htmlentities($strip_slash(tekst)));
Avatar billede sukos Juniormester
20. juli 2005 - 21:30 #5
Nåh, får sgu rodet lidt rundt her!

Så'n her så:

<?php
require "db.php";

function add_slash($var){
return get_magic_quotes_gpc()?$var:addslashes($var);
}

function strip_slash($var){
return get_magic_quotes_runtime()?stripslashes($var):$var;
}


if (isset($_POST['tekst'])) {
mysql_query("UPDATE `di_forside` SET `tekst` = '". add_slash($_POST["tekst"]) ."' WHERE `id` = 1") or die(mysql_error());
    echo "<center>Teksten på forsiden blev opdateret</center>";


$get = mysql_query("SELECT `tekst` FROM `di_forside` WHERE `id` = 1") or die (mysql_error());

$vistekst = mysql_result($get,0);

echo"<form>";
echo"<textarea rows='6' cols='20'>". $vistekst ."</textarea>"; // evt. htmlspecialchars($vistekst)
echo"</form><p>". nl2br(htmlentities(strip_slash($vistekst)));

}
?>
Avatar billede sukos Juniormester
20. juli 2005 - 21:31 #6
Og så fylder teksten jo heller ikke så meget i DB'en! :O)
Avatar billede kimox Nybegynder
21. juli 2005 - 11:11 #7
$get = mysql_query("SELECT `tekst` FROM `di_forside` WHERE `id` = 1") or die (mysql_error());

$vistekst = mysql_result($get,0);

echo"<form>";
echo"<textarea rows='6' cols='20'>". $vistekst ."</textarea>"; // evt. htmlspecialchars($vistekst)
echo"</form><p>". nl2br(htmlentities(strip_slash($vistekst)));

}


dette kan det ikke passe det er det som skal være på den side hvor der skal hentes teksten ?
Avatar billede kimox Nybegynder
21. juli 2005 - 13:12 #8
Det virker ikke.. den echo'er ikke textfeltet
Avatar billede jaw Nybegynder
21. juli 2005 - 13:21 #9
Hvordan indsætter og opdaterer du felterne nu?
Avatar billede kimox Nybegynder
21. juli 2005 - 13:23 #10
<?php
require "db.php";

if (isset($_POST['tekst'])) {
$tekst = nl2br(htmlspecialchars(addslashes($_POST['tekst'])));
$id = intval($_POST['id']);
mysql_query("UPDATE di_forside SET tekst='$tekst' WHERE id=1") or die(mysql_error());
    echo "<center>Teksten på forsiden blev opdagteret</center>";
}

$query = mysql_query("SELECT * FROM di_forside WHERE id=1");
$row = mysql_fetch_array($query);
?>
      </span>   
                  <table width="100%"  border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td>
<form action="forside.php" method="post">
<input type="hidden" name="id" value="<?php echo $_POST['id']; ?>">
<table width="12%" border="0" cellpadding="0" cellspacing="0" height="154" class="tekst_normal">
<tr>                                     
                    <td width="41%" height="20"> &nbsp;Tekst:</td>
                            </tr>
                                    <tr>
                                      <td height="19" class="tekst_fed"><textarea name="tekst" cols="70" rows="9" class="box" id="tekst"><?php echo $row['tekst']; ?></textarea></td>
                                    </tr>
                                    </table>
                    <input type="submit" value="Gem Ændringer" class="submit">
        </form>
Avatar billede jaw Nybegynder
21. juli 2005 - 13:36 #11
Hvis du ikke vil have, at den skriver <br /> i din database i stedet for mellemrum, så lav:

$tekst = nl2br(htmlspecialchars(addslashes($_POST['tekst'])));
om til:
$tekst = htmlspecialchars(addslashes($_POST['tekst']));

og når du udhenter
<?php echo nl2br($row['tekst']); ?>

Eller misforstår jeg dig?
Avatar billede kimox Nybegynder
21. juli 2005 - 13:42 #12
KANON !!! det virker perfekt.. smid et svar
Avatar billede jaw Nybegynder
21. juli 2005 - 13:52 #13
Ok :)
Avatar billede jaw Nybegynder
22. august 2005 - 00:20 #14
Skulle vi så ikke også lige få accepteret?
Avatar billede kimox Nybegynder
22. august 2005 - 08:00 #15
Jo ! det må du meget undskylde. - igen mange tak for hjælpen !
Avatar billede jaw Nybegynder
22. august 2005 - 12:33 #16
Helt i orden, og takker :)
Avatar billede kimox Nybegynder
22. august 2005 - 14:00 #17
Så lidt ;).

- Lukket -
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