Merko Skrevet 24. desember 2007 Del Skrevet 24. desember 2007 (endret) Hei. Jeg har laget en liten gjestebok, men er jo selvsagt noen idioter som gjør hærverk med diverse html koder osv, er det en enkel måte og fjerne html tags på? Jeg er ikke efarende i php enda Gjesteboka består av php\mysql database. Takk takk Endret 24. desember 2007 av vbPro Lenke til kommentar
jokkakim Skrevet 24. desember 2007 Del Skrevet 24. desember 2007 htmlentities eller htmlspecialchars? Lenke til kommentar
Martin A. Skrevet 24. desember 2007 Del Skrevet 24. desember 2007 Funksjonen heter, logisk nok, strip_tags() Lenke til kommentar
j-- Skrevet 24. desember 2007 Del Skrevet 24. desember 2007 Og vær så snill og si at du sjekker data før de settes inn i databasen? Lenke til kommentar
jeg_lyver_mye Skrevet 24. desember 2007 Del Skrevet 24. desember 2007 Og vær så snill å si at du passer deg på SQL farlige sprøyter? Lenke til kommentar
BigJackW Skrevet 24. desember 2007 Del Skrevet 24. desember 2007 Og vær så snill og si at du sjekker data før de settes inn i databasen? <?php /* * @author Ketil Stadskleiv <[email protected]> * @param mixed $value * @return mixed */ function quote_smart($value){ // Stripslashes if (get_magic_quotes_gpc()) { $value = stripslashes($value); } //Change decimal values from , to . if applicable if( is_numeric($value) && strpos($value,',') !== false ){ $value = str_replace(',','.',$value); } if( is_null($value) ){ $value = 'NULL'; } // Quote if not integer or null elseif (!is_numeric($value)) { $value = "'" . mysql_real_escape_string($value) . "'"; } return $value; } ?> Lenke til kommentar
Merko Skrevet 24. desember 2007 Forfatter Del Skrevet 24. desember 2007 (endret) Hmm. Kunne noen gi meg ett eksempel på å stripe tag'ene? Skal de stripes før de legges inn i databasen, eller når de blir lest fra databasen? Kikket på php.net siden og testet med dette eksemplet: <?php $name=$_POST["name"]; $age=$_POST["age"]; ?> Welcome <?php echo strip_tags($name, '<p><a>'); ?>.<br /> You are <?php echo strip_tags($age, '<p><a>'); ?> years old! Det funket, men jeg er usikker på hvordan jeg skal gjøre dette med MySQL siden da jeg skriver til databasen bruker jeg: $sql="INSERT INTO $tbl_name(name, age)VALUES('$name', '$age')"; Teste følgende, men funket ikke så bra. $sql="INSERT INTO $tbl_name(name, age)VALUES(strip_tags($name), strip_tags($age))"; Endret 24. desember 2007 av vbPro Lenke til kommentar
Merko Skrevet 24. desember 2007 Forfatter Del Skrevet 24. desember 2007 Nå har jeg fått det til. Bare fjernet html tagsa da den leste fra databasen ang SQL Injection osv.. kan dem gjøre noe fanteri med gjesteboken min? Gjerne send meg en PM om du vil "teste" sikkerheten til siden så kan ejg gi deg url (den er ikke åpent for "alle" enda ) Lenke til kommentar
ZoRaC Skrevet 25. desember 2007 Del Skrevet 25. desember 2007 Og så lenge du ikke har behov for innleggene med HTML-kode noen gang ever så vil jeg anbefale at du fjerner det ved insert istedet for ved uthenting... Lenke til kommentar
Ozwald Skrevet 25. desember 2007 Del Skrevet 25. desember 2007 (endret) Du definerer $name med strip_tags: $name = strip_tags($_POST["name"]); Gjør ting litt enklere Endret 25. desember 2007 av Ozwald Lenke til kommentar
Merko Skrevet 25. desember 2007 Forfatter Del Skrevet 25. desember 2007 Og så lenge du ikke har behov for innleggene med HTML-kode noen gang ever så vil jeg anbefale at du fjerner det ved insert istedet for ved uthenting... Jepp, men kunne trengt den uansett siden jeg har lagt til smileys osv som "" blir en html kode til smiley bildet. + Jeg kan se i "loggen" om det er noen som har prøvd seg :-P så lenge det ikke er skadelig så ser jeg ingen grunn for at det skal fjernest helt Lenke til kommentar
Martin A. Skrevet 25. desember 2007 Del Skrevet 25. desember 2007 Da parser du smilies, og annen bbkode, _etter_ at du har har kjørt strip-tags. <?php $text = strip_tags( $_POST['text'] ); $text = mysql_real_escape_string( $text ); // Eller en annen escape-funksjon $text = str_replace( ':p', '<img src="smilie.gif" alt=":P" />', strtolower($text) ); /* etc... */ /* INSERT INTO blablablablabla */ ?>> Lenke til kommentar
grimjoey Skrevet 25. desember 2007 Del Skrevet 25. desember 2007 (endret) alternativ til striptags er: function sanitize_html($string) { $string = str_replace('<', '<', $string); $string = str_replace('>', '>', $string); return $string; } da vil eventuelle tags vises som ren tekst og blir ikke parset av browseren. Endret 25. desember 2007 av grimjoey Lenke til kommentar
itsmebth Skrevet 26. desember 2007 Del Skrevet 26. desember 2007 Hvorfor ikke bruke PHPs innebygde funksjon htmlspecialchars? http://no.php.net/htmlspecialchars Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå