aha oke...quote:Op woensdag 28 februari 2007 10:34 schreef JeRa het volgende:
[..]
gethostbyaddr(). Oftewel, een simpele reverse DNS lookup.
Doe maar eens dit
[ code verwijderd ]
[..]
Wat mag er niet gebruikt worden en waarom is het niet netjes?
Dat daar iets anders wordt gevonden dan bij jou thuis komt waarschijnlijk doordat je misschien laatst bent overgestapt? Het duurt altijd even voordat DNS-servers helemaal up-to-date zijnquote:Op woensdag 28 februari 2007 10:46 schreef mschol het volgende:
[..]
aha oke...
het mag opzich wel (die domeinnaam) echter vind ik het niet netjes staan, en klopt hij ook niet (ik krijg a62-251-83-181.adsl.xs4all.nl terug)
Jouw domeinnaam -> IP-adres translatie vind plaats door een DNS-request, maar voor een reverse DNS-request wordt de 'beheerder' van jouw IP-adres geraadpleegd en dat is jouw provider, gegeven dat je je domeinnaam naar jouw ISP IP-adres laat verwijzenquote:en er is ook een "normale" domeinnaam aangekoppeld, home.mschol.eu, en die heb ik liever, echter kan ik er wel mee leven als dat niet werkt
dit is overstappen is al ruim een half jaar geleden gebeurd.quote:Op woensdag 28 februari 2007 10:50 schreef JeRa het volgende:
[..]
Dat daar iets anders wordt gevonden dan bij jou thuis komt waarschijnlijk doordat je misschien laatst bent overgestapt? Het duurt altijd even voordat DNS-servers helemaal up-to-date zijn
aha oke.quote:Jouw domeinnaam -> IP-adres translatie vind plaats door een DNS-request, maar voor een reverse DNS-request wordt de 'beheerder' van jouw IP-adres geraadpleegd en dat is jouw provider, gegeven dat je je domeinnaam naar jouw ISP IP-adres laat verwijzen meer info.
Lekker duidelijk vraag, een top drie waarvan? Uren, projecten waaraan gewerkt is? Projecten die al te lang lopen?quote:Op woensdag 28 februari 2007 10:57 schreef morpheus_at_work het volgende:
is er een mogelijkheid om het volgende te doen
ik heb een tabel met
Project + uren + maand + jaar
Ik wil een Top 3 per maand draaien per project
Scherpe vraagquote:Op woensdag 28 februari 2007 11:06 schreef BereNDD het volgende:
[..]
Lekker duidelijk vraag, een top drie waarvan? Uren, projecten waaraan gewerkt is? Projecten die al te lang lopen?
Dat kun je in PHP zo doen:quote:Op woensdag 28 februari 2007 12:04 schreef Aibmi het volgende:
Kort vraagje. Ik heb een SQL select statement, een redelijk simpele. Maar, ik wil als een bepaalde boolean op 1 staat een kolom tonen in de query, en als die boolean op 0 staat wil ik de andere laten zien.
De output moet dit zijn bij een true:
Nummer|Kosten_hoog
En bij een false:
Nummer|Kosten_laag
1 |
Er is volgens mij geen standaard 'goede' manier om dat te doen, alhoewel Swetsenegger geloof ik ooit ook zo'n query nodig hadquote:Op woensdag 28 februari 2007 12:06 schreef morpheus_at_work het volgende:
[..]
Scherpe vraag
Top 3 van de projecten waarop de meeste uren geboekt zijn per maand / jaar
mysql kent geen top dus zal zoiezo bij met limit moeten
quote:Op woensdag 28 februari 2007 12:06 schreef morpheus_at_work het volgende:
[..]
Scherpe vraag
Top 3 van de projecten waarop de meeste uren geboekt zijn per maand / jaar
mysql kent geen top dus zal zoiezo bij met limit moeten
1 |
Helaas zal het toch echt in een gewone query moetenquote:Op woensdag 28 februari 2007 12:09 schreef JeRa het volgende:
[..]
Dat kun je in PHP zo doen:
[ code verwijderd ]
Dat zou inderdaad kunnen, ik dacht dat hij een top 3 pér maand van alle projecten wildequote:Op woensdag 28 februari 2007 12:23 schreef BereNDD het volgende:
[..]
[ code verwijderd ]
(of ASC voor de minste uren)
In de database moeten 'uren' dan wel een INTEGER veld wezen
Het is het enige idee als je niets anders dan SQL wilt praktiserenquote:Op woensdag 28 februari 2007 12:30 schreef Aibmi het volgende:
Ik zit overigens te denken aan een stored procedure, die ik het unieke ID meegeef, en die dan als output het juiste getal terugvoert, omdat je in een stored procedure wel gewoon IFs kunt gebruiken. Is dat een goed idee?
"ORDER BY artiest, album"quote:Op woensdag 28 februari 2007 14:05 schreef super-muffin het volgende:
Ik heb een tabel met de kolommen artiest en album.
In mijn query staat het gesorteerd op alfabet bij artiest, en zo wil ik het hebben.
Maar hoe kan ik binnen die artiest sorteren op alfabet op de kolom album?
Voor zover jouw vraag klopt is dat toch echt het antwoord hoorquote:Op woensdag 28 februari 2007 14:42 schreef super-muffin het volgende:
-edit;
Toch niet bedanktHet werkt niet. Ga wel even verder zoeken
Zie je welquote:Op woensdag 28 februari 2007 14:42 schreef super-muffin het volgende:
-edit2:
Wat heb ik geleerd vandaag: Kijk eens goed naar de kolomnamen voor dat je zegt dat het niet werkt.![]()
Als je een string hebt kun je middels die curly brackets een karakter op positie x (met 0 als eerste teken) als volgt ophalen:quote:Op woensdag 28 februari 2007 14:37 schreef Desdinova het volgende:
Ik heb ooit eens iets gezien van $var{1,2}. ik dacht eigenlijk dat het een verkapte versie van substr() was.. het valt alleen niet mee om op zoiets te zoeken, dus kan iemand mij uitleggen hoe het werkt en wat het doet?
ok thanks. Ik zie niks staan in de vorm van {0,2}, behalve bij de reguliere expressie erboven ergens. maar dit zal wel een ander iets zijn.quote:Op woensdag 28 februari 2007 14:49 schreef JeRa het volgende:
[..]
Als je een string hebt kun je middels die curly brackets een karakter op positie x (met 0 als eerste teken) als volgt ophalen:
$string{x}
Maar aangeraden wordt om de array-like brackets te gebruiken:
$string[x]
Dat doet precies hetzelfdezie ook deze paragraaf.
Nee, en die vorm die jij bedoelde ($string{x,y}) bestaat niet voor zover ik weetquote:Op woensdag 28 februari 2007 15:04 schreef Desdinova het volgende:
[..]
ok thanks. Ik zie niks staan in de vorm van {0,2}, behalve bij de reguliere expressie erboven ergens. maar dit zal wel een ander iets zijn.
het is dus geen verkapte versie van substr() begrijp ik.
je bedoelt een manager ofzo?quote:Op woensdag 28 februari 2007 21:56 schreef wipes66 het volgende:
Kent iemand toevallig een database programma voor sqlite?
Nee. De sessie is alleen uit te lezen door je eigen scripts.quote:Op donderdag 1 maart 2007 17:28 schreef super-muffin het volgende:
Even een vraagje, zijn sessie´s door spambot´s ofzo uit te lezen?
1 2 3 | $sql = "SELECT * FROM projects LEFT JOIN clients ON (projects.client_id = clients.id ) WHERE projects.client_id = '".$_GET['klant']."' LIMIT ".$page." , 1"; ?> |
Heb ik ook al geprobeerd, maar toen gaf hij een error....... r r rquote:Op donderdag 1 maart 2007 19:54 schreef Xcalibur het volgende:
misschien moet je eens bij 0 beginnen met tellen
0,1, niet 1,0 dusquote:Op donderdag 1 maart 2007 19:59 schreef s00z het volgende:
[..]
Heb ik ook al geprobeerd, maar toen gaf hij een error....... r r r
Ja weet ik, maar moet het eerst draaiende krijgen, daarna ga ik me wel druk maken over beveiliging...quote:Op donderdag 1 maart 2007 20:19 schreef Xcalibur het volgende:
trouwens: $_GET['klant'] is nogal SQL injection gevoelig
1 2 3 4 5 6 | $unsafeContentPage = isset($_GET['content']) ? $_GET['content'] : 'home'; if (!preg_match('~^[a-z_]+$~i', $unsafeContentPage)) { // Iets of iemand probeert iets fouts mee te geven $unsafeContentPage = 'home'; ?> |
nu maar zo gedaan:quote:Op donderdag 1 maart 2007 21:23 schreef Xcalibur het volgende:
kwam het niet door de spaties rond de komma ofzo?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | if($_GET['page']) // Is page defined? { $page = $_GET['page']; // Set to the page defined }else{ $page = 1; // Set to default page 1 } $limitminimalizer = $page - '1'; ?> |
1 2 3 | LIMIT ".$limitminimalizer." , 1 ?> |
Moet er ook nog een ander port open?quote:php connect.inc.php
Kan niet verbinden: Lost connection to MySQL server during query
3306 voor MySQL en 80 voor Apache.quote:Op donderdag 1 maart 2007 22:58 schreef saban het volgende:
Wat is de standaard poort voor mysql? Dat is 3306 toch?
Ik heb op mijn server thuis port 3306 opengezet, maar is nog steeds van buiten af niet bereikbaar.
[..]
Moet er ook nog een ander port open?
Vaag dat het niet werkt.quote:
laat je router / modem / whatever het wel door?quote:Op donderdag 1 maart 2007 22:58 schreef saban het volgende:
Moet er ook nog een ander port open?
Kun je je MySQL server helemaal niet bereiken, of kom je er gewoon niet in met je user? In het laatste geval moet je je user niet alleen toegang geven vanaf localhost waarschijnlijk.quote:Op donderdag 1 maart 2007 22:58 schreef saban het volgende:
Wat is de standaard poort voor mysql? Dat is 3306 toch?
Ik heb op mijn server thuis port 3306 opengezet, maar is nog steeds van buiten af niet bereikbaar.
dan zou het zonder het hernoemen van die variabele ook moeten werkenquote:Op donderdag 1 maart 2007 21:26 schreef s00z het volgende:
[..]
nu maar zo gedaan:
[ code verwijderd ]
En dan:
[ code verwijderd ]
Daar heb ik hem dus ook open gezet.quote:Op donderdag 1 maart 2007 23:15 schreef Xcalibur het volgende:
[..]
laat je router / modem / whatever het wel door?
misschien kan je daar een logfile zien van geblokkeerde requests?
mysql_error zegt:quote:Op donderdag 1 maart 2007 23:16 schreef CraZaay het volgende:
[..]
Kun je je MySQL server helemaal niet bereiken, of kom je er gewoon niet in met je user? In het laatste geval moet je je user niet alleen toegang geven vanaf localhost waarschijnlijk.
Nog leuker, als $_GET['page'] niet leeg of nul is dan is $page ook een string. En dan trek je dus een string van een string af in de hoop dat er een integer uit komtquote:Op donderdag 1 maart 2007 22:50 schreef CraZaay het volgende:
$limitminimalizer = $page - '1';
Je trekt een string van een integer af?(ja, het werkt in PHP, maar da's nog geen reden om het te doen
)
Maar het werkt prima!quote:Op donderdag 1 maart 2007 23:23 schreef Light het volgende:
[..]
Nog leuker, als $_GET['page'] niet leeg of nul is dan is $page ook een string. En dan trek je dus een string van een string af in de hoop dat er een integer uit komt
1 2 3 4 5 6 | $unsafeContentPage = isset($_GET['content']) ? $_GET['content'] : 'home'; if (!preg_match('~^[a-z_]+$~i', $unsafeContentPage)) { // Iets of iemand probeert iets fouts mee te geven $unsafeContentPage = 'home'; ?> |
Ja, PHP is zo loosely typed dat het niet uit maakt. Het ligt niet aan jou dusquote:
het is niet logisch om daar van alles zelf voor te maken als er prachtige functies zijn die dit automatisch doen. Kijk bijvoorbeeld is naar:quote:Op vrijdag 2 maart 2007 01:18 schreef s00z het volgende:
[..]
Maar het werkt prima!
En anders niet.
Jullie hadden ook niet echt zinvolle suggesties als ik zo brutaal mag zijn![]()
Maar wel tof dat jullie me ook proberen te helpen,nu moet ik nog mijn site een beetje veilig maken tegen injectie enzo, en hierboven heb ik een stuk gequote dat ik daartegen wil gebruiken..
Zal dat voldoende zijn denken jullie?![]()
Hierzo:
[ code verwijderd ]
1 2 3 4 | $query=mysql_escape_string($_GET['page']); $query=mysql_real_escape_string($_GET['page']); ?> |
1 2 3 4 5 6 7 8 | $allpages=array('home','forum','contact','intro','about'); if (in_array($_GET['page'],$allpages)) { $page=$_GET['page']; } else { $page=$allpages[0]; } ?> |
Tnx, daar was ik al bang voor ja.quote:Op vrijdag 2 maart 2007 11:29 schreef JeRa het volgende:
@splendor
Standaard wordt het 'echte' pad niet doorgegeven, maar er is wel een truukje voor. Je kunt met javascript vlak voordat je een formulier submit de waarde uitlezen en in een hidden field zetten.
Nadeel: je kunt niet in die file inputs wegschrijvendat om te voorkomen dat een website opeens mag bepalen welke bestanden jij verstuurt, dat zou een enorm lek betekenen.
zou anders toch niet handig werken, de gebruiker zou elke keer dat het formulier een fout bevat onnnodig het bestand opnieuw moeten uploadenquote:Op vrijdag 2 maart 2007 11:35 schreef splendor het volgende:
[..]
Tnx, daar was ik al bang voor ja.
Nouja wat een oplossing zou zijn is het file uploaden los maken van een groot ander formulier, met een eigen submit knop. Is een handeling meer voor de gebruiker maar scheelt een hoop ellende.
Zelfs al kan PHP het hele pad ergens vandaag toveren, dan nog heb je er niets aan. Je kunt de file input in de html namelijk niet populeren met een value uit veiligheidsoverwegingen.quote:Op vrijdag 2 maart 2007 11:27 schreef splendor het volgende:
Maar ik wil niet alleen de orginile bestandsnaam ['name'] maar het hele pad, dus: C:\blabla\bla\file.ext
Is dit mogelijk? Of wordt dit clientside nooit doorgestuurd?
Ik wil dit omdat ik nogal een lang formulier heb en als je een veld niet of niet goed invuldt dan krijg je netjes een rijtje errors en staan alle waarden nog steeds in het formulier, maar het file veld onthoudt ie de waarde niet van.
Juist, dus als iemand een query in wil vullen mtb injectie (want dat is injectie toch?) dan 'beschadigd' de variabele als het ware als er bij float een letter wordt ingevuld...quote:Op vrijdag 2 maart 2007 09:44 schreef ralfie het volgende:
[..]
het is niet logisch om daar van alles zelf voor te maken als er prachtige functies zijn die dit automatisch doen. Kijk bijvoorbeeld is naar:
[ code verwijderd ]
Mocht je ergens numerieke waarden willen, gebruik je een van deze twee
[ code verwijderd ]
afhankelijk van of je een heel getal (integer) will hebben of niet (float)
suc6
Sommige sites gebruiken een apart systeem voor het uploaden van bestanden. Een gebruiker kan dan los bestanden uploaden zodat deze dan tijdelijk ergens worden weggezet en gekoppeld aan de sessie. Als vervolgens het formulier een fout bevat, dan zijn de bestanden niet verloren gegaanquote:Op vrijdag 2 maart 2007 11:35 schreef splendor het volgende:
[..]
Nouja wat een oplossing zou zijn is het file uploaden los maken van een groot ander formulier, met een eigen submit knop. Is een handeling meer voor de gebruiker maar scheelt een hoop ellende.
1 2 3 4 5 | R61: $query ="INSERT INTO `kasboek` ( `id` , `datum` , `type` , `rekeningnr` , `van` , `categorie` , `default` , `bedrag` , `commentaar` ) VALUES ('', '".$POST[datum]."' , '".$POST[type]."', '".$POST[rekeningnr]."', '".$POST[van]."', '".$POST[categorie]."', '".$POST[`default`]."','".$POST[bedrag]."', '".$POST[commentaar]."');"; R62: $result = mysql_query($query) or ( $error = mysql_error()); R63: $data .= ($result) ? 'Afschrift toegevoegd' : 'Er ging wat fout:<br />'.$result; R64:} |
Als je dat consequent doet kan er nooit een probleem komen met reserved wordsquote:Op vrijdag 2 maart 2007 13:26 schreef Swetsenegger het volgende:
Sowieso... waarom die backticks?
Ja...maar als je het hele bestand inleest is het natuurlijk veel simpeler om filesize() te gebruikenquote:Op vrijdag 2 maart 2007 15:06 schreef Geqxon het volgende:
Ik ben op het moment vaak met fopen bezig, en ik wil graag bijhouden hoeveel bandbreedte ik er doorheen jaag.
Op het moment doe ik dat door elke keer als ik een file open en deze regel voor regel met een foreach doorneem, de string lengte van de huidige regel te pakken, en de lengte hiervan bij een variabele toe te voegen. Dat door 1024 delen en ik heb het aantal kilobyte.
Zit ik toevallig in de goede richting?
Een website in dit geval, dus volgens mij is dat niet mogelijk.quote:Op vrijdag 2 maart 2007 15:27 schreef JeRa het volgende:
[..]
Ja...maar als je het hele bestand inleest is het natuurlijk veel simpeler om filesize() te gebruiken
1 2 3 4 5 | $headers = get_headers($url, 1); if ((!array_key_exists("Content-Length", $headers))) { return false; } return $headers["Content-Length"]; ?> |
Nee, dat kan de gebruiker niet. De $_SESSION wordt alleen op de server gebruikt.quote:Op vrijdag 2 maart 2007 15:35 schreef Piles het volgende:
Even een kort vraagje: $_POST, $_GET en $_COOKIE moet je altijd 'beveiligen' tegen gevaarlijke waardes, maar hoe zit dat met $_SESSION? Kan een gebruiker/hacker daar ook in veranderen?
Ik maak nu een random-hash aan die ik opsla in de database (met een user_id erbij) en in de sessie. Met de sessie haal ik het user_id weer uit de database enzovoortsquote:Op vrijdag 2 maart 2007 16:08 schreef HuHu het volgende:
[..]
Nee, dat kan de gebruiker niet. De $_SESSION wordt alleen op de server gebruikt.
De client krijgt echter wel en cookie op zijn pc met het sessie-id erin. Dus die moet je wel controleren op het moment dat je het sessie-id uitleest.
Toch maar de regels tellenquote:Fatal error: Call to undefined function: get_headers() in /home/buyshitn/public_html/peppisodelite/index.php on line 189
Men zou de cookie met het sessie-id kunnen aanpassen, om zo SQL-injection te doen. Dus voordat je het sessie-id in een query gebruikt moet je deze controleren.quote:Op vrijdag 2 maart 2007 16:32 schreef Piles het volgende:
[..]
Ik maak nu een random-hash aan die ik opsla in de database (met een user_id erbij) en in de sessie. Met de sessie haal ik het user_id weer uit de database enzovoorts
Is dat veilig genoeg?
Dan doen we datquote:Op vrijdag 2 maart 2007 17:02 schreef HuHu het volgende:
[..]
Men zou de cookie met het sessie-id kunnen aanpassen, om zo SQL-injection te doen. Dus voordat je het sessie-id in een query gebruikt moet je deze controleren.
Heeft jou editor geen line numbers?quote:Op vrijdag 2 maart 2007 16:49 schreef Geqxon het volgende:
Grrrr, lekkere provider heb ik toch:
[..]
Toch maar de regels tellen
Edit: Mijn script wordt nu toch wel iets té optimistisch: Bandwidth used: 295.16 kB (126 kB/s). Op een 512kbit lijntje
Niet die regelsquote:Op vrijdag 2 maart 2007 17:24 schreef super-muffin het volgende:
[..]
Heeft jou editor geen line numbers?
Heb je het geprobeerd? PHP heeft stream wrappers, kans is dat het dus wel werkt.quote:Op vrijdag 2 maart 2007 15:28 schreef Geqxon het volgende:
[..]
Een website in dit geval, dus volgens mij is dat niet mogelijk.
Heel erg bedankt voor die site, hier heb ik wat aanquote:Op vrijdag 2 maart 2007 19:37 schreef CraZaay het volgende:
Begin eens met HTML en CSS te leren, bijvoorbeeld via www.w3schools.com
Je kunt immers wel beginnen met PHP, maar uiteindelijk moet je het resultaat toch in HTML tonen. Lijkt mij handig om dat eerst te kunnen
Dat osCommerce ken ik niet ja hoe bedoel je n00bquote:Op vrijdag 2 maart 2007 19:42 schreef HuHu het volgende:
Inderdaad eerst HTML en CSS leren voor de basis. Met een programma als Dreamweaver leer je dan wel vanzelf omgaan als je de HTML en CSS begrijpt. Daarna PHP gaan leren.
Maar een complete webshop bouwen is wel een aardig project waarbij je wel op heel veel dingen moet letten. Je kan natuurlijk ook eens je licht laten schijnen op iets als osCommerce. Dat is een standaardpakket, zodat je het wiel niet opnieuw hoeft uit te vinden. Je kan dan je opgedane HTML, CSS en PHP kennis gebruiken om osCommerce naar je wensen aan te passen.
Je hoeft dan niet hele basic dingen zelf helemaal uit te gaan vinden, aangezien iets als osCommerce dat al over-en-over heeft uitgedacht, geprobeerd en getest.
Maar aan de andere kant léér je ontzettend veel van het maken van een webshop en kan je hem helemaal aan je wensen aanpassenquote:Op vrijdag 2 maart 2007 19:42 schreef HuHu het volgende:
Inderdaad eerst HTML en CSS leren voor de basis. Met een programma als Dreamweaver leer je dan wel vanzelf omgaan als je de HTML en CSS begrijpt. Daarna PHP gaan leren.
Maar een complete webshop bouwen is wel een aardig project waarbij je wel op heel veel dingen moet letten. Je kan natuurlijk ook eens je licht laten schijnen op iets als osCommerce. Dat is een standaardpakket, zodat je het wiel niet opnieuw hoeft uit te vinden. Je kan dan je opgedane HTML, CSS en PHP kennis gebruiken om osCommerce naar je wensen aan te passen.
Je hoeft dan niet hele basic dingen zelf helemaal uit te gaan vinden, aangezien iets als osCommerce dat al over-en-over heeft uitgedacht, geprobeerd en getest.
Dat is zeker waar, maar jij was dan ook geen n00b meer toen je begon met 't bouwen ervanquote:Op zaterdag 3 maart 2007 11:38 schreef Swetsenegger het volgende:
[..]
Maar aan de andere kant léér je ontzettend veel van het maken van een webshop en kan je hem helemaal aan je wensen aanpassen
weet ik uit ervaring
Niet volslagen nee....quote:Op zaterdag 3 maart 2007 11:47 schreef HuHu het volgende:
[..]
Dat is zeker waar, maar jij was dan ook geen n00b meer toen je begon met 't bouwen ervan.
bedankt en jaquote:Op zaterdag 3 maart 2007 12:54 schreef Kwelit het volgende:
Ziet er erg goed uit Swets!!Heb je die helemaal 'from sratch' in elkaar gezet?
Ik was een jaar met php bezig voordat ik hieraan begon. En voor ik aan php begon had ik in een grijs verleden programmeer ervaring opgedaan in MSX basic en Z80/MSX assembly.quote:Wat was jouw voorkennis als ik vragen, omdat je aangeeft dat je voordat je begon geen volslagen n00b was?
quote:Op zaterdag 3 maart 2007 15:13 schreef splendor het volgende:
ik voer een htmlspecialchars uit op al mijn POST variablen standaard voor ik er iets mee ga doen, en het ziet er naar uit dat karakters als \ en ' en " netjes omgezet worden maar moet ik alsnog een addslashes uitvoeren voor een post waarde de database ingaat? Want als ik dat doe en het komt de database uit zit alles vol met slashes en kan ik overal waar ik het wil gaan gebruiken eerst stripslashes uitvoeren.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | function stripslashes_deep($value) { $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value); return $value; } if(isset($_POST['submit']{ if(get_magic_quotes_gpc()){ $_POST = stripslashes_deep($_POST); } $query="INSERT INTO tabel (id,iets) VALUES(0,'".mysql_real_escape_string($_POST['iets'])."')"; } ?> |
Hmm, maar even een vraag dan.. stel je hebt ergens in je query iets alsquote:Op zaterdag 3 maart 2007 15:18 schreef Swetsenegger het volgende:
[..]
gebruik de stripslashes_deep functie die halverwege de pagina staat. Schrijf je variabelen met mysql_real_escape_string naar de database.
[ code verwijderd ]
Ja maar ik snap niet goed waarom dat is? Is het niet mogelijk om mysql te vertellen om het als waarde te behandelen maar wel de \ eruit te halen? Of is dat gewoon iets wat mysql niet doet en daarom moet je zo moeilijk doen in php?quote:Op zaterdag 3 maart 2007 16:10 schreef Geqxon het volgende:
In je database komt dan ab backslash-singlequote cd te staan. Daarom moet je de slashes nog even strippen.
Zou het kunnen zijn omdat ik eerst htmlspecialchars uitvoer? En dat een addslashes daarna een beetje dubbelop is dus.quote:Op zaterdag 3 maart 2007 16:17 schreef HuHu het volgende:
Waarschijnlijk gaat het ergens een keertje dubbelop en komt er dus 'ab\'cd' te staan in je query. In de database komt dan 'ab'cd' te staan, waardoor je bij het eruit halen nogmaals een stripslashes moet doen.
Als er een ' in je data zit, maar deze wordt niet ge-escaped, dan weet MySQL niet of daar je data ophoud en de query verder gaat, of dat het bij je data hoort. Vandaar dat je altijd moet escapen met slashes.
Ik heb een module gemaakt die OO een compleet formulier kan opbouwen, verwerken en filteren. Dus wil ik ergens $_POST['iets'] gebruiken, dan is dat al helemaal gefilterd en veilig, scheelt een hoop controles overal die je toch weer kunt vergeten.quote:Op zaterdag 3 maart 2007 16:35 schreef HuHu het volgende:
Waarom doe je een htmlspecialchars() vóór het opslaan in de database? Je kan dat toch gewoon doen net voor het moment dat je 't gaat tonen?
neequote:Op zaterdag 3 maart 2007 15:50 schreef splendor het volgende:
[..]
Hmm, maar even een vraag dan.. stel je hebt ergens in je query iets als
SET bla = 'ab'cd'
en dus zal ie over de zeik gaan.
Met mysql_real_escape_string zal inderdaad ab'cd in de db staan, met addslashes staat ab\'cd in de dbquote:doe ik dan addslashes dan wordt het
SET bla = 'ab\'cd'
maar in de database zelf komt dan toch ab'cd te staan? en niet ab\'cd ?
omdat er dan dus een slash in je database veld staat.quote:Ik snap niet goed waarom ik na een addslashes toch nog een stripslashes moet uitvoeren?
je moet gewoon mysql_real_escape_string gebruiken en niet addslashes en stripslashes.quote:Op zaterdag 3 maart 2007 16:12 schreef splendor het volgende:
[..]
Ja maar ik snap niet goed waarom dat is? Is het niet mogelijk om mysql te vertellen om het als waarde te behandelen maar wel de \ eruit te halen? Of is dat gewoon iets wat mysql niet doet en daarom moet je zo moeilijk doen in php?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |