Is dit script vatbaar voor mysql injection?

Zo ja, hoe kan ik het oplossen:

<?php
$email = strip_tags($_POST["email"]);
$naam = strip_tags($_POST["naam"]);
$onderwerp = strip_tags($_POST["onderwerp"]);
$bericht = strip_tags($_POST["bericht"]);
$datum = date("r");

$insert = "INSERT INTO
gastenboek(
onderwerp,
datum,
naam,
email,
bericht)
VALUES (
'".$onderwerp."',
NOW(),
'".$naam."',
'".$email."',
'".$bericht."')";

$voerin = mysql_query($insert);

if(mysql_errno() == 1062)
{
$melding2 = 'Precies ditzelfde bericht is al eerder gepost, dit kan geen toeval zijn.';
}
?>
<?php
mysql_real_escape_string();
?>
maar dan krijg ik allemaal van die slashes, hoe haal ik die weg bij het uitlezen?
[php]stripslashes[/php]
oke, dus ik moet altijd mysql_real_escape_string() gebruiken en bij het aanroepen van de database altijd stripslashes
Offtopic: Wanneer je $datum = date("r"); niet meer gebruikt, gooi dit dan nog even uit de code. Maakt het overzichtelijker.
strip_tags() bied naar mijn weten helemaal geen bescherming tegen mysql injection, dit omdat het alle html tags stipt en dus bescherming bied binnen je html.

Voor zover ik weet zijn de quotes ( " en ' ) het probleem bij mysql injection en dus moet je daar bescherming tegen bieden, iets wat dat eventueel wel doet is:
htmlentities($sText, ENT_QUOTES);

maar mysql_real_escape_string is standaard ingebouwd en bied bescherming, dus waarom deze niet gebruiken? :P
oki thx allemaal,

Ik begin het te leren ;-)
Hier zit ik ook al een tijdje over te twijfelen want als je

<?php

mysql_real_escape_string();

?>

gebruikt haalt ie alle gevaarlijke tekens weg: ' en " en dan nog een aantal ma wat nouw als je deze tekens in een topic titel wilt hebben?

Dan is [php]mysql_real_escape_string[/php]

niet zo handig dan zou je zoals boaz zij

[php]htmlentities[/php] kunnen gebruiken ma nouw weet ik niet of dit 100% garantie geeft tegen sql injection

Zo ik denk wat het beste is wat je zou kunnen doen als je het van bijde niet zeker weet zelf een functie maken die bepaalde karakters wel toelaat en andere weer niet:)

Na das er ook weer uit:)

GR. mebus!
maar strip tags veranderd ' toch in &quot;, dus dan ie toch weg, of klopt dat niet
@mebus, mysql_real_escape_string() haalt toch niks weg? er komt toch gewoon een escape teken voor?

Ik gebruik momenteel dit:
<?php
public function escapeString($p_sStr){
return mysql_real_escape_string(htmlspecialchars($p_sStr, ENT_QUOTES));
}
?>

zet eerst alle html+quotes om en haalt er vervolgens nog eens mysql_real_escape_string over.

Nadeel is, dat als je html uit je database wil hebben, je alles weer terug om moet zetten (kost tijd), maar omdat ik meestal geen html als output wil beschouw ik dit niet als een probleem.

Reageren