Mja, alleen zijn er inmiddels al dermate veel (en goede!) statistiekenprogramma's, al dan niet gratis, dat ik me toch echt de moeite zou besparen van al die ellende zelf uit te zoekenquote:Op maandag 23 juni 2008 14:17 schreef Chandler het volgende:
Dan snap ik niet dat google ooit groot is geworden? Juist door het wiel op nieuw uit te vinden kun je het verbeteren anders reden we nog steeds op houten wielen
Kewl :)quote:Op maandag 23 juni 2008 14:50 schreef Scorpie het volgende:
@slakkie: ik ga jouw functie ook gebruiken, thx !
1 2 3 4 5 6 7 8 9 | function req_version($version) { if (version_compare(PHP_VERSION, $version, '<' ) == 1) { trigger_error(sprintf("Required version is %s, you have %s\n", $version, PHP_VERSION), E_USER_ERROR); exit(255); } } ?> |
*stpm*stom*stom* helemaal over je post heen gelezen, op zich is jou manier ook handig maar aangezien ik nogal wat bestanden met dezelfde benaming heb (voor dit project) is het handiger om per bestand het path te includen...quote:Op vrijdag 20 juni 2008 17:03 schreef slakkie het volgende:
[..]
Ik doe het zo:
[ code verwijderd ]
Ik kan nu op devolgende manieren includen:
[ code verwijderd ]
En dit kan je daarna in alle files doen die door index.php geinclude worden. Util.php kan ik nu ook include_once("Something.php") doen zonder me hoef druk te maken over het pad waar de file instaat.
Bijkomend voordeel is dat ik alle files in OPN/lib gewoon include_once("File.php") kan gebruiken zonder set_path omdat alle files die geinclude worden in de huidige dir zitten. Mocht je iets uit OTHERS of SMARTY willen hebben dan moet je wel eerst env.php includen. Of je include_once("../OTHERS/File.php");
Ikzelf vind deze werkwijze erg prettig, aangezien ik maar in 1 file hoef bij te houden welke include paden ik wil, en doordat de rest gewoon geinclude wordt hoef ik me daar niet meer druk te maken over owje.. Waar stond dat ookalweer? Gewoon include_once("File.php") en je bent klaar.
Het houd je niet tegen hoor:quote:Op maandag 23 juni 2008 16:55 schreef Chandler het volgende:
[..]
*stpm*stom*stom* helemaal over je post heen gelezen, op zich is jou manier ook handig maar aangezien ik nogal wat bestanden met dezelfde benaming heb (voor dit project) is het handiger om per bestand het path te includen...
Toch tnx, op zich erg handig bedacht!
Best simpelquote:Op maandag 23 juni 2008 20:44 schreef Mirel het volgende:
awww niemand die mij wilt helpen?
1 |
edit - in acces is dus elk bedrijf een kolomnaam, het doel is een lijst van 3 kolommen waarin alle datums gecombineerd worden met alle bedrijven en de bijbehorende unieke beurskoers.quote:Op dinsdag 24 juni 2008 09:34 schreef PietjePuk007 het volgende:
Ik wil dit graag in 1 lange lijst hebben in Acces.
Dus:
Admiral group - 30/12/06 - 455
Admiral group - 2/1/06 - 455
Admiral group - 3/1/06 - 466,75
t/m
Xstrata - 1/1/08 - 673
Oftewel, hoe krijg je een tabelvorm in databasevorm? De lijst gaat een heul stuk naar beneden en een heul stuk naar rechts dus vandaar dat zo automatisch mogelijk handig is
.
ik snapte je post ineens niet meerquote:Op dinsdag 24 juni 2008 10:03 schreef PietjePuk007 het volgende:
Ik probeer 't hier ook even aangezien 't met SQL ongetwijfeld ook kan. Heb de data inmiddels in acces zitten maar 't lukt nog niet hard
.
[..]
edit - in acces is dus elk bedrijf een kolomnaam, het doel is een lijst van 3 kolommen waarin alle datums gecombineerd worden met alle bedrijven en de bijbehorende unieke beurskoers.
Het komt er heel simpel op neer dat ik alle kolomnamen wil combineren met alle rijnamen en daar de unieke waard in de tabel wil bijhalen. Via welk prog dat gaat is niet belangrijkquote:
hoe dan? misschien dat anderen er nog van kunnen lerenquote:Op dinsdag 24 juni 2008 11:52 schreef PietjePuk007 het volgende:
Opgelost dmv VBA, door een slimme collega.
misschien dat de spaties niet gezien worden? dus ipv een spatie %20 doen?quote:Op dinsdag 24 juni 2008 15:59 schreef ursel het volgende:
Kheb er weer eentje![]()
Met de exec functie probeer ik het programma ABC Amber Excel Converter aan te sturen. Heb echter al vele manieren ondertussen geprobeerd, maar tot nog toe zonder resultaat.
Als ik de ingevoerde executable in cmd knal werkt het proces wel gewoon goed.
De volgende command moet aangestuurd worden:
"C:\Program Files\ABC Amber Excel Converter\abcexcel.exe" "C:\demo.xls" "C:\demo.pdf" 3 1
Zoals je kan zien draait het dus op windows / IIS..
Overigens draaien we nog een ander programma vanaf de exec functie. Deze werkt wel gewoon goed. Permissies op beide exe files zijn identiek en zover ik heb kunnen achterhalen is op dit niveau geen verschil.
Nope, dat is het niet.quote:Op dinsdag 24 juni 2008 16:08 schreef qu63 het volgende:
[..]
misschien dat de spaties niet gezien worden? dus ipv een spatie %20 doen?
Ik zou direct via MySQL gaan. Access slaat op hol bij te grote databases.quote:Op dinsdag 24 juni 2008 10:03 schreef PietjePuk007 het volgende:
Ik probeer 't hier ook even aangezien 't met SQL ongetwijfeld ook kan. Heb de data inmiddels in acces zitten maar 't lukt nog niet hard
.
[..]
edit - in acces is dus elk bedrijf een kolomnaam, het doel is een lijst van 3 kolommen waarin alle datums gecombineerd worden met alle bedrijven en de bijbehorende unieke beurskoers.
Gewoon Engels @hier..quote:Op dinsdag 24 juni 2008 19:33 schreef Tijn het volgende:
Is dit een EK-grap van de kerels van PHP ofzo?
De Nederlandse pagina in het Russisch
Ik krijg een Engelse pagina, zonder optie om Nederlands te kiezen.quote:Op dinsdag 24 juni 2008 19:33 schreef Tijn het volgende:
Is dit een EK-grap van de kerels van PHP ofzo?
De Nederlandse pagina in het Russisch
Ik krijg de Engelse mét taalkeuzequote:Op dinsdag 24 juni 2008 19:39 schreef Light het volgende:
[..]
Ik krijg een Engelse pagina, zonder optie om Nederlands te kiezen.
ah, zover keek ik nietquote:Op dinsdag 24 juni 2008 20:29 schreef Light het volgende:
[..]
Ja, met taalkeuze. Maar in het rijtje staat bij mij geen Nederlands. En ook geen Dutch.
Gewoon met ini_set(), soms is het makkelijker dan je denktquote:Op dinsdag 24 juni 2008 16:01 schreef Xcalibur het volgende:
Ik heb het de laatste tijd met enige regelmaat dat mensen zich ergens in moeten schrijven, en dan halverwege lekker een uur gaan zitten schijten ofzo, en daarna pas submitten. Gevolg: sessie verlopen...
Kan ik hier wat aan doen? Session lifetime verhogen is niet altijd een optie, en ook niet per definitie wenselijk. Sessies in de database zetten is een optie, maar wat omslachtig wellicht.... Is er een makkelijke, failsave, oplossing?
Hoe doe je dat dan met ini_set?quote:Op dinsdag 24 juni 2008 20:48 schreef Xcalibur het volgende:
[..]
Gewoon met ini_set(), soms is het makkelijker dan je denkt
Dan is nu de volgende vraag: wat zou een intelligente waarde zijn om hem dan op de zetten?
Thanksquote:Op dinsdag 24 juni 2008 22:37 schreef Xcalibur het volgende:
met ini_set(session.gc_maxlifetime)
Zie ook hier: http://nl.php.net/manual/en/session.configuration.php
Ja, dat probleem heb je bv met shared hosting. In Unix slaat PHP standaard z'n sessiefiles op in de /tmp directory. Maar die map is voor alle gebruikers van de server beschikbaar en anderen kunnen dan dus ook met je sessiefiles kloten.quote:Op dinsdag 24 juni 2008 22:37 schreef Xcalibur het volgende:
Overigens kunnen verschillende sites op dezelfde server elkaar qua session lifetime dwars zitten kennelijk, als ze allemaal dezelfde map gebruiken om hun session files in op te slaan... Degene met de kortste lifetime pleurt ook de sessies van de rest weg: http://www.centresource.c(...)ifetime-an-adventure
Nee hoor, ondanks dat er meerdere webservers zijn (met meerdere /tmp directories), heb je natuurlijk wel altijd beschikking over je eigen directory met je eigen files. En dus ook je eigen sessies.quote:Op woensdag 25 juni 2008 09:00 schreef Xcalibur het volgende:
Alleen het meerdere webservers / loadbalancing probleem los je daar niet mee op natuurlijk, dan zul je toch echt je session in een database moeten opslaan lijkt me?
quote:Op dinsdag 24 juni 2008 15:59 schreef ursel het volgende:
Kheb er weer eentje![]()
Met de exec functie probeer ik het programma ABC Amber Excel Converter aan te sturen. Heb echter al vele manieren ondertussen geprobeerd, maar tot nog toe zonder resultaat.
Als ik de ingevoerde executable in cmd knal werkt het proces wel gewoon goed.
De volgende command moet aangestuurd worden:
"C:\Program Files\ABC Amber Excel Converter\abcexcel.exe" "C:\demo.xls" "C:\demo.pdf" 3 1
Zoals je kan zien draait het dus op windows / IIS..
Overigens draaien we nog een ander programma vanaf de exec functie. Deze werkt wel gewoon goed. Permissies op beide exe files zijn identiek en zover ik heb kunnen achterhalen is op dit niveau geen verschil.
quote:Op dinsdag 24 juni 2008 16:22 schreef ursel het volgende:
[..]
Nope, dat is het niet.
Ook heb ik zelf al de slashes veranderd in / en ook geprobeerd met de bijbehorende escapes.
Hoe roep je het momenteel aan?quote:Op woensdag 25 juni 2008 11:29 schreef ursel het volgende:
[..]
[..]
Iemand anders een suggestie hierop??![]()
Even snel alle varianten hier op een simpelle manier weergegeven.quote:
1 2 3 4 5 6 7 8 9 | $command = '\"C:\\Progra~1\\ABC_Amber_Excel_Converter\\abcexcel.exe\" \"D:\\wwwroot\\dev\\tmp\\file.xls\" \"D:\\wwwroot\\dev\\tmp\\file.csv\" 0 1'; $command = 'C:\Progra~1\ABC_Amber_Excel_Converter\abcexcel.exe D:\wwwroot\dev\tmp\file.xls D:\wwwroot\dev\tmp\file.csv 0 1'; $command = '"C:/Progra~1/ABC_Amber_Excel_Converter/abcexcel.exe" "D:/wwwroot/dev/tmp/file.xls" "D:/wwwroot/dev/tmp/file.csv" 0 1'; $command = '\"C:\/Progra~1\/ABC_Amber_Excel_Converter\/abcexcel.exe\" \"D:\/wwwroot\/dev\/tmp\/file.xls\" \"D:\/wwwroot\/dev\/tmp\/file.csv\" 0 1'; $command = 'C:/Progra~1/ABC_Amber_Excel_Converter/abcexcel.exe D:/wwwroot/dev/tmp/file.xls D:/wwwroot/dev/tmp/file.csv 0 1'; $result = exec('"'.$command.'"'); $result = exec($command); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function _get_manager($dn) { $result = "UNKNOWN"; if ($dn ) { $res = $this->ldap->dnExists($dn); if ($res instanceof Net_LDAP2_Error) { printf("%s failed due to %s\n", __FUNCTION__, "bloody hell!"); } elseif ($res === true) { $entry = $this->ldap->getEntry($dn, array('displayName')); if ($entry instanceof Net_LDAP2_Entry) { return $entry->getValue('displayName'); } } } return "UNKNOWN"; } ?> |
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 | User 'xxx' found, details are: Array ( [username] => xxx [name] => xxx [phone] => +31 20 xxxxxx [gsm] => +31 6 xxxxxx [title] => xxxxx [info] => Armed and dangerous [url] => http://xxxxx/ [email] => xxxxx@xxxxx [manager] => xxxxxx ) # Zelfde call, op een andere server (PHP versie is hier 5.1.5) _get_manager failed due to bloody hell! User 'xxx' found, details are: Array ( [username] => xxx [name] => xxx [phone] => +31 20 xxxxxx [gsm] => +31 6 xxxxxx [title] => xxxxx [info] => Armed and dangerous [url] => http://xxxxx/ [email] => xxxxx@xxxxx [manager] => UNKNOWN ) |
Ik bedoel wanneer 1 website over meerdere webservers geloadbalanced wordt...quote:Op woensdag 25 juni 2008 10:53 schreef Tijn het volgende:
Nee hoor, ondanks dat er meerdere webservers zijn (met meerdere /tmp directories), heb je natuurlijk wel altijd beschikking over je eigen directory met je eigen files. En dus ook je eigen sessies.
Deze functie returnt altijd "UNKNOWN" ?quote:Op woensdag 25 juni 2008 17:08 schreef slacker_nl het volgende:
Joy... Een raar probleem:
[ code verwijderd ]
Nee, de eerste array is daar wel gevuldquote:Op woensdag 25 juni 2008 21:19 schreef Xcalibur het volgende:
[..]
Deze functie returnt altijd "UNKNOWN" ?
Nee, dat klopt preciesquote:Op woensdag 25 juni 2008 21:16 schreef Xcalibur het volgende:
[..]
Ik bedoel wanneer 1 website over meerdere webservers geloadbalanced wordt...
Als je dan op de site inlogt op server 1 staat je sessie daar in /tmp, als je daarna naar server 2 overgezet wordt heeft die geen sessie van jou en wordt je dus uitgelogd
Of zie ik nu iets over het hoofd?
Ik doe het ook voor alle sites die ik maak. Het kost weinig moeite en scheelt veel problemenquote:Ik heb overigens inmiddels mijn eigen session folder, dat lijkt probleemloos te werken
Nee, op regel 11 staat ook nog een return. Met de goede voorwaarden wordt die uitgevoerd en dan de return op regel 15 niet.quote:Op woensdag 25 juni 2008 21:19 schreef Xcalibur het volgende:
[..]
Deze functie returnt altijd "UNKNOWN" ?
Het kost inderdaad erg weinig moeite, ik had het een stuk lastiger verwachtquote:Op woensdag 25 juni 2008 21:24 schreef Tijn het volgende:
Ik doe het ook voor alle sites die ik maak. Het kost weinig moeite en scheelt veel problemen![]()
Je hebt gelijk, had ik overheen gekeken.quote:Op woensdag 25 juni 2008 21:33 schreef Light het volgende:
Nee, op regel 11 staat ook nog een return. Met de goede voorwaarden wordt die uitgevoerd en dan de return op regel 15 niet.
Ik sla het SID op in een cookie en gebruik dat om de sessie te starten/resumen. Een sessie gaat dan niet verloren wanneer de browser wordt afgesloten. Maar wat er gebeurt wanneer een pagina 24 minuten lang staat te idlen weet ik eigenlijk niet precies.quote:Op woensdag 25 juni 2008 21:40 schreef Xcalibur het volgende:
[..]
Wat gebruik jij als session lifetime over het algemeen? De default 24 minuten is duidelijk te kort
Dat is gewoon afhankelijk van de expiry time die je in de cookie instelt. Als je daar 31 december 2038 invult zoals google dan kunnen mensen gaan schijten tot ze een ons wegen, de sessie expire't niet.quote:Op woensdag 25 juni 2008 21:54 schreef Tijn het volgende:
[..]
Ik sla het SID op in een cookie en gebruik dat om de sessie te starten/resumen. Een sessie gaat dan niet verloren wanneer de browser wordt afgesloten. Maar wat er gebeurt wanneer een pagina 24 minuten lang staat te idlen weet ik eigenlijk niet precies.
Als je 24 minuten geen pagina opvraagt dan bestaat de sessie niet meer. Dan heb je niets meer aan je cookie.quote:Op woensdag 25 juni 2008 21:54 schreef Tijn het volgende:
[..]
Ik sla het SID op in een cookie en gebruik dat om de sessie te starten/resumen. Een sessie gaat dan niet verloren wanneer de browser wordt afgesloten. Maar wat er gebeurt wanneer een pagina 24 minuten lang staat te idlen weet ik eigenlijk niet precies.
Hmmja, nu ga ik zelf twijfelen.quote:Op woensdag 25 juni 2008 22:04 schreef Farenji het volgende:
[..]
Dat is gewoon afhankelijk van de expiry time die je in de cookie instelt. Als je daar 31 december 2038 invult zoals google dan kunnen mensen gaan schijten tot ze een ons wegen, de sessie expire't niet.
Neequote:Op woensdag 25 juni 2008 21:19 schreef Xcalibur het volgende:
[..]
Deze functie returnt altijd "UNKNOWN" ?
Echt wel, gewoon je cookie wegflikkeren.quote:Op woensdag 25 juni 2008 22:04 schreef Farenji het volgende:
[..]
Dat is gewoon afhankelijk van de expiry time die je in de cookie instelt. Als je daar 31 december 2038 invult zoals google dan kunnen mensen gaan schijten tot ze een ons wegen, de sessie expire't niet.
quote:Op donderdag 26 juni 2008 10:20 schreef saban het volgende:
Is het mogelijk om in PHP mee te geven dat de browser de pagina niet moet cachen?
Want er wijzigt constant data op de website, echter als ik de URL in tik zonder de browser te sluiten zie ik de wijzigingen niet, pas na een harde refresh (F5) zie ik de gewijzigde data, dus hij onthoud het in zijn cache.
1 2 3 4 | header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past ?> |
quote:Op donderdag 26 juni 2008 10:20 schreef saban het volgende:
Is het mogelijk om in PHP mee te geven dat de browser de pagina niet moet cachen?
1 2 3 4 | header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past ?> |
Om helemaal bitneukerig te zijn kan je zelfs stellen dat dit HTTP headers zijn, geen PHP headersquote:Op donderdag 26 juni 2008 10:36 schreef Tijn het volgende:
[..]
[ code verwijderd ]
Wat Tiemie zegt dus
Het zijn HTTP-headers. Met HTML heeft dit weinig te maken.quote:Op donderdag 26 juni 2008 10:46 schreef Scorpie het volgende:
[..]
Om helemaal bitneukerig te zijn kan je zelfs stellen dat dit HTML headers zijn, geen PHP headers
Je hebt helemaal gelijkquote:Op donderdag 26 juni 2008 10:50 schreef Tijn het volgende:
[..]
Het zijn HTTP-headers. Met HTML heeft dit weinig te maken.
Ik haalde die 2 door elkaar. Bedoelde HTTP headers te schrijven, schreef ipv daarvan HTMLquote:Op donderdag 26 juni 2008 11:39 schreef GI het volgende:
HTML naar HTTP is geen typo. Das gewoon een fout
http://pear.php.net/bugs/bug.php?id=14240quote:Op woensdag 25 juni 2008 17:08 schreef slacker_nl het volgende:
Joy... Een raar probleem:
[ code verwijderd ]
Ik maak gebruik van Net_LDAP2 (een PEAR package) en op mijn eigen machine werkt dit:
[ code verwijderd ]
Ik ga er niet vanuit dat op het moment dat je met LDAP connect dat je je sites extern host (en dus ook afhankelijk bent van je hoster om PHP te upgraden).quote:Op donderdag 26 juni 2008 13:53 schreef Tijn het volgende:
[..]
Helaas staat dat credo bij de meeste hostingproviders niet zo hoog in het vaandel
Ik bedoelde het meer in het algemeenquote:Op donderdag 26 juni 2008 14:13 schreef slacker_nl het volgende:
[..]
Ik ga er niet vanuit dat op het moment dat je met LDAP connect dat je je sites extern host (en dus ook afhankelijk bent van je hoster om PHP te upgraden).
Ik dank u mijnheer.quote:Op donderdag 26 juni 2008 10:36 schreef Tiemie het volgende:
[..]
[ code verwijderd ]
zie ook http://www.php.net/header :-)
quote:Op dinsdag 24 juni 2008 15:59 schreef ursel het volgende:
Kheb er weer eentje![]()
Met de exec functie probeer ik het programma ABC Amber Excel Converter aan te sturen. Heb echter al vele manieren ondertussen geprobeerd, maar tot nog toe zonder resultaat.
Als ik de ingevoerde executable in cmd knal werkt het proces wel gewoon goed.
De volgende command moet aangestuurd worden:
"C:\Program Files\ABC Amber Excel Converter\abcexcel.exe" "C:\demo.xls" "C:\demo.pdf" 3 1
Zoals je kan zien draait het dus op windows / IIS..
Overigens draaien we nog een ander programma vanaf de exec functie. Deze werkt wel gewoon goed. Permissies op beide exe files zijn identiek en zover ik heb kunnen achterhalen is op dit niveau geen verschil.
quote:Op woensdag 25 juni 2008 14:05 schreef ursel het volgende:
[..]
Even snel alle varianten hier op een simpelle manier weergegeven.
1 2 3 4 5 6 7 8 9 | $command = '\"C:\\Progra~1\\ABC_Amber_Excel_Converter\\abcexcel.exe\" \"D:\\wwwroot\\dev\\tmp\\file.xls\" \"D:\\wwwroot\\dev\\tmp\\file.csv\" 0 1'; $command = 'C:\Progra~1\ABC_Amber_Excel_Converter\abcexcel.exe D:\wwwroot\dev\tmp\file.xls D:\wwwroot\dev\tmp\file.csv 0 1'; $command = '"C:/Progra~1/ABC_Amber_Excel_Converter/abcexcel.exe" "D:/wwwroot/dev/tmp/file.xls" "D:/wwwroot/dev/tmp/file.csv" 0 1'; $command = '\"C:\/Progra~1\/ABC_Amber_Excel_Converter\/abcexcel.exe\" \"D:\/wwwroot\/dev\/tmp\/file.xls\" \"D:\/wwwroot\/dev\/tmp\/file.csv\" 0 1'; $command = 'C:/Progra~1/ABC_Amber_Excel_Converter/abcexcel.exe D:/wwwroot/dev/tmp/file.xls D:/wwwroot/dev/tmp/file.csv 0 1'; $result = exec('"'.$command.'"'); $result = exec($command); |
Toch nog een wanhopig kickje..quote:Waarij de combinaties (regel nummers) :
1-9
2-9
5-9
2-8
5-8
een CGI error gaven. Alle andere varianten werden wel doorlopen door PHP, maar er werd niets uitgevoerd. (Te controleren aan de hand dat er geen file.csv was.)
Om het leuker te maken, ook latitude kan negatief zijn. Heb je altijd dezelfde opmaak die je probeert te parsen?quote:Op donderdag 26 juni 2008 20:46 schreef Chandler het volgende:
Ik zit weer eens te sjitten met die stomme regexjes en heb het volgende
Country: NETHERLANDS (NL)
City: Groningen
Latitude: 53.2167
Longitude: 6.56667
Nu wil ik de volgende gegevens filteren.
Netherlands
NL
Groningen
53.2167
6.56667
Nu had ik reeds het volgende
!Country: \w+[:space:]\([A-Z]){2}\)
City: (\w+)
Latitude: \d+.\d+
Longitude: \d+.\d+/ism
maar helaas, krijg er niets uit... waar ga ik nu weer de fout in?
De longitude kan trouwens ook een min getal bevatten...
1 2 3 4 | $temp = explode(' ', 'Latitude: 53.2167'); $latitude = $temp[1]; ?> |
Voor het parsen van de hostip.info data pak ik 't veel simpeler aan.quote:Op donderdag 26 juni 2008 20:46 schreef Chandler het volgende:
[...]
Country: NETHERLANDS (NL)
City: Groningen
Latitude: 53.2167
Longitude: 6.56667
[...]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Connection: close Transfer-Encoding: chunked X-Powered-By: PHP/5.2.0 Content-Type: text/plain; charset=iso-8859-1 Expires: Sat, 28 Jun 2008 08:03:29 GMT Last-Modified: Thu, 01 Jan 1970 00:00:00 GMT Cache-Control: public, max-age=86400 Pragma: !invalid Date: Fri, 27 Jun 2008 08:03:29 GMT Server: lighttpd/1.4.8 4e Country: NETHERLANDS (NL) City: Groningen Latitude: 53.2167 Longitude: 6.56667 0 |
1 2 3 4 | City: ([^\r\n] Latitude: ([-+]?[0-9]*\.?[0-9]+) Longitude: ([-+]?[0-9]*\.?[0-9]+)/ism' |
Ik zou gewoon met split werken als ik jouw was, met is_numeric kan je zien of een getal een float is (en dus heb je geen regexp nodig voor (negatieve) getallen).quote:Op vrijdag 27 juni 2008 10:18 schreef Chandler het volgende:
Hoezo minder foutgevoelig? als je weet wat voor gegevens je zou kunnen vinden, kun je daar de regex toch op instellen? en stel de server van hostip wordt veranderd en ik krijg er een extra header bij, dan zit ik alweer met de sores
Hahahaha, die heb ik al een keertje eerder gepost in deze topicreeks.quote:
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 | $lines = explode("\n", $buf); $geopIp = array(); foreach ($lines AS $id => $content) { if (substr($content, 0, 8) == "Country:") { $str = substr($content, 9, strlen($content) - 9); $i = strpos($str, "("); if ($i > 0) { $geoIp['country'] = trim(substr($str, 0, $i)); $geoIp['country_code'] = trim(substr($str, $i+1, 2)); } else { $geoIp['country'] = trim($str); } } elseif (substr($content, 0, 5) == "City:") { $str = substr($content, 6, strlen($content) - 6); $i = strpos($str, ","); if ($i > 0) { $geoIp['city'] = trim(substr($str, 0, $i)); $geoIp['state'] = trim(substr($str, $i, strlen($str) - $i)); } else { $geoIp['city'] = trim($str); $geoIp['state'] = ""; } } elseif (substr($content, 0, 9) == "Latitude:") { $geoIp['latitude'] = trim(substr($content, 10, strlen($content) - 10)); } elseif (substr($content, 0, 10) == "Longitude:") { $geoIp['longitude'] = trim(substr($content, 11, strlen($content) - 11)); } } ?> |
1 2 3 4 5 6 7 8 9 | ( [country] => NETHERLANDS [country_code] => NL [city] => Groningen [state] => [latitude] => 53.2167 [longitude] => 6.56667 ) |
Niet in puur HTML, je kunt wel een linkje maken en met JavaScript een onClick event maken die een form submit.quote:Op vrijdag 27 juni 2008 11:10 schreef slacker_nl het volgende:
[..]
Hahahaha, die heb ik al een keertje eerder gepost in deze topicreeks.
Maar ik heb een ubern00b question.
Kan je <a href="http://server/page.php?search=something">klik hier</a> ook dmv van een POST submitten? Dit wordt standaard een GET, nu kan ik wel met mod_rewrite aan de slag, maar volgens mij moet het op een andere manier ook kunnen. Iemand een idee?
Brrrr, dat kan veel mooier Chandler! Ga eens met eigen gemaakte functies werkenquote:Op vrijdag 27 juni 2008 11:13 schreef Chandler het volgende:
Je hebt gelijk slacker_nl maar al zou je een regex per 'onderdeel' doen, dan leek het mij toch sneller, alle kleine beetjes helpen.
Ik heb het trouwens nu zo opgelost
[ code verwijderd ]
uitvoer
[ code verwijderd ]
is cURL geen optie voor je? daarmee kun je namelijk zelf instellen of je wél of géén headers wilt én je kan een timeout opgeven.quote:Op vrijdag 27 juni 2008 09:49 schreef Chandler het volgende:
Het probleem is dat ik het nu uit ga lezen met fsockopen aangezien ik daar gebruik kan maken van een timeout tijd en met file, get_file_content niet...En fsockopen geeft veel meer info terug dan ik eingelijk wil
[ code verwijderd ]
nu wil ik graag via een regexje de inhoud filteren. en aangezien de headers altijd kunnen veranderen leek een regexje mij de perfecte oplossing.
Heb het volgende ook geprobeerd maar wederom zonder succes
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function doRequest($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, false); // geen header curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 10); $contents = curl_exec($ch); curl_close($ch); return $contents; } var_dump(doRequest('http://api.hostip.info/get_html.php?ip=12.215.42.19&position=true')); // adres bestaat var_dump(doRequest('http://bla')); // geeft false terug <img class="rde_img_smiley" src="http://i.fok.nl/s/smile.gif" width="15" height="15" alt="" /> ?> |
Javascript heb ik nog geen kaas van gegeten, heb je ergens een stukje code liggen waarmee ik kan spelen?quote:Op vrijdag 27 juni 2008 11:15 schreef Dzy het volgende:
[..]
Niet in puur HTML, je kunt wel een linkje maken en met JavaScript een onClick event maken die een form submit.
quote:Op vrijdag 27 juni 2008 11:13 schreef Chandler het volgende:
Je hebt gelijk slacker_nl maar al zou je een regex per 'onderdeel' doen, dan leek het mij toch sneller, alle kleine beetjes helpen.
Ik heb het trouwens nu zo opgelost
[ code verwijderd ]
uitvoer
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $stuff = array("Country: NETHERLANDS (NL)", "City: Groningen", "Latitude: 53.2167", "Longitude: 6.56667"); $result = array(); foreach($stuff as $v) { $arr = split(': ', $v); $k = strtolower(array_shift($arr)); $result[$k] = join(": ", $arr); } if (array_key_exists("country", $result)) { list($result['country'], $result['tla']) = split("\(", $result['country']); $result['country'] = trim($result['country']); $result['tla'] = str_replace(")", "", $result['tla']); } /* Voeg nog is_numeric checks toe voor langitude en longitude */ print_r($result); ?> |
Ik wil die ?search=something niet in m'n adresbalk (het is een cosmetisch ding, verder niet). En mensen die geen javascript hebben aanstaan, die moeten het gewoon aanzetten.quote:Op vrijdag 27 juni 2008 11:24 schreef Tijn het volgende:
Nadeel van zo'n truc is natuurlijk wel dat clients die geen javascript ondersteunen of dat bewust uit hebben staan je website niet meer kunnen gebruiken.
Wat is überhaupt je probleem met GET?
Dan zou je ook eerst de GET-variabelen kunnen processen en daarna de user doorsturen naar een pagina met een cleanere URL.quote:Op vrijdag 27 juni 2008 11:32 schreef slacker_nl het volgende:
[..]
Ik wil die ?search=something niet in m'n adresbalk (het is een cosmetisch ding, verder niet).
Wat als dat niet kan, omdat ze bijvoorbeeld gebruik maken van een text-mode browser via een shell, een mobiele browser die Javascript niet ondersteunt of een Screenreader?quote:En mensen die geen javascript hebben aanstaan, die moeten het gewoon aanzetten.
Mmm, text browsing kan op die site, dus dat mag inderdaad niet breken.. Al kan Elinks wel Javascript aan...quote:Op vrijdag 27 juni 2008 11:39 schreef Tijn het volgende:
[..]
Dan zou je ook eerst de GET-variabelen kunnen processen en daarna de user doorsturen naar een pagina met een cleanere URL.
[..]
Wat als dat niet kan, omdat ze bijvoorbeeld gebruik maken van een text-mode browser via een shell, een mobiele browser die Javascript niet ondersteunt of een Screenreader?
Niks mis met Javascript om dingen te verfraaien hoor. Maar het is altijd jammer als de basisfunctionaliteit van een site verloren gaat als het niet wordt ondersteund.quote:Op vrijdag 27 juni 2008 11:46 schreef slacker_nl het volgende:
[..]
Mmm, text browsing kan op die site, dus dat mag inderdaad niet breken..
Ik zat te hopen dat ik niet teveel hoef aan te passen aangezien mijn HTML kennis echt niet top is. Ik kan een default pagina bouwen, maar zodra er wat meer moet kunnen dan default houdt het echt op.quote:Op vrijdag 27 juni 2008 11:48 schreef GI het volgende:
Herbouw dan gewoon een beetje waardoor je http://site/search/query kan doen. Ziet er gelikt zat uit
Kan idd veel mooier, maar dit is toch goed genoeg? lijkt mijquote:Op vrijdag 27 juni 2008 11:16 schreef Scorpie het volgende:
Brrrr, dat kan veel mooier Chandler! Ga eens met eigen gemaakte functies werken
Ik ben idd nog niet echt heel veel mer cURL bezig geweest maar idd was een handige optie. Maar nu heb ik het reeds met fsockopen, is het een groot voordeel als ik cURL gebruik?quote:Op vrijdag 27 juni 2008 11:16 schreef Tiemie het volgende:
is cURL geen optie voor je? daarmee kun je namelijk zelf instellen of je wél of géén headers wilt én je kan een timeout opgeven.
[ code verwijderd ]
Ziet er ook heel netjes uit maar is dat van mij dan zo langdradig ofzo?quote:Op vrijdag 27 juni 2008 11:30 schreef slacker_nl het volgende:
[ code verwijderd ]
Denk dat met curl je code schoner wordt. Ikzelf zou voor curl kiezen ipv zelf een socket openen en de data fetchen. Al is het een leuke 'for science approach' om het zelf met fsockopen te doen. Maar ik zou het in een productieomgeving niet doen, tenzij er een echt goede reden is om het wel te doen. Je wilt niet te low-level bezig zijn, dus de curl abstractielaag erboven is gewoon prettiger werken.quote:Op vrijdag 27 juni 2008 13:05 schreef Chandler het volgende:
Ik ben idd nog niet echt heel veel mer cURL bezig geweest maar idd was een handige optie. Maar nu heb ik het reeds met fsockopen, is het een groot voordeel als ik cURL gebruik?
Ziet er ook heel netjes uit maar is dat van mij dan zo langdradig ofzo?
Een groot voordeel? Essentieel!quote:Op vrijdag 27 juni 2008 13:05 schreef Chandler het volgende:
Ik ben idd nog niet echt heel veel mer cURL bezig geweest maar idd was een handige optie. Maar nu heb ik het reeds met fsockopen, is het een groot voordeel als ik cURL gebruik?
Ik ben eruit dat dat gedeelte van de site mag breken indien ik JS ga gebruiken om die ?search=stuff uit de adresbalk te krijgen.quote:Op vrijdag 27 juni 2008 11:47 schreef Tijn het volgende:
[..]
Niks mis met Javascript om dingen te verfraaien hoor. Maar het is altijd jammer als de basisfunctionaliteit van een site verloren gaat als het niet wordt ondersteund.
Lees de documentatie van curl. Je wilde ook het voordeel van PDO niet inzien...quote:Op vrijdag 27 juni 2008 17:28 schreef Chandler het volgende:
Maar wat is het voordeel nou precies?als het er alleen schoner van wordt vind ik het niet reden genoeg
Niet echt. Maar je hoeft ook niet aan elke mysql query "handmatig" die errorhandling functie toe te voegen.quote:Op zondag 29 juni 2008 10:36 schreef Chandler het volgende:
Verder een andere vraag; is er een manier om de fouten die mysql genereerd op te vangen met een errorhandler zonder aan iedere mysql_query een or doeiets() funcie vast te plakken?
Als je OO werkt, hoef je het maar op 1 plek af te vangenquote:Op zondag 29 juni 2008 11:11 schreef Chandler het volgende:
Correct, maar mijn DB class was nogal aan de zuigende kant en heb ik uit het huidige project gesloopt... Maar er moet toch een manier zijn om ook die fouten af te vangen?
1 2 | UPDATE tbl SET x='q' WHERE z=3 |
1 2 3 | SET x = CASE z WHEN 0 THEN 'y' ELSE 'q' END WHERE z = IN (0, 3) |
1 2 3 4 5 6 7 8 9 10 11 | for ($i = date("Y"); $i > 1989; $i--) { if ($i = date("Y")) { echo "<li><h3>" . $i . " - " . ($i+1) . "</h3></li>\n"; } elseif ($i = date("Y")+1) { echo "<li><h4>" . $i . " - " . ($i+1) . "</h4></li>\n"; } else { echo "<li>" . $i . " - " . ($i+1) . "</li>\n"; } } ?> |
Oef... Denk dat ik te lang aan het coderen ben.. Thanks!quote:Op zondag 29 juni 2008 20:24 schreef Tijn het volgende:
== ipv = ?
Als je te lang aan het coderen bent maak je juist niet zulke foutenquote:Op zondag 29 juni 2008 20:27 schreef Qunix het volgende:
[..]
Oef... Denk dat ik te lang aan het coderen ben.. Thanks!
libcurl kan ssh, ftp, sftp, http, https, etc etc aan, daar waar je dit niet voor elkaar krijgt met fsockopen, zoals eerder gezegd.quote:Op zondag 29 juni 2008 10:36 schreef Chandler het volgende:
Ik heb de documentatie doorgelezen maar er staat echt nergens wat nu het voordeel is ten opzichte van fsockopen, maar goed... cURL is idd ook niet al te moeilijk
quote:http://curl.haxx.se/
curl is a command line tool for transferring files with URL syntax, supporting FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS and FILE. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, kerberos...), file transfer resume, proxy tunneling and a busload of other useful tricks.
Het voordeel: Jij hoeft niet alles zelf te implementeren, je maakt gebruik van curl en je kan zo HTTPS/HTTP gaan praten zonder al teveel code aan te passen. Wat is het voordeel van curl tov fsockopen? Waarom zou je zelf iets bedenken als libcurl bijna standaard wordt meegeleverd (op Unix), en het werkt ook op Windows machines..quote:http://devzone.zend.com/a(...)and-libcurl-with-PHP
cURL and libcurl are libaries that allow a webserver to transfer files with a remote computer using a variety of Internet protocols. The libaries are highly configurable, allowing practically any type of client-server request to be peformed. By using these tools, a webserver can act as a client, creating and responding to requests using any technology built on HTTP, like XML-RPC, SOAP, or WebDAV.
1 2 3 4 5 6 7 8 9 10 11 12 13 | $bezetQuery = "SELECT `computernr`, `student`, `starttijd` FROM `computers` WHERE `computernr` = '$rij[0]'"; $bezetSql = mysql_query($bezetQuery); $studentnr = mysql_result($bezetSql, 0, student); $starttijd = mysql_result($bezetSql, 0, starttijd); $stuinfoQuery = "SELECT `studentnr`, `voornaam`, `achternaam` FROM `studenten` WHERE `studentnr` = '$studentnr'"; $stuinfoSql = mysql_query($stuinfoQuery); $studentvnaam = mysql_result($stuinfoSql, 0, voornaam); $studentanaam = mysql_result($stuinfoSql, 0, achternaam); ?> |
Zo, weer even wat tijd hiervoor gevonden om eraan te knutselen..quote:Op donderdag 26 juni 2008 17:32 schreef Tijn het volgende:
En als je een batch-file maakt die het commando aanroept wat je nodig hebt? Werkt het dan wel als je die batchfile uitvoert?
delete from quiz_vragen where qid not IN (Select quiz.id From quiz)quote:Op dinsdag 1 juli 2008 08:48 schreef GI het volgende:
Snelle gok : "delete from quiz_vragen where .id not IN (Select quiz.id From quiz)" en natuurlijk een uitkomsten variant
Het maken van een kopie van een tabel is niet zo heel veel werk. En het terugzetten ook niet. Overigens verwacht ik geen problemen, maar better safe than sorry.quote:Op dinsdag 1 juli 2008 09:33 schreef schwa78 het volgende:
Ja, maar met een live database met > 300.000 quizvragen is ook het terugzetten van een backup geen leuke bezigheid.
Als je aan de verkeerde kant van je toetsenbord zit dan klopt het weer wel. Maar dan snap ik weer niet hoe je de rest wel goed kreegquote:Op dinsdag 1 juli 2008 08:58 schreef GI het volgende:
Ik kan niet zeggen dat het een typo is he ? Aangezien de q en de . best wel een beetje ver van elkaar af zitten op het toestenbord.
Testen op een live environment..quote:Op dinsdag 1 juli 2008 09:33 schreef schwa78 het volgende:
Ja, maar met een live database met > 300.000 quizvragen is ook het terugzetten van een backup geen leuke bezigheid.
Ja, dat is eigenlijk best wel slecht van me.quote:
regelmatig.quote:Op dinsdag 1 juli 2008 13:17 schreef Light het volgende:
[..]
Ach, dat heeft iedereen toch wel eens gedaan?
Gooi daar eens wat context bij, want op deze manier is het gewoon een lose kreet in de ruimte.quote:Op dinsdag 1 juli 2008 13:59 schreef Geqxon het volgende:
Waarom de moeite doen een testomgeving te gebruiken als de klant gierig is?
En van geleerd..quote:Op dinsdag 1 juli 2008 13:17 schreef Light het volgende:
[..]
Ach, dat heeft iedereen toch wel eens gedaan?
Doe het nog wel eens. Live bugs fixen op een drukbezochte site.quote:Op dinsdag 1 juli 2008 13:17 schreef Light het volgende:
[..]
Ach, dat heeft iedereen toch wel eens gedaan?
quote:ALTER TABLE `AlfaRomeo`
ADD `f_aantal` INT( 1 ) NOT NULL ,
ADD `f_1` VARCHAR( 12 ) NOT NULL ,
ADD `f_2` VARCHAR( 12 ) NOT NULL ,
ADD `f_3` VARCHAR( 12 ) NOT NULL ;
Een test omgeving opzetten en onderhouden kost nou eenmaal geld. Bij mijn bedrijf wordt dat naar de klant doorberekend. Dan maar geen test omgeving.quote:Op dinsdag 1 juli 2008 14:05 schreef GI het volgende:
[..]
Gooi daar eens wat context bij, want op deze manier is het gewoon een lose kreet in de ruimte.
Heb je voor ieder merk een eigen tabel?quote:Op dinsdag 1 juli 2008 15:44 schreef saban het volgende:
Ik heb een database (autos) met ongeveer 50 tabellen erin (merken).
Echter moet ik in ieder tabel een paar cellen toevoegen, is dit mogelijk om in 1x de rijen toe te voegen in alle tabellen?
Dit is de code voor AlfraRomeo, echter wil ik niet 1 voor 1 voor ieder merk de tabel naam wijzigen.
[..]
Je hebt gelijk idd, ik zal het eens proberen om te bouwen!quote:Op maandag 30 juni 2008 13:38 schreef slacker_nl het volgende:
libcurl kan ssh, ftp, sftp, http, https, etc etc aan, daar waar je dit niet voor elkaar krijgt met fsockopen, zoals eerder gezegd.
[..]
Het voordeel: Jij hoeft niet alles zelf te implementeren, je maakt gebruik van curl en je kan zo HTTPS/HTTP gaan praten zonder al teveel code aan te passen. Wat is het voordeel van curl tov fsockopen? Waarom zou je zelf iets bedenken als libcurl bijna standaard wordt meegeleverd (op Unix), en het werkt ook op Windows machines..
De curl documentatie is duidelijk, ik wil de documentatie van jouw eigen functie wel eens zien. Anders gezegd, als je libcurl gebruikt kunnen andere mensen de documentatie van curl erbij pakken en het geheel uitbreiden. Dat kan ook met je eigen functies, maar dat kost toch meer tijd en er is minder documentatie van, plus het is niet een standaard oplossing.
De voordelen van curl:
* Standaard library
* Documentatie
* Code is makkelijker over te dragen / te begrijpen door anderen.
Ik weet niet wat jullie onder een testomgeving verstaan, maar effe een site en een database op een andere locatie uploaden hoeft toch geen kwartier te duren?quote:Op dinsdag 1 juli 2008 16:09 schreef Geqxon het volgende:
Een test omgeving opzetten en onderhouden kost nou eenmaal geld. Bij mijn bedrijf wordt dat naar de klant doorberekend. Dan maar geen test omgeving.![]()
Ik vraag me ook af hoe je in godsnaam kan ontwikkelen zonder een aparte ontwikkel/testomgeving. Een bug live fixen, okay, maar development doen op een liveomgeving is absoluut not done.quote:Op dinsdag 1 juli 2008 18:49 schreef Xcalibur het volgende:
[..]
Ik weet niet wat jullie onder een testomgeving verstaan, maar effe een site en een database op een andere locatie uploaden hoeft toch geen kwartier te duren?
Je kunt best live development doen op het moment dat het product toch nog niet gebruikt wordt. Zo heb ik pas een site "live" gemaakt, aangezien er toch nog geen bezoekers kwamen. En nu, in de beginfase, met 10 bezoekers per dag kan ik ook nog best live dingen fixen. Zodra het echt druk wordt kan dat niet meer natuurlijk, maar tot die tijd is er geen probleem.quote:Op dinsdag 1 juli 2008 19:36 schreef Farenji het volgende:
[..]
Ik vraag me ook af hoe je in godsnaam kan ontwikkelen zonder een aparte ontwikkel/testomgeving. Een bug live fixen, okay, maar development doen op een liveomgeving is absoluut not done.
http://www.google.nl/search?q=database+normalizationquote:Op dinsdag 1 juli 2008 15:44 schreef saban het volgende:
Ik heb een database (autos) met ongeveer 50 tabellen erin (merken).
Echter moet ik in ieder tabel een paar cellen toevoegen, is dit mogelijk om in 1x de rijen toe te voegen in alle tabellen?
Dit is de code voor AlfraRomeo, echter wil ik niet 1 voor 1 voor ieder merk de tabel naam wijzigen.
[..]
Mja, maar dat lijkt me een uitzondering?quote:Op dinsdag 1 juli 2008 19:39 schreef HuHu het volgende:
Je kunt best live development doen op het moment dat het product toch nog niet gebruikt wordt. Zo heb ik pas een site "live" gemaakt, aangezien er toch nog geen bezoekers kwamen. En nu, in de beginfase, met 10 bezoekers per dag kan ik ook nog best live dingen fixen. Zodra het echt druk wordt kan dat niet meer natuurlijk, maar tot die tijd is er geen probleem.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |