Forum » Server-Side scripting » Vraag over mysql_real_escape string
Berichten: 85
avatar
Offline Stuur privebericht
Hallo,

Ik heb een vraagje over het gebruik van mysql_real_escape_string.

Code | Selecteer Alles
minimaliseren
1
ysql_query("UPDATE `users` SET `kladblok`='".mysql_real_escape_string($_POST['notes'])."' WHERE `id`='$data->id'");


Moet ik nu voor $data->id ook mysql_real_escape_string gebruiken?
05-01-2012 00:27
Dit topic is 143 keer bekeken door 32 verschillende leden
Reacties op: "Vraag over mysql_real_escape string"
1
Vreemd
Berichten: 1246
avatar
Offline Stuur privébericht
Gebruik intval() (of cast naar int) en laat de ' weg.

Code | Selecteer Alles
minimaliseren
1
mysql_query("UPDATE `users` SET `kladblok`='".mysql_real_escape_string($_POST['notes'])."' WHERE `id`=".intval($data->id));


Alleen wanneer je data echt vertrouwd, en dus weet waar het vandaan komt, mag je het zonder voorzorg maatregelen gebruiken. Aangezien het waarschijnlijk een criminals source is, die over het algemeen erg slecht gescript zijn zou ik zelf $data->id niet vertrouwen.
05-01-2012 00:37
Berichten: 85
avatar
Offline Stuur privébericht
Bedankt voor uw antwoord Darsstar.Wat doet intval als ik vragen mag?
05-01-2012 00:41
Rapifia Europe
Berichten: 3719
avatar
Offline Stuur privébericht
Intval maakt een INT van een variabele. Dus als je een number (float) hebt als 8.41 maakt intval() hier dus 8 van. Een INT heeft nooit een decimaal.
05-01-2012 00:46
Berichten: 85
avatar
Offline Stuur privébericht
Oke dankjewel L.Groot.

Is het handig om het gebruik van intval ook in select optie te gebruiken?
05-01-2012 00:50
Rapifia Europe
Berichten: 3719
avatar
Offline Stuur privébericht
Je hebt het nergens nodig, alleen:
- als de input een float (met decimalen) is;
- als de input een string is (met quotes) en je ermee wilt rekenen.

Dus bij een select optie waarbij je als waarde 0,1,2 meegeeft bijvoorbeeld is dit in principe niet nodig, tenzij je ermee wil rekenen, a.d.h.v. de PHP instelling op de server kan het zo zijn dat hij hem dan niet pakt omdat je hem als string opgeeft in de HTML (value="2".

Je moet er gewoon mee spelen en als het niet werkt intval() erin zetten.

Persoonlijk heb ik nooit intval nodig, ik klier daar alleen mee met JavaScript omdat die taal vele malen strenger is met rekenen i.c.m. integers / floats / strings.
05-01-2012 08:40
Berichten: 868
avatar
Online Stuur privébericht
Maar als data->id 0 is returnt intval toch niks?
Ik zou de $data query beveiligen ipv elke vorm van $data.

Dus ipv niks doen, zoeken naar de $data query!
05-01-2012 13:51
Berichten: 85
avatar
Offline Stuur privébericht
Heel erg bedankt beide.

Ik gebruik nu een script dat de tijd laat zien, alleen laat hij tussen 24:00 en 7:00 als tijd 0000-00-00 00:00:00 zien. Hoe zou dat kunnen komen?

Alvast bedankt!
05-01-2012 14:44
Reageer op: "Vraag over mysql_real_escape string"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden