je hebt gelijk. Stom van mequote:Op woensdag 22 maart 2006 16:02 schreef JeRa het volgende:
Twee dingen:
1) Op de manier van Blerfaap krijg je geen resultaten als het niet voorkomt in álle fields, gebruik de OR_operator om iresultaten te tonen als het in één van de fields voorkomt.
2) Gooi nooit zomaar $_POST['zoeken'] in een query, denk aan escaping e.d.
1 2 3 4 5 6 | FIELDS TERMINATED BY '|' ENCLOSED BY '\\' ESCAPED BY '\\' LINES TERMINATED BY '\\r\\n' ") or die (mysql_error()); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | if (get_magic_quotes_gpc()) { function stripslashes_deep($value) { $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value); return $value; } $_POST = array_map('stripslashes_deep', $_POST); $_GET = array_map('stripslashes_deep', $_GET); $_COOKIE = array_map('stripslashes_deep', $_COOKIE); } ?> |
1 2 3 | ... } |
Ja, maar de FUNCTIE wordt pas DAARNA aangeroepen.quote:Op woensdag 22 maart 2006 19:45 schreef JeRa het volgende:
@Swetsenegger
Als je die code letterlijk in je script overneemt staat er in feite:
[ code verwijderd ]
Er wordt dus weldegelijk gechecked of magic quotes aanstaaten $value wordt gevuld door de functie array_map(), zie daarvoor de PHP manual.
En sterker nog, volgens mij bestaat de functie stripslashes_deep() niet eens als magic_quotes_gpc niet aanstaatquote:Op woensdag 22 maart 2006 20:24 schreef Swetsenegger het volgende:
[..]
Ja, maar de FUNCTIE wordt pas DAARNA aangeroepen.
dus wanneer ik vanuit mijn script die functie aanroept wordt er niet gecontroleerd of magic quotes aanstaat
Maar als ik het goed begrijp is dit geen functie welke je zelf aanroept vanuit je script, maar welke gewoon ALTIJD gestart wordt zodra je de page oproept?
-edit- ah, ok araay_map is een callback functie.
Even goed doorlezen
Jera, ja precies, vandaar mijn verwarring.quote:Op woensdag 22 maart 2006 20:35 schreef JeRa het volgende:
[..]
En sterker nog, volgens mij bestaat de functie stripslashes_deep() niet eens als magic_quotes_gpc niet aanstaatdan is ie namelijk niet gedefinieerd.
Dat laatste snap ik niet.quote:Op woensdag 22 maart 2006 21:09 schreef JeRa het volgende:
Je snapt hem helemaal, en wat je dus moet doen:
-) Áltijd mysql_real_escape_string() toepassen als je het in een query zet
-) Niet strippen als je het uit de DB haalt, omdat de database op deze manier altijd de pure, ongeslashde data bevat (en zo hoort het ook)
Door die code bovenaan je script te zetten zorg je ervoor dat alle wijzigingen gedaan door magic_quotes_gpc ongedaan worden gemaaktquote:Op woensdag 22 maart 2006 21:10 schreef Swetsenegger het volgende:
[..]
Dat laatste snap ik niet.
mysql_real_escape_string... de naam zegt het al een beetje.... escaped (slashed) toch OOK?
Ah ok, mysql_real_escape_string is 'weg' zodra $variabele de db ingaatquote:Op woensdag 22 maart 2006 21:20 schreef JeRa het volgende:
[..]
Door die code bovenaan je script te zetten zorg je ervoor dat alle wijzigingen gedaan door magic_quotes_gpc ongedaan worden gemaaktdit heeft in basisbeginsel niets te maken met MySQL of wat dan ook, puur met de data die je van de gebruiker krijgt.
Door mysql_real_escape_string() te gebruiken zorg je ervoor dat je deze data van de gebruiker in een query kunt zetten zonder dat quotes kapot gaan. Voorbeeldje:
SELECT * FROM tabel WHERE naam = '$variabele'
Als $variabele nu een apostrofe bevat, dan is de query kapot. Dit kan tot beveiligingslekken leiden (SQL injection). Dáárom doe je een mysql_real_escape_string() over je data
Je database bevat dan gewoon de pure data van de gebruiker, zónder slashes (omdat dit alléén voor de query was). Als je deze opvraagt krijg je ook deze data binnen, omdat magic_quotes_gpc alleen voor $_GET, $_POST en $_COOKIES van toepassing is.
Mjup, het is dus gewoon een manier voor MySQL om apostrofes/newlines/etc in strings te ondersteunenquote:Op woensdag 22 maart 2006 21:39 schreef Swetsenegger het volgende:
[..]
Ah ok, mysql_real_escape_string is 'weg' zodra $variabele de db ingaat
Top,quote:Op woensdag 22 maart 2006 21:43 schreef JeRa het volgende:
[..]
Mjup, het is dus gewoon een manier voor MySQL om apostrofes/newlines/etc in strings te ondersteunen
Herkenningquote:Op woensdag 22 maart 2006 22:11 schreef Swetsenegger het volgende:
[..]
jammer dat ik bij oude websites nogal de plank heb misgeslagen mbt slashes en escapen
Ja zo ben ik nu ook wat sites aan het aflopen en ik ZIE me een baggerquote:Op woensdag 22 maart 2006 22:15 schreef JeRa het volgende:
[..]
Herkenningben ooit uit pure frustratie al m'n sites afgelopen om het goed te zetten, niet leuk aangezien een deel uit de tijd kwam dat ik nog niet wist hoe JOINs werkten (en dus geneste queries schreef
).
Da's op zich niet zo heel ongebruikelijk als je oude code bekijkt. Door ervaring word je beter, en dan (b)lijkt je oude code stukken slechter in elkaar te zitten dan je eerst dacht.quote:Op woensdag 22 maart 2006 22:24 schreef Swetsenegger het volgende:
[..]
Ja zo ben ik nu ook wat sites aan het aflopen en ik ZIE me een bagger.
Nou ja, er zijn op dit moment van paginaatjes een stuk effectiever
Hum, nou ja handmatig lukt het me wel.. sort of..quote:Op donderdag 23 maart 2006 04:00 schreef JeRa het volgende:
@Siegfried
Je hebt de gemiddelde stijging of daling per dag nodig, maar het is 'voldoende om de gemiddelde daling/stijging van de laatste 3 dagen te nemen'? Naar mijn weten heb je voor een gemiddelde per dag nog altijd alleen de gegevens van één dag nodig. Bedoel je misschien de gem. daling/stijging per weekdag?
Verder: heb je voor jezelf duidelijk wát je nu precies wilt doen? Wat wil je bereiken en kun je het probleem handmatig oplossen? Zo nee, waar loop je vast?
Ja dat klopt, maar ik heb de waterstanden ook nodig, voor latere berekeningen.quote:Op donderdag 23 maart 2006 11:22 schreef the_disheaver het volgende:
De verschil ten opzichte van de vorige dag staat er onder (met <br><small>xx</small>
die kun je toch op dezelfde manier in de arry stoppen?
Ik wil wel, zodra je me vertelt wat er niet luktquote:Op donderdag 23 maart 2006 15:31 schreef Siegfried het volgende:
[..]
Wellicht dat je me nu ietsje verder kunt helpen?
Nee, daarmee bereken je de gemiddelde waterstand van de afgelopen 3 dagen.quote:Op donderdag 23 maart 2006 15:31 schreef Siegfried het volgende:
[..]
Hum, nou ja handmatig lukt het me wel.. sort of..
Kijk, ik moet weten wat het water gemiddeld gedaan heeft de afgelopen dagen. Dus moet ik weten wat het van gister op vandaag deed, eergister op gister en eereergister op eergister. Dit is de stijging/daling van de afgelopen 3 dagen, bij elkaar optellen en delen door 3 (denk ik) dan heb ik de gemiddelde stijging/daling van de afgelopen 3 dagen.. Hoop ik..
Het is van belang om dat te weten om de trend te kunnen voorspellen.. Het water gaat niet in een keer veel harder stijgen of dalen..
Wellicht dat je me nu ietsje verder kunt helpen?
Nee hier heb je ongelijk, want ik tel niet de waterstand op, en deel die door 3 maar het verschíl van de 3 dagen..quote:Op donderdag 23 maart 2006 15:41 schreef the_disheaver het volgende:
[..]
Nee, daarmee bereken je de gemiddelde waterstand van de afgelopen 3 dagen.
Als je van de waterhoogte van 3 dagen de stijging/dlaing over 3 dagen wilt weten, dan trek je simpel weg de waterhoogte van nu af van de waterhoogte van 3 dagen geleden. Een negatief getal is een daling.
Dit kan ook door de veranderingen tov de vorige dag (de waarden die onder de waterstand staan in kleine letters tussen haakjes op te tellen.
Mja deze som nu omzetten naar PHP wil me gewoon niet lukkenquote:Op donderdag 23 maart 2006 15:36 schreef JeRa het volgende:
[..]
Ik wil wel, zodra je me vertelt wat er niet lukt
Het is iets anders.quote:Op donderdag 23 maart 2006 15:54 schreef Siegfried het volgende:
[..]
Nee hier heb je ongelijk, want ik tel niet de waterstand op, en deel die door 3 maar het verschíl van de 3 dagen..
Dus
vandaag - gister = verschil 1
gister - eergister = verschil 2
eergister - eereergister = verschil 3
(verschil 1 + verschil 2 + verschil 3) / 3 = het gem stijging/daling van de afgelopen 3 dagen, right?
Die is nauwkeuriger dan vandaag - eereergisteren, lijkt mij..
1 2 3 4 5 6 7 | if (file_exists("$dir/$documentname") != 0){ $documentname = explode (".", $documentname); $documentname[0] = $documentname[0]."a"; $documentname = implode (".", $documentname); } ?> |
1 2 3 4 5 6 7 8 9 10 11 | for($i) { if (file_exists("$dir/$documentname") != 0){ $documentname = explode (".", $documentname); $documentname[0] = $documentname[0]."a"; $documentname = implode (".", $documentname); } else { break 1; } } ?> |
quote:Op donderdag 23 maart 2006 21:00 schreef Desdinova het volgende:
ik heb nu dit:
[ code verwijderd ]
ik wil dit in een soort loop hebben, zodat hij blijft checken of het bestand bestaat (ook met de 'a' erachter), en dat hij een 'a' blijft toevoegen, net zolang totdat file_exist false is.
hoe doe ik dat?
1 2 3 4 5 6 7 | while (file_exists("$dir/$documentname")){ $documentname = explode (".", $documentname); $documentname[0] = $documentname[0]."a"; $documentname = implode (".", $documentname); } ?> |
1 2 3 | memory_limit = 8M upload_max_filesize = 6M |
1 2 3 4 5 6 7 8 | if (!in_array('ad', $_SESSION['roles']) || !in_array('tl', $_SESSION['roles'])) { echo 'niet toegestaan dit te zien'; print_r($_SESSION['roles']); return; } ?> |
1 2 3 4 5 6 7 8 9 10 11 | if (!in_array('ad', $_SESSION['roles'])) { if (!in_array('tl', $_SESSION['roles']) { echo 'niet toegestaan dit te zien'; print_r($_SESSION['roles']); return; } } ?> |
Thnx, had ik ook al geprobeerd, maar is niet de oplossing...quote:
Het is niet hetzelfde:quote:Op vrijdag 24 maart 2006 15:06 schreef ToBe het volgende:
Ik snap iets niet. If I am correct, moeten onderstaande codes precies hetzelfde doen.
[ code verwijderd ]
[ code verwijderd ]
Echter, krijg ik dat het in versie 2 wel werkt en in versie 1 niet... ik snap het niet, iemand een suggestie? (bij 2 parsed ie dus wel de rest van de pagina en bij 1 niet...)
1 2 3 4 5 6 | if ($a || $b)) { ... } ?> |
1 2 3 4 5 6 7 8 9 | if ($a)) { if ($b) { ... } } ?> |
Je hebt gelijk..quote:Op vrijdag 24 maart 2006 15:39 schreef Light het volgende:
[..]
Het is niet hetzelfde:
[ code verwijderd ]
De code ... wordt uitgevoerd als $a of $b waar is, of als beide waar zijn.
[ code verwijderd ]
De code ... wordt slechts dan uitgevoerd als $a en $b beide waar zijn. Da's dus iets anders.
Omdat als $_SESSION['roles'] de waarde tl heeft, $_SESSION['roles'] de waarde ad NIET heeft, waardoor hij nog steeds de foutmelding triggert.quote:Op vrijdag 24 maart 2006 18:53 schreef ToBe het volgende:
[..]
Je hebt gelijk..
Maar dan blijft de vraag:
mijn $_SESSION['roles'] heeft de waarde van tl
Waarom wordt er dan geen output gegenereerd, maar krijg ik slechts te zien dat ik niet erin mag?
code nogmaals:
[ code verwijderd ]
1 2 3 4 5 6 7 | if(true) { echo 'niet toegestaan dit te zien'; return; } ?> |
ben er even mee bezig geweest, heb nu de volgnde query opgesteld:quote:Op woensdag 22 maart 2006 16:56 schreef markiemark het volgende:
oh zo ok.. ga het eens even proberen zo! dank je wel!
edit: Sorry... dubbtel postquote:Op zaterdag 25 maart 2006 12:38 schreef markiemark het volgende:
[..]
ben er even mee bezig geweest, heb nu de volgnde query opgesteld:
SELECT paduaan_artikelen.art_id, paduaan_artikelen.art_titel, paduaan_categorie.cat_titel, paduaan_redactie.red_naam FROM paduaan_artikelen, paduaan_categorie, paduaan_redactie WHERE paduaan_artikelen.art_cat = paduaan_categorie.cat_id AND paduaan_redactie.red_id = paduaan_artikelen.art_creator AND paduaan_artikelen.art_artikel LIKE '%hockey%' OR paduaan_artikelen.art_titel LIKE '%hockey%' OR paduaan_artikelen.art_inleiding LIKE '%hockey%' ;
Werkt wel... Maar ik krijg 56 resultaten terwijl ik er maar een nodig heb... Iets met distinct? Of is de query gewoon niet goed?
1 2 3 4 5 | if(0 == count(array_intersect($_SESSION['roles'], array('ab','tl'))) { echo 'geen toegang'; } ?> |
stoere array functie! Die kon ik nog niet.quote:Op zaterdag 25 maart 2006 12:40 schreef Roönaän het volgende:
ToBe,
Eventueel kan je ook doen:
[ code verwijderd ]
Aliassen voor tabellen maakt het iig een stuk overzichtelijker:quote:Op zaterdag 25 maart 2006 12:38 schreef markiemark het volgende:
[..]
ben er even mee bezig geweest, heb nu de volgnde query opgesteld:
SELECT paduaan_artikelen.art_id, paduaan_artikelen.art_titel, paduaan_categorie.cat_titel, paduaan_redactie.red_naam FROM paduaan_artikelen, paduaan_categorie, paduaan_redactie WHERE paduaan_artikelen.art_cat = paduaan_categorie.cat_id AND paduaan_redactie.red_id = paduaan_artikelen.art_creator AND paduaan_artikelen.art_artikel LIKE '%hockey%' OR paduaan_artikelen.art_titel LIKE '%hockey%' OR paduaan_artikelen.art_inleiding LIKE '%hockey%' ;
Werkt wel... Maar ik krijg veel meer resultaten... Iets met distinct? Of is de query gewoon niet goed?
1 2 3 4 5 6 7 | FROM paduaan_artikelen a, paduaan_categorie c, paduaan_redactie r WHERE a.art_cat = c.cat_id AND r.red_id = a.art_creator AND (a.art_artikel LIKE '%hockey%' OR a.art_titel LIKE '%hockey%' OR a.art_inleiding LIKE '%hockey%' ) |
1 2 3 4 5 6 7 | FROM paduaan_artikelen a INNER JOIN paduaan_categorie c ON a.art_cat = c.cat_id INNER JOIN paduaan_redactie r ON r.red_id = a.art_creator WHERE a.art_artikel LIKE '%hockey%' OR a.art_titel LIKE '%hockey%' OR a.art_inleiding LIKE '%hockey%' |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |