Gå til innhold

stripslashes/mysql_escape_string trøbbel


Anbefalte innlegg

Skrevet

Bruker session for å sende data tilbake til et skjema om bruker har glemt å skrive inn viktig info. Har forstått det sånn at man bør bruke mysql_escape_string() fra skjema uansett. Jeg bruker nå fx

$_SESSION['username'] = htmlspecialchars(mysql_escape_string(trim($_POST['username'])));

Er det en sikker måte å gjøre det på?

 

Så bruker jeg

<?php echo stripslashes($_SESSION['username']); ?>

 

Ser ut som å virke greit etter testinga jeg har gjort, men problemet oppstår på textarea. Hvordan skal man gjøre det for at det skal være sikkert og at linjeskift osv ikke forsvinner?

 

Med å bruke ovennevnte funksjon blir det bare rot...

Bruker jeg ikke stripslashes() blir det fx "aaaaaaaaaaa\r\n\r\nbbbbbbbbb"

Med stripslashes() blir samme teksten "aaaaaaaaaaarnrnbbbbbbbbb"

 

Hva må jeg gjøre for å få dette til?

 

Da var det puta neste ;)

 

PS: Hvor ble det av "Tittel #2" når man lager emne?

Videoannonse
Annonse
Skrevet

Du kan bruke funksjonen nl2br($tekst) når du skal skrive ut teksten fra tekstfeltet. Denne funksjonen gjør alle linjeskift om til <br>

 

kakkle

Skrevet

Jeg har prøvt det, men det fungerer ikke.

Uten sikkerhetsfunksjonen over fungerer det uten noen funksjoner, men pga htmlspecialchars og/eller mysql_escape_string får jeg bare opp \r\n\r\n.

 

Noen andre som bruker dette i et skjema, og hvordan har dere løst det?

Skrevet

Ser ut som problemet ble løst likevel. Med å bruke

htmlspecialchars(addslashes(trim($_POST['notes'])));

istedenfor

htmlspecialchars(mysql_escape_string(trim($_POST['notes'])));

fungerte det. Begge deler er trygt tror jeg så da velger jeg den som funker ;)

Skrevet

Slik som eg har forstott det så bruker du bare mysql_escape_string når du kjører ein query eller legger til noko i ein database.

 

I din sammenheng, så vil du jo sjekke om brukeren virkeleg er i databasen, så kvifor ikkje bare hente ut brukernavnet fra databasen og ? Og deretter plassere det i sessionen.

Skrevet

Kunne gjort, men for å få det mest brukervennlig har jeg satt all info fra skjemaet i session. Hvis de mangler noe info for å få fullført registrering, sender jeg ham tilbake til skjemaet, og infoen han/hun har fylt ut, kommer opp i skjemaet, så de slipper å fylle det inn igjen.

Finnes sikkert mye enklere måter å gjøre det på, men nå funker det, og da er jeg happy :)

Samt litt artig å ha noe man har laget selv også, ikke bare kopiert kode...

Skrevet

ah ok, bare ein tanke men vist sessionene bare var "forhands lagring" (temp) så trenger du jo strengt tatt ikkje kjøre nokon sikkerhets sjekker/forhandsregler før du bruker informasjonen i server/database sammenheng.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...