@Morax
Dank u. Nu is het goed
Dank u. Nu is het goed
Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.
1
2
3
4
5
6
7
8
9
10
| function safe($string) { if(get_magic_quotes_gpc()) { return stripslashes($string); } else { return $string; } $string = mysql_real_escape_string($string); $string = htmlentities($string); } |
Welles
| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Verwijderd
Dat ligt er aan. Als je bijvoorbeeld forum berichten hebt dan kun je ze best voor beide willen escapen.Woy schreef op dinsdag 22 februari 2011 @ 12:27:
Idd het is sowieso vies, want die functie escaped (probeert althans) zowel voor HTML als voor MySql. HTML Escaping zou je alleen moeten doen op het moment dat je HTML output, en database escaping alleen als je met een database communiceert.
Je kunt er best voor kiezen om ook data te cachen, en dus ook een reeds getransformeerde versie op te slaan, maar dan nog is het idioot om dat in een dergelijke functie te doen waar je al je data door haalt ( Waar dit verdacht veel op lijkt ).Verwijderd schreef op dinsdag 22 februari 2011 @ 12:38:
[...]
Dat ligt er aan. Als je bijvoorbeeld forum berichten hebt dan kun je ze best voor beide willen escapen.
[ Voor 30% gewijzigd door Woy op 22-02-2011 12:55 ]
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Er komt geen html data aan te pas, in principe allemaal tekst alleen (naam velden etc), maar het is wel een mooie functieDavio schreef op dinsdag 22 februari 2011 @ 12:55:
Je kunt het bericht ook zowel opslaan als HTML-escaped als origineel voor het editen.
Welles
Op https://www.dexia.be/info/nl/iws/home.html in de webbrowser Opera 11.01Jammer, maar met uw huidige internetbrowser kunt u deze website niet optimaal gebruiken. Om al onze toepassingen correct te kunnen opstarten, moet u een recentere versie van uw internetbrowser installeren, of een andere gebruiken.
[ Voor 11% gewijzigd door Styxxy op 25-02-2011 14:23 . Reden: code tags -> quote tags ]
if (browser niet herkend) {Styxxy schreef op vrijdag 25 februari 2011 @ 13:45:
[...]
Op https://www.dexia.be/info/nl/iws/home.html in de webbrowser Opera 11.01 :x . Ik word er echt zot van (en de website werkt perfect bij mij). Oké, online bankieren gaat niet in Opera, wat ik ook een zonde vind.
Een ander voorbeeld is https://www.ziggo.nl/YopY schreef op vrijdag 25 februari 2011 @ 14:02:
[...]
if (browser niet herkend) {
browser moet wel niet ondersteund worden, snap het niet ¯\(°_o)/¯
}
Alvast hartelijk bedankt voor al jullie hulp en reacties, Tim Bots
1
2
3
4
5
6
7
| function antisql($sql) { $sql = preg_replace(sql_regcase("/(from|select|insert|delete|where|drop table|'|show tables|\\\\)/"),"",$sql); $sql = trim($sql); $sql = strip_tags($sql); $sql = addslashes($sql); return $sql; } |
League of Legends [Last Updated 22-08-2012]: [EUW] Jeffro (Now:Silver, S1:Bronze), RankedSolo5x5: 1502 [120W/106L], Dominion: 84W, TT: 3W, Normal: 504W
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Dus het is beter om in plaats van een functie ervoor te gebruiken elk variable die je wilt gebruiken gewoon allemaal apart te processen in plaats van $security->antisql($whatever); ?Janoz schreef op vrijdag 25 februari 2011 @ 16:02:
Prachtig slecht programmeer voorbeeld inderdaad.
League of Legends [Last Updated 22-08-2012]: [EUW] Jeffro (Now:Silver, S1:Bronze), RankedSolo5x5: 1502 [120W/106L], Dominion: 84W, TT: 3W, Normal: 504W
[ Voor 82% gewijzigd door Jaap-Jan op 25-02-2011 16:35 ]
| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett
Volgens mij vroeg hij zich meer af of de functie an sich onlogisch was en dat ie de body van de functie dus maar her en der moet dupliceren.Jaap-Jan schreef op vrijdag 25 februari 2011 @ 16:26:
Ja, want je kunt makkelijk om die keywords heen werken.
Dat doet ie al enigszins, met addslashes(). Niet de juiste functie natuurlijk, hij had mysql_real_escape_string() oid moeten gebruiken.Hoe ga je je tegen zoiets wapenen:
' or 1=1#
[ Voor 48% gewijzigd door .oisyn op 25-02-2011 16:32 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
[ Voor 41% gewijzigd door Jeffroiscool op 25-02-2011 16:52 ]
League of Legends [Last Updated 22-08-2012]: [EUW] Jeffro (Now:Silver, S1:Bronze), RankedSolo5x5: 1502 [120W/106L], Dominion: 84W, TT: 3W, Normal: 504W
Nee, je moet je input sanitizenJeffroiscool schreef op vrijdag 25 februari 2011 @ 16:47:
Hmm, simpelste oplossing is dus complete functie eruit slopen en gewoon in mijn databaselayer mysqli_real_escape_string() erin gooien
[ Voor 29% gewijzigd door Radiant op 25-02-2011 17:02 ]
Problemen met je functie zijn oa:Jeffroiscool schreef op vrijdag 25 februari 2011 @ 16:24:
[...]
Dus het is beter om in plaats van een functie ervoor te gebruiken elk variable die je wilt gebruiken gewoon allemaal apart te processen in plaats van $security->antisql($whatever); ?
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Wat hij voorstelde is precies wat hij moet doen. Of prepared statements gebruiken idd, maar dat maakt niet zoveel uit. Het gaat erom dat je de escaping pas bij versturen van je database goed maakt, en niet zodra je die binnenkrijgt. Het sanitizen van input is nogal input-afhankelijk. Om de post van een forum er maar weer bij te halen, daar valt weinig aan te sanitizen. Het topic-id waar die post in terecht moet komen dan weer wel.
[ Voor 20% gewijzigd door .oisyn op 25-02-2011 17:11 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Verwijderd
Op mijn android-telefoon vraagt hij dan automatisch of ik de user-agent wil switchen. Dus als de mogelijkheid bestaat voor jou om user-agent te switchen. DOEN! Wel terugzetten daarna want anders krijg je ook niet meer dat je mobile websites laadt.Tim_bots schreef op vrijdag 25 februari 2011 @ 14:42:
[...]
Een ander voorbeeld is https://www.ziggo.nl/
In de code (onderaan) is te zien dat deze site moeilijk gaat doen met IE6 en opera. Met een mobile browser (G1, android 1.6) krijg je op iedere pagina (middels een alert) te zien "Browser not supported". Best irritant als je iets van ziggo wil opzoeken.
[ Voor 13% gewijzigd door Verwijderd op 25-02-2011 17:45 ]
[ Voor 8% gewijzigd door Avalaxy op 25-02-2011 18:19 ]
Verwijderd
1
2
3
4
5
6
7
8
| // http://example.com/paypal/123 function paypal($orderId) { if ($orderId != $_POST['blaat']) { exit; } $this->Order->id = $orderId; $this->Order->betaald(); } |
Verwijderd schreef op vrijdag 25 februari 2011 @ 17:44:
[...]
Op mijn android-telefoon vraagt hij dan automatisch of ik de user-agent wil switchen. Dus als de mogelijkheid bestaat voor jou om user-agent te switchen. DOEN! Wel terugzetten daarna want anders krijg je ook niet meer dat je mobile websites laadt.
Alvast hartelijk bedankt voor al jullie hulp en reacties, Tim Bots
Het werkt toch?Verwijderd schreef op zaterdag 26 februari 2011 @ 11:50:
Klein voorbeeldje:
Betaling via PayPal krijg je een callback van de PayPal-server, en dat werd dan zo afgehandeld:
PHP:
1 2 3 4 5 6 7 8 // http://example.com/paypal/123 function paypal($orderId) { if ($orderId != $_POST['blaat']) { exit; } $this->Order->id = $orderId; $this->Order->betaald(); }
In eerste instantie dacht ik er alleen aan dat gebruikers er mee zouden kunnen kloten, maar toen ik betere keek, zag ik dat er geen check in zat voor de betaalstatus. En er stonden inderdaad al wat facturen op "Betaald" waarvan de betaling "Pending"/"Failed" was...
Verwijderd
Ja, inderdaad. En de mensen waarbij de betaling niet gelukt is, hebben we de producten cadeau gedaan!
Wel knap dat die mensen hebben gevonden welke URL/post ze moeten gebruiken om jullie systeem te laten geloven dat de betaling gelukt is. Via een get/querystring is het makkelijk te zien en te faken, maar een post analyseren en simuleren kost toch wel iets meer moeite (is het nog niet moeilijk overigens).Verwijderd schreef op zondag 27 februari 2011 @ 20:41:
[...]
Ja, inderdaad. En de mensen waarbij de betaling niet gelukt is, hebben we de producten cadeau gedaan!
The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
We are shaping the future
Mmm, dat kan natuurlijk ook nog zijn. Dacht dat dit een aparte call was die alleen werd gedaan bij gelukte betalingen. Had namelijk ook mogelijk geweest dat je opgeeft welke URL moet worden gebruikt bij succes en bij fail.Davio schreef op maandag 28 februari 2011 @ 09:32:
Dat is wat ik ook dacht, Alex.
The #1 programmer excuse for legitimately slacking off: "My code's compiling"
Firesphere: Sommige mensen verdienen gewoon een High Five. In the Face. With a chair.
Zo werkt iDeal ook ja. Maar die url kan je alsnog uit je formulier halen omdat die wordt gePOST'd naar de iDeal server. Dus als je alsnog bij die success-url je betaling als betaald markeert ben je er nog niet..Gertjan. schreef op maandag 28 februari 2011 @ 10:16:
[...]
Mmm, dat kan natuurlijk ook nog zijn. Dacht dat dit een aparte call was die alleen werd gedaan bij gelukte betalingen. Had namelijk ook mogelijk geweest dat je opgeeft welke URL moet worden gebruikt bij succes en bij fail.
1
| echo "<script>javascript:location.replace('/zoeken')</script>"; |
Verwijderd
Jep, dat klopt. Inmiddels is het omgebouwd. Krijg nu een post met alle data, waaronder de betaalstatus. Dan doe ik nog een call naar PayPal-server om te controleren of de POST echt is. Nu klopt het dus wel.Alex) schreef op maandag 28 februari 2011 @ 09:08:
Als ik het goed begrijp is het nog iets anders: de betaling wordt gestart, er wordt naar PayPal geredirect, waar de betaling mislukt/wordt geannuleerd. De klant wordt teruggeredirect naar het systeem (adhv een opgegeven return URL), en het systeem registreert hoe dan ook de status als "betaald" zonder eerst te checken of dat ook zo is volgens PayPal.
Klopt het?
1
2
3
4
5
6
7
8
| uint16_t input0 = 0; /* Doe dingen met input0 */ if ((input0 & 0x0010) == 1) { /* Doe waar */ } else { /* Doe onwaar */ } |
1
| if ((input0 & 0x0010) != 0) { |
[ Voor 21% gewijzigd door Matis op 01-03-2011 16:03 ]
If money talks then I'm a mime
If time is money then I'm out of time
1
2
3
4
| exec Foo :Param1, :Param2, :Param3 |
1
2
3
4
5
6
7
8
| with QueryComponent do begin ParamByName('Param1').AsString := 'Foo'; ParamByName('Param2').AsString := 'Bar'; ParamByName('Param3').AsString := 'Baz'; ExecSQL(); end; |
1
2
3
4
5
6
7
8
9
10
11
12
| create procedure Foo @Param1 varchar(20), @Param2 varchar(20), @Param3 varchar(20) as begin print 'Param1: ' + ISNULL(@Param1, '<null>'); print 'Param2: ' + ISNULL(@Param2, '<null>'); print 'Param3: ' + ISNULL(@Param3, '<null>'); END |
1
| exec Foo 'Foo', 'Bar', 'Baz', |
1
| exec Foo @Param1 = 'Foo', @Param2 = 'Bar', @Param3 = 'Baz', |
https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...
1
2
3
| $test = array('foo', 'bar', 'wtfbbq'); var_dump(in_array(0, $test)); // output: bool(true) |
[ Voor 4% gewijzigd door Michali op 04-03-2011 14:20 ]
[ Voor 17% gewijzigd door Matis op 04-03-2011 14:33 ]
If money talks then I'm a mime
If time is money then I'm out of time
[ Voor 20% gewijzigd door .oisyn op 04-03-2011 15:29 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
[ Voor 9% gewijzigd door Jaap-Jan op 04-03-2011 16:03 ]
| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett
Verwijderd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
| int alPhotoStruct::buildViewClusters() { int numViews = m_imageMatches.size(); int numClusters = 0; //reset std::vector<bool> processedList; for( int i = 0; i < numViews; i++ ) processedList.push_back( false ); for( int i = 0; i < numViews; i++ ) { //already done if( processedList[i] ) continue; //alImageMatches &curImage = m_imageMatches[i]; //(PAUL) Uncomment to ignore isolated views //if( !curImage.m_neighBourList.size() ) // continue; alImageViewClusters curCluster; std::stack<int> viewList; //push neigbours onto stack for( int j = 0; j < m_imageMatches[i].m_neighBourList.size(); j++ ) viewList.push( m_imageMatches[i].m_neighBourList[j] ); //push self onto stack viewList.push( i ); //start building cluster list while( !viewList.empty() ) { int viewIndex = viewList.top(); viewList.pop(); if( !curCluster.containsView( viewIndex ) ) { //mark as processed processedList[viewIndex] = true; //add view to cluster curCluster.addView( viewIndex ); //push neigbours onto stack for( int j = 0; j < m_imageMatches[viewIndex].m_neighBourList.size(); j++ ) viewList.push( m_imageMatches[viewIndex].m_neighBourList[j] ); //curImage = m_imageMatches[i]; //for( int j = 0; j < curImage.m_neighBourList.size(); j++ ) // viewList.push( curImage.m_neighBourList[j] ); } } if( curCluster.m_imageViews.size() ) { m_viewClusters.push_back( curCluster ); numClusters++; } else { wxLogMessage( wxT( "Warning --> alPhotoStruct::buildViewClusters() Empty Cluster Found" ) ); //die anyway! exit( 666 ); } if( m_verbose ) { wxString txt( wxT( "View Cluster Image Pairs Found -> " ) ); int size = curCluster.m_imageViews.size(); for( int i = 0; i < size; i++) { txt << curCluster.m_imageViews[i]; txt << wxT(", "); } wxLogMessage( txt ); } } return numClusters; } |
[ Voor 15% gewijzigd door Woy op 04-03-2011 16:12 ]
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Dat is ook logischJaap-Jan schreef op vrijdag 04 maart 2011 @ 16:03:
En de tabel (loose comparisons) zegt daarover dat 0 == $string (waarbij string geen getal is) altijd true oplevert.
No trees were harmed in creating this message. However, a large number of electrons were terribly inconvenienced.
Verwijderd
owh sorry, daar wilde ik hem plaatsen;)Woy schreef op vrijdag 04 maart 2011 @ 16:09:
Dit past idd beter in slechtste programmeervoorbeelden aangezien er geen vraag gesteld.
Ik vind er niets logisch aan dat een string 'zomaar' wordt gedowncast naar een int, maar dat ben ik. Deze discussie hebben we al eens eerder gehad, volgens mij zelfs in dit topic/ deze topicreeks.Freeaqingme schreef op vrijdag 04 maart 2011 @ 16:12:
[...]
Dat is ook logisch
Want 0 is een int, dus convert ie $string ook naar een int, en (int) "foo" wordt 0. En laat - zelfs in php - 0 gelijk zijn aan 0.
| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett
Ik neem aan dat je sarcastisch bent..Freeaqingme schreef op vrijdag 04 maart 2011 @ 16:12:
[...]
Dat is ook logisch
Want 0 is een int, dus convert ie $string ook naar een int, en (int) "foo" wordt 0. En laat - zelfs in php - 0 gelijk zijn aan 0.
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
1
2
3
4
| <?php $a = array("A","B","C"); var_dump(in_array("0",$a)); ?> |
| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett
De reden is omdat ze niet bedacht hebben dat ze de moeite konden nemen om te kijken of de string wel converteerbaar is. Ze doen gewoon atoi(), en het resultaat daarvan vergelijken ze met de int. Ja, maar atoi() returnt idd 0 als de string niet klopt.Jaap-Jan schreef op vrijdag 04 maart 2011 @ 17:35:
De enige reden die ik kan verzinnen is omdat ints vergelijken sneller gaat dan stringvergelijkingen.
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
1
2
3
4
5
| <?php class A {} new A(new ThisIsANotExistingClass()); |
Nog niet getest, maar ik verwacht:Avalaxy schreef op vrijdag 04 maart 2011 @ 21:59:
Hij geeft geen output bij mij. Wat zou het moeten doen dan? Ik verwacht een error dat:
a) ThisIsANotExistingClass niet bestaat
b) Class A geen parameters aanneemt omdat je geen constructor met parameter hebt
1
| Fatal error: class ThisIsANotExistingClass not found in ..... |
[ Voor 15% gewijzigd door EdwinG op 04-03-2011 22:05 ]
Bezoek eens een willekeurige pagina
[ Voor 20% gewijzigd door StM op 04-03-2011 22:04 ]
Dat PHP daar niet op checkt wist ik niet. Maar variabele parameters gaat natuurlijk niet op als je meer parameters invoert dan dat er bestaan, alleen andersom (normaal gesproken dan).StM schreef op vrijdag 04 maart 2011 @ 22:02:
want PHP checkt daar niet op (je kan immers ook variabele parameters gebruiken).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| <?php class A { public function func() { echo 'A::Func'; } } class B extends A { public function func($b) { echo 'B::Func('.$b.')'; } } $a = new A(); $a->func(); echo "\n"; $b = new B(); $b->func(1); echo "\n"; |
| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett
Je kunt juist wel meer parameters opgeven dan er bestaan:Avalaxy schreef op vrijdag 04 maart 2011 @ 22:05:
[...]
Dat PHP daar niet op checkt wist ik niet. Maar variabele parameters gaat natuurlijk niet op als je meer parameters invoert dan dat er bestaan, alleen andersom (normaal gesproken dan).
Wel stom trouwens dat je in PHP zelf geen method overloading kan doen maar dat de PHP functions het zelf wel hebben
1
2
3
4
5
6
7
| function foo() { $numargs = func_num_args(); echo "Number of arguments: $numargs\n"; } foo(1, 2, 3); |
In de trunk versie van PHP is het inmiddels wel mogelijk om iets als 'bla(int $a, string $b)' te.schrijven, dus dan moeten ze dit ook kunnen gaan implementeren.Spockz schreef op zaterdag 05 maart 2011 @ 11:35:
Voor degelijke overloading heb je type-informatie nodig. En aangezien het typesysteem van PHP nou niet bepaald krachtig is is het lastig om overloading te implementeren.
Tuurlijk wel. Jaren geleden al iets over geschreven.StM schreef op vrijdag 04 maart 2011 @ 22:18:
Aah zo, ja dat kan idd niet. Dat zal wel te lastig in de engine te hacken zijn geweest.
Dat kun je nu ookal doen afaik, alleen wordt er voor primitieven niet op gechecked. Voor objecten wel al, dus als je netjes OOP werkt kom je een heel eind.hostname schreef op zaterdag 05 maart 2011 @ 13:03:
In de trunk versie van PHP is het inmiddels wel mogelijk om iets als 'bla(int $a, string $b)' te.schrijven, dus dan moeten ze dit ook kunnen gaan implementeren.
Mwah. Je hoeft niet per sé het type op te geven, je kunt natuurlijk ook gewoon een method maken met 1 param, een method met 2 params, een met 3, etc.Spockz schreef op zaterdag 05 maart 2011 @ 11:35:
Voor degelijke overloading heb je type-informatie nodig. En aangezien het typesysteem van PHP nou niet bepaald krachtig is is het lastig om overloading te implementeren.
Ja maar dat is ranzigJaap-Jan schreef op zaterdag 05 maart 2011 @ 11:48:
En met een combinatie van default arguments en in de functie zelf verschillende types ondersteunen kun je ook hetzelfde bereiken, dus er is niet echt een noodzaak voor function overloading.
Zonder dat je het type weet van de parameter in de functie header en de daadwerkelijk gegeven parameter wordt het lastig kiezen voor de compiler welke functie instance hij daadwerkelijk moet gebruiken voor die call. Dat soort dingen moeten helder zijn. Het type-hinting in PHP is een stap in de goede richting maar het typesysteem is niet genoeg verwoven met de rest van het systeem om overloading goed mogelijk te maken. Het zou nu eventueel wel kunnen voor parameters afgeleid van objecten maar dat is maar een halve oplossing en het zou eigenlijk gewoon helemaal goed moeten werken, anders kan je het gewoon niet uitbrengen.Avalaxy schreef op zaterdag 05 maart 2011 @ 13:49:
[...]
Mwah. Je hoeft niet per sé het type op te geven, je kunt natuurlijk ook gewoon een method maken met 1 param, een method met 2 params, een met 3, etc.
C'est le ton qui fait la musique. | Blog | @linkedin
R8 | 18-55 IS | 50mm 1.8 2 | 70-200 2.8 APO EX HSM | 85 1.8
Jawel hoor; voor de "simpele oplossing" (Website Payments Standard) kan je gewoon notify_url meegeven om een POST met informatie over de transactie te ontvangen. Vervolgens verifiëren door het naar https://www.paypal.com/cgi-bin/webscr?cmd=_notify-validate te sturen.mithras schreef op maandag 28 februari 2011 @ 10:56:
[...]
De PayPal "simpele" oplossing (gewoon formulier met emailadres van ontvanger) heeft geen mogelijkheid tot feedback. In ons eCommerce systeem moeten eigenaren de transacties dus altijd handmatig op betaald zetten. Bij iDeal kan het wel, maar dan via de XML callback url die je in de interface kan aangeven (iDeal basic dan). Op die manier weet je wel zeker dat een betaling voltooid is
Ik heb het niet kunnen vinden in de trunk, linkje?hostname schreef op zaterdag 05 maart 2011 @ 13:03:
[...]
In de trunk versie van PHP is het inmiddels wel mogelijk om iets als 'bla(int $a, string $b)' te.schrijven, dus dan moeten ze dit ook kunnen gaan implementeren.
[ Voor 31% gewijzigd door Manuel op 05-03-2011 16:38 ]
Hij zegt toch ook dat het nu mogelijk is in de trunk en niet in een gereleasede versie (dus een versie waar die documentatie op gebaseerd is)?Manuel schreef op zaterdag 05 maart 2011 @ 16:36:
[...]
Dat gaat hem niet worden jammer genoeg, zie ook deze quote:
[...]
Type Hinting
C'est le ton qui fait la musique. | Blog | @linkedin
R8 | 18-55 IS | 50mm 1.8 2 | 70-200 2.8 APO EX HSM | 85 1.8
[ Voor 26% gewijzigd door Manuel op 05-03-2011 16:51 ]
Door de post waarop ik reageerde ben ik ook gaan zoeken, en kwam achter deze feature inderdaadr0b schreef op zaterdag 05 maart 2011 @ 16:36:
[...]
Jawel hoor; voor de "simpele oplossing" (Website Payments Standard) kan je gewoon notify_url meegeven om een POST met informatie over de transactie te ontvangen. Vervolgens verifiëren door het naar https://www.paypal.com/cgi-bin/webscr?cmd=_notify-validate te sturen.
Eenzelfde met Express Checkout overigens; met NOTIFYURL in je SetExpressCheckout call.
/laat
Gefeliciteerd, nu heb je de dame van de kassa wegbezuinigd.mithras schreef op zaterdag 05 maart 2011 @ 17:07:
[...]
Door de post waarop ik reageerde ben ik ook gaan zoeken, en kwam achter deze feature inderdaadInstant Payment Notification heet het en daar kan je kennelijk ook automatisch betalingen mee controleren. Best wel fijn, want zo hoeft dat niet meer handmatig!
C'est le ton qui fait la musique. | Blog | @linkedin
R8 | 18-55 IS | 50mm 1.8 2 | 70-200 2.8 APO EX HSM | 85 1.8
1
| $passhash = sha1(sprintf("oliebollen met poedersuiker %s %s", $password, $salt)); |
Let op: Mijn post bevat meningen, aannames of onwaarheden
Klopt. https://www.paypal.com/ipnmithras schreef op zaterdag 05 maart 2011 @ 17:07:
[...]
Door de post waarop ik reageerde ben ik ook gaan zoeken, en kwam achter deze feature inderdaadInstant Payment Notification heet het en daar kan je kennelijk ook automatisch betalingen mee controleren. Best wel fijn, want zo hoeft dat niet meer handmatig!
[ Voor 5% gewijzigd door r0b op 05-03-2011 20:19 ]
Gamebuster schreef op zaterdag 05 maart 2011 @ 19:12:
PHP:
1 $passhash = sha1(sprintf("oliebollen met poedersuiker %s %s", $password, $salt));
gniffel
Ach, dit is nog niet eens zo heel erg, zolang de salt maar random is en per password verschilt. En per verandering van de password ook verandert.Gamebuster schreef op zaterdag 05 maart 2011 @ 19:12:
PHP:
1 $passhash = sha1(sprintf("oliebollen met poedersuiker %s %s", $password, $salt));
gniffel
C'est le ton qui fait la musique. | Blog | @linkedin
R8 | 18-55 IS | 50mm 1.8 2 | 70-200 2.8 APO EX HSM | 85 1.8
Het is niet erg, ik vond het gewoon grappigSpockz schreef op zaterdag 05 maart 2011 @ 22:01:
[...]
Ach, dit is nog niet eens zo heel erg, zolang de salt maar random is en per password verschilt. En per verandering van de password ook verandert.
Let op: Mijn post bevat meningen, aannames of onwaarheden
1
2
3
4
| // rare erros met indexes enzo weg ini_set("display_errors", 0); $query = $sql->query("SELECT `privileges` FROM role WHERE id = (SELECT role FROM privilege WHERE privilege = (SELECT privilege FROM user WHERE user = '$SESSION[user]'))"); extract($sql->fetch_assoc($query)); |
It might sound as if I have no clue what I'm doing, but I actually have a vague idea.
Verwijderd
Hier valt in sommige scenario's best wel wat voor te zeggen. Helaas meestal nietAvalaxy schreef op zaterdag 05 maart 2011 @ 23:34:
Of de complete tabel fetchen en vervolgens met PHP de output limitten tot ~max 100
Ik ben benieuwd of je een voorbeeld kan geven. Want ik kan er zo snel geen verzinnenVerwijderd schreef op zondag 06 maart 2011 @ 04:05:
[...]
Hier valt in sommige scenario's best wel wat voor te zeggen. Helaas meestal niet
Een bewerking op de data moeten uitvoeren die niet door de database gedaan kan worden, waarop vervolgens gesorteerd moet/kan worden? Niet ondenkbaar in ieder geval.alex3305 schreef op zondag 06 maart 2011 @ 23:19:
Ik ben benieuwd of je een voorbeeld kan geven. Want ik kan er zo snel geen verzinnen.
En waarbij je het ook maar eenmaal hoeft uit te lezen (of die in tijd verandert). Anders had je het die bewerking immers al bij het inserten uit kunnen voeren.Erkens schreef op zondag 06 maart 2011 @ 23:29:
Een bewerking op de data moeten uitvoeren die niet door de database gedaan kan worden, waarop vervolgens gesorteerd moet/kan worden? Niet ondenkbaar in ieder geval.
Simpelweg als je gegevens van een 3e nodig hebt om te bepalen of je het aan de gebruiker mag tonen.alex3305 schreef op zondag 06 maart 2011 @ 23:19:
[...]
Ik ben benieuwd of je een voorbeeld kan geven. Want ik kan er zo snel geen verzinnen.
Speel ook Balls Connect en Repeat
[ Voor 4% gewijzigd door ValHallASW op 09-03-2011 21:48 ]
Speel ook Balls Connect en Repeat
Zolang jij alleen maar data opslaat kan je altijd de goede (week, jaar) data genereren. Afhankelijk van het land zul je dan met DET DATEFIRST en DATEPART('week') danwel DATEPART('ISO_WEEK') moeten werken. Dan heb je het voor elk land behalve Pakistan (waar de eerste week de week van 7 januari is) goed geregeld.Onbekend schreef op woensdag 09 maart 2011 @ 21:55:
En zoals Wikipedia al aangeeft, is dat per werelddeel verschillend. Voor internationaal opererende klanten gaat dat niet altijd goed werken.....
[ Voor 8% gewijzigd door ValHallASW op 09-03-2011 22:18 ]
Best wel vervelend soms.Onbekend schreef op woensdag 09 maart 2011 @ 21:55:
En zoals Wikipedia al aangeeft, is dat per werelddeel verschillend. Voor internationaal opererende klanten gaat dat niet altijd goed werken.....
Dat ligt aan MicroSoft, Excel geeft ook lang niet altijd het juiste weeknummer terug (fout in 2009 en 2010 in ieder geval).MSSQL geeft trouwens ook niet altijd het juiste weeknummer terug, maar dat ligt misschien aan hoe dat geïnstalleerd is.
The problem with common sense is that sense never ain't common - From the notebooks of Lazarus Long
GoT voor Behoud der Nederlandschen Taal [GvBdNT
Verwijderd
Wat een onzin, hoe kom je daar nou weer bij?Freee!! schreef op woensdag 09 maart 2011 @ 22:47:
[...]
Dat ligt aan MicroSoft, Excel geeft ook lang niet altijd het juiste weeknummer terug (fout in 2009 en 2010 in ieder geval).
The WEEKNUM function considers the week containing January 1 to be the first week of the year. However, there is a European standard [oh please, wat dacht je van een internationale standaard genaamd ISO 8601, red.] that defines the first week as the one with the majority of days (four or more) falling in the new year. This means that for years in which there are three days or less in the first week of January, the WEEKNUM function returns week numbers that are incorrect according to the European standard.
[ Voor 9% gewijzigd door .oisyn op 09-03-2011 23:14 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Ervaring.Verwijderd schreef op woensdag 09 maart 2011 @ 23:01:
[...]
Wat een onzin, hoe kom je daar nou weer bij?
Ik heb alle instellingen meermaals nagelopen. En het is niet de enige fout in Excel, als je het aantal dagen sinds 1 januari 1900 berekent voor een datum, kom je één dag te hoog uit (29-02-1900 wordt geaccepteerd als datum en meegenomen in de berekeningenMicrosoft producten blinken juist uit in hun internationalisatie, als je niet het juiste nummer krijgt dan heb je het simpelweg verkeerd ingesteld staan.
The problem with common sense is that sense never ain't common - From the notebooks of Lazarus Long
GoT voor Behoud der Nederlandschen Taal [GvBdNT
Verwijderd
FileTimeToLocalFileTime uses the current settings for the time zone and daylight saving time. Therefore, if it is daylight saving time, this function will take daylight saving time into account, even if the time you are converting is in standard time
[ Voor 55% gewijzigd door .oisyn op 10-03-2011 00:56 ]
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Anders trek je het even niet door in het belachelijke, ze maken beide gewoon een valide punt.Verwijderd schreef op woensdag 09 maart 2011 @ 23:58:
Dus een paar foutjes in een paar libs en gelijk kan Microsoft nooit meer een correcte datum uitrekenen?
[ Voor 70% gewijzigd door Jaap-Jan op 10-03-2011 00:52 ]
| Last.fm | "Mr Bent liked counting. You could trust numbers, except perhaps for pi, but he was working on that in his spare time and it was bound to give in sooner or later." -Terry Pratchett
Verwijderd
Ik doelde op de "Ligt aan Microsoft" statement van Freee!!. Natuurlijk zitten er foutjes in de software, ik heb nog nooit foutloze software gezien. Maar het is echt niet zo alsof alle producten van Microsoft fouten hebben in de datum libs.Jaap-Jan schreef op donderdag 10 maart 2011 @ 00:51:
[...]
Anders trek je het even niet door in het belachelijke, ze maken beide gewoon een valide punt.
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
Verwijderd
Het is --blijkt uit je uitspraak-- wel zo dat verschillende Microsoft-producten verschillende bugs in hun afhandeling van datums hebben. Dat draagt natuurlijk bij aan een creatief en onvoorspelbaar landschap. Precies het soort probleem waar je gebruikers dolblij mee krijgt.Verwijderd schreef op donderdag 10 maart 2011 @ 00:57:
Maar het is echt niet zo alsof alle producten van Microsoft fouten hebben in de datum libs.
I don't like facts. They have a liberal bias.
Dit topic is gesloten.
Apple iPhone 17 LG OLED evo G5 Google Pixel 10 Samsung Galaxy S25 Star Wars: Outlaws Nintendo Switch 2 Apple AirPods Pro (2e generatie) Sony PlayStation 5 Pro
Tweakers is onderdeel van
DPG Media B.V.
Alle rechten voorbehouden - Auteursrecht © 1998 - 2025
•
Hosting door TrueFullstaq