Gå til innhold

mysqli_real_escape_string fjerner hva?


Anbefalte innlegg

Hei!

 

Jeg prøver å kjøre mysqli_real_escape_string() på alle mine $_POST variabler. Jeg mener at den skal sette \ foran alle uønskede tegn som f.eks '.

Stemmer ikke det?

 

Uansett så viker det ikke, men det som egentlig virker rarere på meg er at om jeg setter ' inn i min tekst så ødelegger det ingenting for MySQL spørringen min... jeg kan sette både en to og mange ' og de blir fint lagret i databasen, og de blir fint hentet utigjen i html-formen for redigering.

 

Noen som vet hvor jeg evt. tar feil...? :hmm:

Lenke til kommentar
Videoannonse
Annonse

Systemet skal kun brukes av tre-fire alle trygge personer, så det er ikke så stor fare for ondsinnet kode, men på en måte så er nok svaret alikevel ja i og med at man kan ved et uhell taste inn ' et eller annet sted og ødelegge SQL-koden. Hensikten er å sende data trygt til database, og hente den trygt ut igjen, og at den blir holdt uendret for brukers del.

 

function sikre_tekst($tilkobling, $tekst)
{
//$tekst = htmlspecialchars($tekst);
$tekst = mysqli_real_escape_string($tilkobling, $tekst);
return $tekst;
}

 

Denne sløyfen vet jeg hva gjør, men kan noen bare klargjøre hva => betyr? Det menes med at $v vil endre seg i takt og være identisk med $k, gjør det ikke?

foreach ($_POST as $k=>$v)
{
$_POST[$k] = sikre_tekst($tilkobling, $v);
}

 

$sporring = "UPDATE min_db SET navn='".$_POST['navn']."',adresse='".$_POST['adresse']."',postnummer=".$_POST['postnummer'].",tlf='".$_POST['tlf']."',dato_frist='".$_POST['dato-frist']."',type_anlegg='".$_POST['type_anlegg']."',feil_type='".$_POST['feiltype']."',merknader='".$_POST['merknader']."',materialer='".$_POST['materialer']."',kilometer=".$_POST['km'].",timer=".$_POST['timer'].",dato_ferdig='".$_POST['ferdig_dato']."',spenning=".$_POST['volt'].",fullfort=$fullfort,kart='".$_POST['kart']."' WHERE oppdragnr=".$_POST['nr'];

Lenke til kommentar
$link = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
$string = "'s";
echo "før: ".$string;
$string = mysqli_real_escape_string($link, $string);
echo "<br />etter: ".$string;
// Output:
// før: 's
// etter: \'s

Lenke til kommentar

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...