Archief - MYSQL: inserten van namen met leestekens

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

McBr@in

Legacy Member
Goed, ik heb dus een vervelend probleem. Ik heb een query die namen uit een database haalt en die wegschrijft naar een andere database. De query op zich werkt perfect voor gewone namen, maar geeft problemen wanneer het een naam is met een leesteken (vb. D'Hondt, D'Haeseleer).


De query ziet er als volgt uit:

function insert_users($firstname, $lastname)
{
$sql_query = "INSERT INTO user ( firstName, lastName) VALUES ( '$firstname', '$lastname')";
mysql_query($sql_query);

}

Uiteraard geeft dit een probleem omdat je krijgt:

INSERT INTO user (firstName, lastName) VALUES ('Tom', 'D'Hondt');
Je ziet dan duidelijk bij die lastName dat die query beetje verkracht wordt door die ' in de naam. Maar ik weet niet goed hoe ik dit moet oplossen.

McBr@in

Legacy Member
Idd, heb gewoon ne $badlastname gemaakt met de familienamen in, dan ne $lastname = addslashes($badlastname) en dit heeft het gedaan, thx voor de link.

verdeye

Legacy Member
PHP:
function insert_users($firstname, $lastname)
{
$firstname = addslashes($firstname);
$lastname = addslashes($lastname);
$query = "INSERT INTO user ( firstName, lastName) VALUES ( '$firstname', '$lastname')";
mysql_query($query);

}

Als je ze weer uit de db haalt...

PHP:
$firstname = stripslashes($firstname);
...

No ?

... ok was te laat ...

McBr@in

Legacy Member
verdeye zei:
PHP:
function insert_users($firstname, $lastname)
{
$firstname = addslashes($firstname);
$lastname = addslashes($lastname);
$query = "INSERT INTO user ( firstName, lastName) VALUES ( '$firstname', '$lastname')";
mysql_query($query);

}

Als je ze weer uit de db haalt...

PHP:
$firstname = stripslashes($firstname);
...

No ?

... ok was te laat ...



Thx anyway :)

verdeye

Legacy Member
en om het allemaal nog wat veiliger te maken:

PHP:
function html2txt($document){
	$search = array('@<script[^>]*?>.*?</script>@si',  // Strip out javascript
				   '@<[\/\!]*?[^<>]*?>@si',            // Strip out HTML tags
				   '@<style[^>]*?>.*?</style>@siU',    // Strip style tags properly
				   '@<![\s\S]*?--[ \t\n\r]*>@'        // Strip multi-line comments including CDATA
	);
	$text = preg_replace($search, '', $document);
	return $text;
}

servi

Legacy Member
waarom moeilijk doen ? gebruik gewoon htmlspecialchars($tekst,ENT_QUOTES); en dan kan er niets misgaan.

RpR

Legacy Member
servi zei:
waarom moeilijk doen ? gebruik gewoon htmlspecialchars($tekst,ENT_QUOTES); en dan kan er niets misgaan.
Wou dat ook posten en is zelf beter doordat speciale tekens in andere sets niet bestaan waardoor ze ook niet worden weergegeven.

Fraggie

Legacy Member
verdeye zei:
en om het allemaal nog wat veiliger te maken:

PHP:
function html2txt($document){
	$search = array('@<script[^>]*?>.*?</script>@si',  // Strip out javascript
				   '@<[\/\!]*?[^<>]*?>@si',            // Strip out HTML tags
				   '@<style[^>]*?>.*?</style>@siU',    // Strip style tags properly
				   '@<![\s\S]*?--[ \t\n\r]*>@'        // Strip multi-line comments including CDATA
	);
	$text = preg_replace($search, '', $document);
	return $text;
}
& stel dat ik dit als input geef: <Script>..</script>, wordt dat dan ook weg gefiltert?

Dirtrider007

Legacy Member
Gewoon addslaches( $var )... zoals hier al 20 keer gezegd is :)
Je hebt ook een INI setting magic_quotes geloof ik, zoek daar maar eens op.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan