Avatar billede kren1000 Nybegynder
12. marts 2007 - 16:17 Der er 11 kommentarer og
1 løsning

Problemer med simpelt cms system

Hej eksperter
Jeg har et simpelt cms system til opdatering af tekster via et htmlarea. Det virker efter hensigten, dog er der et problem med visning af ". Eksempel fra selve hjemmesiden:

at konfrontere sit ubehag på, at lære at \\\\\\\"klare det\\\\\\\". osv...

Og når man opdaterer i cms er det som om den tilføjer flere \\ streger.

Kode til visning:
<?php echo html_entity_decode($raekke['konsult_tekst']); ?>

Kan nogen hjælpe mig her?
Avatar billede intenz Novice
12. marts 2007 - 17:21 #1
Problemer ligger mere sandsynligt et andet sted i koden. Men er det altid det samme antal \\\\\\\ der kommer?
Avatar billede brinck10 Nybegynder
12. marts 2007 - 19:45 #2
Problemet kan være at magic-quotes ikke er slået til, der hvor du hoster.

Det kan løses ved denne lille kode: (Bemærk, du skal køre dit input igennem koden, inden den sættes ind i databasen)

$din-variable = $_POST["din-variable"]
if(!get_magic_quotes_gpc){
$din-variable = addslashes($din-variable);
}
/* Kør den igennem hele dit input. Hvis du har flere felter skal der flere variabler. Håber jeg har forklaret mig ordentligt */
Avatar billede dkfire Nybegynder
13. marts 2007 - 00:55 #3
Jeg tror nu mere han mangler at fjerne \\ når han udskriver fra databasen.
Prøv med stripslashes().
Avatar billede kren1000 Nybegynder
13. marts 2007 - 08:06 #4
Jeg prøvede for et par dage siden med:
<?php echo stripslashes(html_entity_decode($raekke['forside_tekst'])); ?>

men det virkede ikke, og så skrev de ikke igen, dem der hjalp, så jeg ved ikke om det er tæt på?

Jeg kører startkoden til opdatering, således:

dbConnect();
       
        $konsult_tekst = htmlspecialchars($_POST['konsult_tekst']);
       
        $konsult_tekst = addslashes ($konsult_tekst);
       
        if(isset($_POST['update']))    {
           
            $sql = "UPDATE `konsultation`
           
                    SET
                   
                    `konsult_tekst` = '".$konsult_tekst."'
                                       
                    where `id` = '1'";
                   
                    mysql_query($sql) or die(mysql_error());
                    print "<br>Konsultation er nu opdateret";

Skull jeg prøve at sætte magiq-quotes ind i starten istedet for min egen addslashes eller hvad mente du brinck?
Avatar billede kren1000 Nybegynder
13. marts 2007 - 08:06 #5
Og det er forresten som om den sætter flere og flere \\ på når man opdaterer i cms...
Avatar billede dkfire Nybegynder
13. marts 2007 - 10:55 #6
Det er klart den gør det, du tilføjer \\ hver gang du kører addslashes.
prøv at sætte brinck's kode ind der hvor du kører addsleshes.
Avatar billede showsource Seniormester
13. marts 2007 - 11:40 #7
Eller bruger den funktion som er vist på
http://dk.php.net/manual/da/function.mysql-real-escape-string.php
( quote_smart() ) ved insert,

og

<?php echo htmlspecialchars($raekke['konsult_tekst']); ?>

ved visning i textarea
Avatar billede kren1000 Nybegynder
13. marts 2007 - 13:29 #8
Fedt nok, det lader til at det hjalp at sætte brincks kode ind istdet for
$konsult_tekst = addslashes ($konsult_tekst);

Nu ser det ud til at virke, takker og bukker, skriv svar så for i point, dem der nu skal have det? Det er aldrig til at finde ud af synes jeg, er det kun Brinck eller vil i dele oder hvordan plejer det at foregå?
Avatar billede brinck10 Nybegynder
13. marts 2007 - 17:43 #9
Ja, vi kan godt dele. Glad for at kunne hjælpe.
Avatar billede windcape Praktikant
13. marts 2007 - 17:44 #10
addslashes er altså ingen hjælp til sikkerhed mod SQL injections..

just my 5 cents.
Avatar billede kren1000 Nybegynder
19. marts 2007 - 10:22 #11
Nå, ikke andre svar, så for du points brinck..
Avatar billede brinck10 Nybegynder
22. marts 2007 - 16:54 #12
tak
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