FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies #104 Waar veiligheid > alles
#ANONIEMwoensdag 3 oktober 2012 @ 13:17
php.jpg


Als je vragen hebt over PHP/MySQL, dan zit je hier goed met een vaste kliek guru's en een groot aantal regelmatige bezoekers. Beperk je vragen niet tot "hij doet het niet" of "hij geeft een fout" - onze glazen bol is kapot en we willen graag van je weten wát er niet lukt en wélke foutmelding je precies krijgt :)

Zie ook:
PHP Dataverwerking
Officiële PHP website
PHP Documentatie
MySQL Reference Manual
Yet Another PHP Faq
PHP Cheat Sheet
PHP5 Power Programming - boek met uitleg over OOP, Pear, XML, etc

Tutorials:
W3Schools PHP
W3Schools SQL
#ANONIEMwoensdag 3 oktober 2012 @ 13:18
quote:
7s.gif Op woensdag 3 oktober 2012 13:12 schreef Boze_Appel het volgende:

[..]

Een hoop werkgevers hebben geen idee. Het doet het aan de voorkant, dus zal de achterkant ook wel ok zijn.

Vandaag nog wat werk van een ander beoordeeld en die heeft in drie maanden wat losse classes en functie's gemaakt zonder enig MVC-werk, OO of maar iets wat er op lijkt, daarbij nog allerlei deprecated dingen als shorttags door elkaar gebruiken en weet ik veel allemaal nog meer. Volledig kansloos in ieder geval.

Daar kom je nooit mee weg in een IT-omgeving, maar er zijn genoeg bedrijven die een PHP'er los inhuren, zonder ooit de kennis van die persoon te testen.
Hmm, ik ken dat soort bedrijven inderdaad, functionaliteit voor veiligheid :')
Dat zijn het soort bedrijven wat je in het nieuws ziet als er weer ergens iets is gehackt doordat je makkelijke SQL inject kan doen :')
Tijnwoensdag 3 oktober 2012 @ 13:25
quote:
7s.gif Op woensdag 3 oktober 2012 12:57 schreef Scorpie het volgende:

[..]

Niet echt relevant voor een werkgever natuurlijk.
Nee, uiteraard. Maar wel relevant voor Swets :P
Boze_Appelwoensdag 3 oktober 2012 @ 13:26
Nouja, niet alleen kleine bedrijven natuurlijk en voor de meeste hackers is zo'n kleine hoeveelheid aan data wat je kan vinden bij die kleintjes het niet waard.

Maar mijn punt was dat slechte programmeurs vaak niet getest worden op hun capaciteiten. Alleen bij omgevingen waar andere programmeurs zitten vallen ze door de mand en daar misschien nog niet eens omdat de rest ook bagger is.
mstxwoensdag 3 oktober 2012 @ 13:28
Ja beveiliging wordt helaas vaak onderschat, ook in het bedrijf waar ik werk. Het meest gehoorde argument om iets niet beter te beveiligen is wel "hoe groot is nou de kans dat dat gebeurt?". Ik maak me er ondertussen niet zo druk meer om, ik zorg wel gewoon dat mijn applicaties zo veilig mogelijk zijn, en om mijn collega's er constant op te wijzen zou ik er een dagtaak bij hebben.

Ik was ooit eens met een project begonnen met een logingedeelte enzo. Mooi alle wachtwoorden met sha256, salts etc opgeslagen. Later moest een (ex-)collega er mee verder... heeft ie alles eruit geflikkerd en omgezet naar plain MD5. :{ Die andere meuk vond hij maar te omslachtig. Baas: "ja laat maar zo, anders kost het weer zoveel werk om het terug te zetten". :')
Swetseneggerwoensdag 3 oktober 2012 @ 13:29
quote:
0s.gif Op woensdag 3 oktober 2012 13:14 schreef totalvamp het volgende:

[..]

Hmm, ik ken dat soort bedrijven inderdaad, functionaliteit voor veiligheid :')
Dat zijn het soort bedrijven wat je in het nieuws ziet als er weer ergens iets is gehackt doordat je makkelijke SQL inject kan doen :')
Aan de andere kant...

Als het applicatie is die door 1 persoon wordt onderhouden. Die WEL verstand heeft van SQL injection, zich netjes aan de regeltjes houdt maar alleen alles lineair script ipv OOP... wat is dan het probleem.
Swetseneggerwoensdag 3 oktober 2012 @ 13:30
quote:
14s.gif Op woensdag 3 oktober 2012 13:25 schreef Tijn het volgende:

[..]

Nee, uiteraard. Maar wel relevant voor Swets :P
Nou ja dat. Kijk ik had niet verwacht de wereld te verdienen, maar als ik nu parttime mijn 'echte' werk kan doen (daar is wellicht een mogelijkheid) en ik kan dan de overige uren tegen het equivalent van 3K per maand aanvullen....

Maar goed, terug naar de tekentafel.
Scorpiewoensdag 3 oktober 2012 @ 13:31
quote:
0s.gif Op woensdag 3 oktober 2012 13:29 schreef Swetsenegger het volgende:

[..]

Aan de andere kant...

Als het applicatie is die door 1 persoon wordt onderhouden. Die WEL verstand heeft van SQL injection, zich netjes aan de regeltjes houdt maar alleen alles lineair script ipv OOP... wat is dan het probleem.
Dat is een persoonlijk iets denk ik. Soms kan quick en dirty werken, soms bijt het je in de kont.
#ANONIEMwoensdag 3 oktober 2012 @ 13:31
quote:
0s.gif Op woensdag 3 oktober 2012 13:28 schreef mstx het volgende:
Ja beveiliging wordt helaas vaak onderschat, ook in het bedrijf waar ik werk. Het meest gehoorde argument om iets niet beter te beveiligen is wel "hoe groot is nou de kans dat dat gebeurt?". Ik maak me er ondertussen niet zo druk meer om, ik zorg wel gewoon dat mijn applicaties zo veilig mogelijk zijn, en om mijn collega's er constant op te wijzen zou ik er een dagtaak bij hebben.

Ik was ooit eens met een project begonnen met een logingedeelte enzo. Mooi alle wachtwoorden met sha256, salts etc opgeslagen. Later moest een (ex-)collega er mee verder... heeft ie alles eruit geflikkerd en omgezet naar plain MD5. :{ Die andere meuk vond hij maar te omslachtig. Baas: "ja laat maar zo, anders kost het weer zoveel werk om het terug te zetten". :')
OMG :')
Ik kwam als eerste baantje ergens terecht waar wachtwoorden(na inloggen) gewoon in hidden form velden stond :') Je hoefde alleen de broncode te bekijken om te zien wat het wachtwoord was.

Het eerste wat ik altijd doe bij een nieuwe werkgever is kijken naar de veiligheid van het systeem

quote:
7s.gif Op woensdag 3 oktober 2012 13:31 schreef Scorpie het volgende:

[..]

Dat is een persoonlijk iets denk ik. Soms kan quick en dirty werken, soms bijt het je in de kont.
Inderdaad soms is lineair beter(of een optie), maar dan moet je zeker weten dat je dalijk niet met een bestand van 1000 regels zit opgescheept.

[ Bericht 15% gewijzigd door #ANONIEM op 03-10-2012 13:32:48 ]
mstxwoensdag 3 oktober 2012 @ 13:32
quote:
7s.gif Op woensdag 3 oktober 2012 13:31 schreef Scorpie het volgende:

[..]

Dat is een persoonlijk iets denk ik. Soms kan quick en dirty werken, soms bijt het je in de kont.
Ligt er ook aan of het een simpele site is voor de bakker op de hoek of een applicatie die nog jaren wordt doorontwikkeld.
Scorpiewoensdag 3 oktober 2012 @ 13:34
quote:
7s.gif Op woensdag 3 oktober 2012 13:32 schreef mstx het volgende:

[..]

Ligt er ook aan of het een simpele site is voor de bakker op de hoek of een applicatie die nog jaren wordt doorontwikkeld.
In mijn werkomgeving doe ik eigenlijk niks inline, in hobby projecten ga ik nog wel eens los daarop.
Swetseneggerwoensdag 3 oktober 2012 @ 13:36
quote:
7s.gif Op woensdag 3 oktober 2012 13:31 schreef Scorpie het volgende:

[..]

Dat is een persoonlijk iets denk ik. Soms kan quick en dirty werken, soms bijt het je in de kont.
Lineair is toch niet per definitie "dirty"?
Scorpiewoensdag 3 oktober 2012 @ 13:37
quote:
5s.gif Op woensdag 3 oktober 2012 13:36 schreef Swetsenegger het volgende:

[..]

Lineair is toch niet per definitie "dirty"?
Daarom is het nogal persoonlijk. Ikzelf vind het dirty, anderen vinden het niet dirty.
mstxwoensdag 3 oktober 2012 @ 13:41
quote:
7s.gif Op woensdag 3 oktober 2012 13:34 schreef Scorpie het volgende:

[..]

In mijn werkomgeving doe ik eigenlijk niks inline, in hobby projecten ga ik nog wel eens los daarop.
Simpele importscriptjes enzo doe ik nog wel eens inline, lekker snel en simpel en elke stagiair kan het lezen.
Ik had ooit een collega (daar gaan we weer) die het presteerde om zulke scripts zo ingewikkeld mogelijk te maken met 100 verschillende (sub)classes enzo.
Voorbeeld: xml bestanden importeren in een database (best simpel). Zijn script had iets van 5 classes. Eerst werd het bestand gekopieerd, dan omgezet naar een CSV via een XSLT template, daarna met LOAD FILE ingeladen in een aparte tabel, waar een trigger weer bepaalde dingen berekende, en daarna werd de hele handel weer naar andere tabellen gekopieerd. Ik was helaas de enige die het script een beetje kon lezen en dus alle bugs moest fixen als hij er niet was. ;(
Tijnwoensdag 3 oktober 2012 @ 14:17
quote:
7s.gif Op woensdag 3 oktober 2012 13:37 schreef Scorpie het volgende:

[..]

Daarom is het nogal persoonlijk. Ikzelf vind het dirty, anderen vinden het niet dirty.
Ik zat vanochtend nog bij een klant voor een nieuw project die me expliciet vroeg om het niet "te object-georiënteerd" op te zetten :+

Maar goed, dat komt waarschijnlijk omdat 'ie het zelf ook niet zo goed begrijpt denk ik. Ik zie eigenlijk geen reden om niet gewoon met controllers en models te werken.
Sitethiefwoensdag 3 oktober 2012 @ 14:28
quote:
10s.gif Op woensdag 3 oktober 2012 14:17 schreef Tijn het volgende:

[..]

Ik zat vanochtend nog bij een klant voor een nieuw project die me expliciet vroeg om het niet "te object-georiënteerd" op te zetten :+

Maar goed, dat komt waarschijnlijk omdat 'ie het zelf ook niet zo goed begrijpt denk ik. Ik zie eigenlijk geen reden om niet gewoon met controllers en models te werken.
Wat bedoel je precies met controllers en models? Models als in classes die inzichzelf een model van de db hebben?
Farenjiwoensdag 3 oktober 2012 @ 14:44
quote:
0s.gif Op woensdag 3 oktober 2012 13:29 schreef Swetsenegger het volgende:

[..]

Aan de andere kant...

Als het applicatie is die door 1 persoon wordt onderhouden. Die WEL verstand heeft van SQL injection, zich netjes aan de regeltjes houdt maar alleen alles lineair script ipv OOP... wat is dan het probleem.
Er is niks mis met lineair, voor kleinere projecten. Voor grotere projecten gaat het je al snel hoofdbrekens kosten. OOP is geen heilige graal, het is een methode om structuur in je applicatie aan te brengen en te zorgen dat alles modulair, flexibel, onderhoudbaar en uitbreidbaar is. Zonder OOP moet je al die zaken zelf in de gaten houden; als je dat goed kan, nou dan ben je vast ook slim genoeg voor OOP.

Maar goed, imho nog belangrijker dan OOP is een duidelijke scheiding tussen content, logica en presentatie. Zorg dat je front end templates makkelijk te bewerken zijn door een niet technische designer; zorg dat je businesslogica niet vermengd wordt met presentatie, etc. Ook met lineaire code kun je dat voor elkaar krijgen. OOP maakt het wel makkelijker.
Farenjiwoensdag 3 oktober 2012 @ 14:45
quote:
0s.gif Op woensdag 3 oktober 2012 14:28 schreef Sitethief het volgende:

[..]

Wat bedoel je precies met controllers en models? Models als in classes die inzichzelf een model van de db hebben?
Model, View, Controller, oftwel MVC. Google maar.
Tijnwoensdag 3 oktober 2012 @ 14:49
quote:
0s.gif Op woensdag 3 oktober 2012 14:28 schreef Sitethief het volgende:

[..]

Wat bedoel je precies met controllers en models? Models als in classes die inzichzelf een model van de db hebben?
Gewoon, logische models van de objecten die in de applicatie bestaan en controllers om de juiste data te verwerken of naar een view te sturen.
#ANONIEMwoensdag 3 oktober 2012 @ 14:57
Je hebt ook een verschil in mening over models.

Veel mensen zweren bij PDO en daarvoor een eigen extensie schrijven en daarbij in models methods zetten gerelateerd aan de tabel die erbij hoort.

Andere mensen gaan voor ORM, waarbij de tabel in het model wordt gedefinieerd. Dit betekend ook alle relaties naar andere tabellen toe etc. Dit zorgt voor een bepaald soort automatisme van het systeem en minder queries schrijven (in theorie, in de praktijk zul je alsnog vaak querie achtige dingen doen)
Scorpiewoensdag 3 oktober 2012 @ 14:59
quote:
0s.gif Op woensdag 3 oktober 2012 14:28 schreef Sitethief het volgende:

[..]

Wat bedoel je precies met controllers en models? Models als in classes die inzichzelf een model van de db hebben?
Gewoonweg het MVC principe.
Sitethiefwoensdag 3 oktober 2012 @ 16:14
Ik ken MVC wel, alleen mijn gare hersens zagen even niet dat die models en controllers die van MVC waren :X.

Ik werk zelf hier op werk bijna alleen maar met MVC *O* . En als je het eenmaal snapt is het echt heel fijn. Voor een autist als ik ook lekker gestructureerd.
quote:
0s.gif Op woensdag 3 oktober 2012 14:57 schreef totalvamp het volgende:
Je hebt ook een verschil in mening over models.

Veel mensen zweren bij PDO en daarvoor een eigen extensie schrijven en daarbij in models methods zetten gerelateerd aan de tabel die erbij hoort.

Andere mensen gaan voor ORM, waarbij de tabel in het model wordt gedefinieerd. Dit betekend ook alle relaties naar andere tabellen toe etc. Dit zorgt voor een bepaald soort automatisme van het systeem en minder queries schrijven (in theorie, in de praktijk zul je alsnog vaak querie achtige dingen doen)
Mjah, nu ik op werk veel met CouchDB werk ben ik het weer een beetje verleerd :X. Terwijl ik zelf e.a. aan classes heb geschreven voor PDO/Innodb.

Maar eigenlijk kom ik nog maar net kijken in de wereld van PHP, ik werk hier nu bijna 3 jaar, heb bijna alle PHP kennis op mijn werk geleerd. Gelukkig wel grotendeels OOP. Maar ik heb nog veel te leren.
Scorpiewoensdag 3 oktober 2012 @ 16:19
CakePHP ftw, maar das persoonlijk. Couch ken ik niet.
Farenjiwoensdag 3 oktober 2012 @ 17:22
CakePHP is best tof inderdaad. Heb onlangs een project aangenomen, een site waarvan de programmeur was "verdwenen", terwijl de site half af was... Was mijn eerste kennismaking ermee. Lekker snel scaffolden, zit netjes en gestructureerd in elkaar. Ben nu aan het kijken naar Bancha, integratie tussen CakePHP en ExtJS. Vette shit. 8-)
Faux.woensdag 3 oktober 2012 @ 17:51
Wat vinden jullie trouwens van Laravel?
Sitethiefwoensdag 3 oktober 2012 @ 17:51
quote:
7s.gif Op woensdag 3 oktober 2012 16:19 schreef Scorpie het volgende:
CakePHP ftw, maar das persoonlijk. Couch ken ik niet.
CouchDB is een NoSQL database, niet een framework ;).
Scorpiewoensdag 3 oktober 2012 @ 19:09
quote:
0s.gif Op woensdag 3 oktober 2012 17:51 schreef Sitethief het volgende:

[..]

CouchDB is een NoSQL database, niet een framework ;).
Dat zeg ik, ik ken het niet.
Scorpiewoensdag 3 oktober 2012 @ 19:10
quote:
14s.gif Op woensdag 3 oktober 2012 17:22 schreef Farenji het volgende:
CakePHP is best tof inderdaad. Heb onlangs een project aangenomen, een site waarvan de programmeur was "verdwenen", terwijl de site half af was... Was mijn eerste kennismaking ermee. Lekker snel scaffolden, zit netjes en gestructureerd in elkaar. Ben nu aan het kijken naar Bancha, integratie tussen CakePHP en ExtJS. Vette shit. 8-)
ExtJS is sowieso de bomb. Zwaar groot project met alle toeters en bellen ermee aan het doen @ work.
Farenjiwoensdag 3 oktober 2012 @ 19:19
Ik werk al jaren met extjs, vanaf versie 2, maar tot nu toe heb ik alle benodigde backend code met de hand lopen tikken. Vaak arbeidsintensief en saai werk. Die integratie met cakephp scheelt ontzettend veel tijd en moeite want heel veel wordt automatisch voor je gegenereerd.
Diaboxwoensdag 3 oktober 2012 @ 19:36
quote:
7s.gif Op woensdag 3 oktober 2012 16:19 schreef Scorpie het volgende:
CakePHP ftw, maar das persoonlijk. Couch ken ik niet.
Boks.

Kan niet wachten op 3.0, models returnen dan niet meer die shitty arrays.
WyriHaximuswoensdag 3 oktober 2012 @ 20:24
quote:
0s.gif Op woensdag 3 oktober 2012 19:36 schreef Diabox het volgende:

[..]

Boks.

Kan niet wachten op 3.0, models returnen dan niet meer die shitty arrays.
Groepsboks!

2.x is al erg tof (kwa features, performence en gebruikt gemakt een flinke verbetering invergelijking met 1.3) en kan daarom ook niet wachten op 3.x (namespaces/PSR/bcrypt als password hashing/minimaal PHP 5.4 O+ ).
Lightwoensdag 3 oktober 2012 @ 23:33
quote:
0s.gif Op woensdag 3 oktober 2012 13:31 schreef totalvamp het volgende:

[..]

OMG :')
Ik kwam als eerste baantje ergens terecht waar wachtwoorden(na inloggen) gewoon in hidden form velden stond :') Je hoefde alleen de broncode te bekijken om te zien wat het wachtwoord was.

Het eerste wat ik altijd doe bij een nieuwe werkgever is kijken naar de veiligheid van het systeem
Dat kan ook al voordat je uberhaupt een contract tekent.
Lightwoensdag 3 oktober 2012 @ 23:37
quote:
5s.gif Op woensdag 3 oktober 2012 13:36 schreef Swetsenegger het volgende:

[..]

Lineair is toch niet per definitie "dirty"?
Als je goede tests bij je code kunt leveren is het wmb niet dirty. En code die wel OO is maar ook zodanig in elkaar zit dat unittesten niet mogelijk is, is wel dirty.
pascal08vrijdag 5 oktober 2012 @ 15:47
PHP-codes, kan je die ook lokaal vanaf een Windows computer URL's laten aanroepen? Kan ik dan ook communiceren met een server of moet de code dan op een Apache server staan?
ralfievrijdag 5 oktober 2012 @ 16:25
quote:
0s.gif Op vrijdag 5 oktober 2012 15:47 schreef pascal08 het volgende:
PHP-codes, kan je die ook lokaal vanaf een Windows computer URL's laten aanroepen? Kan ik dan ook communiceren met een server of moet de code dan op een Apache server staan?
PHP kan draaien zonder apache, maar ook daar heb je gewoon een programma voor nodig. Pagina's aanroepen e.d. kan alleen met een server, apache lijkt me dan het makkelijkst.
Download gewoon 'wamp' en installeer dat. Geen gezever, werkt meteen
pascal08vrijdag 5 oktober 2012 @ 16:30
quote:
0s.gif Op vrijdag 5 oktober 2012 16:25 schreef ralfie het volgende:

[..]

PHP kan draaien zonder apache, maar ook daar heb je gewoon een programma voor nodig. Pagina's aanroepen e.d. kan alleen met een server, apache lijkt me dan het makkelijkst.
Download gewoon 'wamp' en installeer dat. Geen gezever, werkt meteen
Ik heb XAMPP al, ik weet alleen niet hoe ik mijn PHP-code nu bruikbaar kan maken.
Rockfirevrijdag 5 oktober 2012 @ 16:40
quote:
0s.gif Op vrijdag 5 oktober 2012 16:30 schreef pascal08 het volgende:

[..]

Ik heb XAMPP al, ik weet alleen niet hoe ik mijn PHP-code nu bruikbaar kan maken.
In dat geval kun je je PHP-code in de directory <xampp-directory>\htdocs\ neerzetten. Laten we er even vanuit gaan dat jouw code in een bestand script.php staat, dan kun je je script nu aanroepen via http://localhost/script.php
pascal08vrijdag 5 oktober 2012 @ 16:44
quote:
0s.gif Op vrijdag 5 oktober 2012 16:40 schreef Rockfire het volgende:

[..]

In dat geval kun je je PHP-code in de directory <xampp-directory>\htdocs\ neerzetten. Laten we er even vanuit gaan dat jouw code in een bestand script.php staat, dan kun je je script nu aanroepen via http://localhost/script.php
Juist, dat heb ik al gedaan. Ik krijg gewoon een blank screen te zien dan. Mijn PHP-code heeft blijkbaar geen output of kan geen output laten zien.
Rockfirevrijdag 5 oktober 2012 @ 16:45
quote:
0s.gif Op vrijdag 5 oktober 2012 16:44 schreef pascal08 het volgende:

[..]

Juist, dat heb ik al gedaan. Ik krijg gewoon een blank screen te zien dan. Mijn PHP-code heeft blijkbaar geen output of kan geen output laten zien.
Je weet wel wat je code doet?

Je kunt testen of het werkt door wel ergens output te genereren, die zou je dan moeten zien.
1
2
3
<?php
echo 'Het werkt!';
?>
pascal08vrijdag 5 oktober 2012 @ 16:51
quote:
0s.gif Op vrijdag 5 oktober 2012 16:45 schreef Rockfire het volgende:

[..]

Je weet wel wat je code doet?

Ik heb 'm niet zelf geschreven, ben echt nog een n00b met PHP. Variabelen toekennen en oproepen kan ik wel, echt de basis stuff.

quote:
0s.gif Op vrijdag 5 oktober 2012 16:45 schreef Rockfire het volgende:

Je kunt testen of het werkt door wel ergens output te genereren, die zou je dan moeten zien.
[ code verwijderd ]

5a74c512c3331e5714792cf0078efa48
pascal08vrijdag 5 oktober 2012 @ 17:29
Kan iemand een simpel voorbeeld maken van een cURL HTTP request die echt werkt? Bijvoorbeeld het uitlezen van een RSS feed. Zou mij echt een heel eind op weg helpen. :D

[ Bericht 80% gewijzigd door pascal08 op 05-10-2012 17:47:19 ]
Boze_Appelvrijdag 5 oktober 2012 @ 19:11
quote:
14s.gif Op woensdag 3 oktober 2012 17:22 schreef Farenji het volgende:
CakePHP is best tof inderdaad. Heb onlangs een project aangenomen, een site waarvan de programmeur was "verdwenen", terwijl de site half af was... Was mijn eerste kennismaking ermee. Lekker snel scaffolden, zit netjes en gestructureerd in elkaar. Ben nu aan het kijken naar Bancha, integratie tussen CakePHP en ExtJS. Vette shit. 8-)
Cake is echt kut, sorry. Dat je daarmee kan werken.
mstxvrijdag 5 oktober 2012 @ 19:18
quote:
0s.gif Op vrijdag 5 oktober 2012 17:29 schreef pascal08 het volgende:
Kan iemand een simpel voorbeeld maken van een cURL HTTP request die echt werkt? Bijvoorbeeld het uitlezen van een RSS feed. Zou mij echt een heel eind op weg helpen. :D
1
2
3
<?php
$rss 
file_get_contents('http://url-naar-rss');
?>
Heb je geen curl voor nodig.

En als je dat toch wel wil:
1
2
3
4
5
6
7
<?php
$ch 
curl_init('http://url-naar-rss');
curl_setopt($chCURLOPT_HEADER0);
curl_setopt($chCURLOPT_RETURNTRANSFER1); 
$rsscurl_exec($ch);
curl_close($ch);
?>
pascal08vrijdag 5 oktober 2012 @ 19:18
quote:
0s.gif Op vrijdag 5 oktober 2012 17:29 schreef pascal08 het volgende:
Kan iemand een simpel voorbeeld maken van een cURL HTTP request die echt werkt? Bijvoorbeeld het uitlezen van een RSS feed. Zou mij echt een heel eind op weg helpen. :D
Laat maar eigenlijk, PHP is eigenlijk heel makkelijk. Youtube _O_
pascal08vrijdag 5 oktober 2012 @ 19:19
quote:
0s.gif Op vrijdag 5 oktober 2012 19:18 schreef mstx het volgende:

[..]
[ code verwijderd ]

Heb je geen curl voor nodig.

En als je dat toch wel wil:
[ code verwijderd ]

Lol... :P

Deze ga ik even proberen, bedankt. _O_
Farenjivrijdag 5 oktober 2012 @ 19:23
quote:
13s.gif Op vrijdag 5 oktober 2012 19:11 schreef Boze_Appel het volgende:

[..]

Cake is echt kut, sorry. Dat je daarmee kan werken.
Haha, je kan er gewoon niet mee omgaan. Welk framework is wel de bom dan volgens jou?
pascal08vrijdag 5 oktober 2012 @ 19:25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<html>
<head>
<title>RSS reader.</title>
</head>
<body>

<?php

function getrss(){
$ch = curl_init('http://feeds.nos.nl/nosmyheadlines');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$rss = curl_exec($ch);
curl_close($ch);

echo $rss;
}

?>

<input type="button" onclick="getrss()" value="Bekijk Headlines">
</body>
</html>

Waarom werkt mijn knop nu niet? Haal ik nu JS en PHP door elkaar?
Scorpievrijdag 5 oktober 2012 @ 19:26
Je kan geen php functie aanroepen als JavaScript functie.
pascal08vrijdag 5 oktober 2012 @ 19:27
quote:
0s.gif Op vrijdag 5 oktober 2012 19:26 schreef Scorpie het volgende:
Je kan geen php functie aanroepen als JavaScript functie.
1
2
3
4
5
6
7
8
9
10
11
<?php

$ch = curl_init('http://feeds.nos.nl/nosmyheadlines');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$rss = curl_exec($ch);
curl_close($ch);

echo $rss;

?>

Gelukt. :D
Scorpievrijdag 5 oktober 2012 @ 19:29
php is server Side, html is client Side.
pascal08vrijdag 5 oktober 2012 @ 19:31
quote:
0s.gif Op vrijdag 5 oktober 2012 19:29 schreef Scorpie het volgende:
php is server Side, html is client Side.
Dat is ook de reden waarom PHP veiliger is toch?
Scorpievrijdag 5 oktober 2012 @ 19:33
Nou nee. Je vergelijkt appels met speedboten.
pascal08vrijdag 5 oktober 2012 @ 19:34
quote:
0s.gif Op vrijdag 5 oktober 2012 19:33 schreef Scorpie het volgende:
Nou nee. Je vergelijkt appels met speedboten.
Is HTML de appel? :P 8)7

...grapje...
Boze_Appelvrijdag 5 oktober 2012 @ 19:38
quote:
0s.gif Op vrijdag 5 oktober 2012 19:23 schreef Farenji het volgende:

[..]

Haha, je kan er gewoon niet mee omgaan. Welk framework is wel de bom dan volgens jou?
Ik kan er prima mee omgaan, maar het is bloated. :0
Farenjivrijdag 5 oktober 2012 @ 19:40
quote:
7s.gif Op vrijdag 5 oktober 2012 19:38 schreef Boze_Appel het volgende:

[..]

Ik kan er prima mee omgaan, maar het is bloated. :0
Nogmaals, noem eens een beter alternatief dan?
Boze_Appelvrijdag 5 oktober 2012 @ 19:40
quote:
0s.gif Op vrijdag 5 oktober 2012 19:40 schreef Farenji het volgende:

[..]

Nogmaals, noem eens een beter alternatief dan?
http://codeigniter.com/
Farenjivrijdag 5 oktober 2012 @ 20:30
quote:
CodeIgniter vind ik meer een verzameling libraries dan een framework. Veel van de libs zijn nogal simplistisch, vaak niet meer dan wat convenience wrappers die soms maar weinig voordeel opleveren, zoals die gare "active record" class, die alleen maar extra complexiteit toevoegt zonder dat je er veel gemak voor terugkrijgt.
wipes66vrijdag 5 oktober 2012 @ 21:39
quote:
0s.gif Op woensdag 3 oktober 2012 23:37 schreef Light het volgende:

[..]

Als je goede tests bij je code kunt leveren is het wmb niet dirty. En code die wel OO is maar ook zodanig in elkaar zit dat unittesten niet mogelijk is, is wel dirty.
dus globals maken de boel eerder dirty :P
Tijnvrijdag 5 oktober 2012 @ 21:43
Ik ga binnenkort werken aan de back-end van een Facebook-game. Ik zoek een mooi framework waarmee ik dat zou kunnen doen. Het wordt geen grote applicatie, gewoon wat simpele dingen zoals het bijhouden van highscores.

Iemand een goede tip? Is CakePHP is zo'n geval geen overkill?
#ANONIEMvrijdag 5 oktober 2012 @ 22:15
quote:
2s.gif Op vrijdag 5 oktober 2012 21:43 schreef Tijn het volgende:
Ik ga binnenkort werken aan de back-end van een Facebook-game. Ik zoek een mooi framework waarmee ik dat zou kunnen doen. Het wordt geen grote applicatie, gewoon wat simpele dingen zoals het bijhouden van highscores.

Iemand een goede tip? Is CakePHP is zo'n geval geen overkill?
http://popcornphp.com/

?
Lightvrijdag 5 oktober 2012 @ 22:28
quote:
0s.gif Op vrijdag 5 oktober 2012 21:39 schreef wipes66 het volgende:

[..]

dus globals maken de boel eerder dirty :P
Globals zijn evil. En dat is een understatement.
Tijnvrijdag 5 oktober 2012 @ 22:30
quote:
Mja, laatse versie: 0.6 beta. Klinkt niet echt alsof het volwassen is :+
#ANONIEMvrijdag 5 oktober 2012 @ 22:31
quote:
2s.gif Op vrijdag 5 oktober 2012 22:30 schreef Tijn het volgende:

[..]

Mja, laatse versie: 0.6 beta. Klinkt niet echt alsof het volwassen is :+
Hmm, inderdaad. Dat framework waar Boze_Appel zo enthousiast over is zal denk ik wel voldoen toch?
Arceevrijdag 5 oktober 2012 @ 22:34
quote:
2s.gif Op vrijdag 5 oktober 2012 22:30 schreef Tijn het volgende:
Mja, laatse versie: 0.6 beta. Klinkt niet echt alsof het volwassen is :+
Een forum met 7 topics en 11 posts duidt ook niet echt op een levendige community. :+
#ANONIEMvrijdag 5 oktober 2012 @ 22:46
quote:
10s.gif Op vrijdag 5 oktober 2012 22:34 schreef Arcee het volgende:

[..]

Een forum met 7 topics en 11 posts duidt ook niet echt op een levendige community. :+
Ik zocht op lightweight php framework en deze kwam eruit. :')

De homepage zag er wel goed uit en het leek ook redelijk licht, maar ik keek niet echt verder. :P
Scorpievrijdag 5 oktober 2012 @ 23:48
Licht is het wel.
Lightvrijdag 5 oktober 2012 @ 23:51
quote:
10s.gif Op vrijdag 5 oktober 2012 23:48 schreef Scorpie het volgende:
Licht is het wel.
Dat is onderstaand framework ook:
1
2
3
4
<?php
class Framework {
}
?>
Boze_Appelzaterdag 6 oktober 2012 @ 02:58
quote:
0s.gif Op vrijdag 5 oktober 2012 20:30 schreef Farenji het volgende:

[..]

CodeIgniter vind ik meer een verzameling libraries dan een framework. Veel van de libs zijn nogal simplistisch, vaak niet meer dan wat convenience wrappers die soms maar weinig voordeel opleveren, zoals die gare "active record" class, die alleen maar extra complexiteit toevoegt zonder dat je er veel gemak voor terugkrijgt.
Wat voor complexiteit voegt active record toe?

In de praktijk komt het niet zo belachelijk veel voor, maar een simpele manier om database-interactie's te doen, ongeacht de database, is best praktisch. Een conversie van MySQL naar PostgreSQL is dan een eitje om maar wat te noemen.
Farenjizaterdag 6 oktober 2012 @ 10:54
quote:
7s.gif Op zaterdag 6 oktober 2012 02:58 schreef Boze_Appel het volgende:

[..]

Wat voor complexiteit voegt active record toe?
Ik vind dit:

1$this->db->select('title')->from('mytable')->where('id', $id)->limit(10, 20);

complexer dan gewoon kale sql:
1select title from mytable where id = ? limit 10, 20

In ieder geval makkelijker te tikken.
(het voorbeeld heb ik uit de documentatie, het is natuurlijk een debiele query)

Wat ik in active record ook heel erg mis is inter table relaties - die moet je alsnog helemaal zelf doen, incl de joins. In de modellen van cakephp worden die automatisch gelegd (hasOne, hasMany, belongsTo) aan de hand van je database schema en hoef je er bijna niet meer over na te denken. De benodigde joins worden onderwater gewoon gegenereerd en je kan de data van gerelateerde tabellen benaderen zonder extra moeite.

quote:
In de praktijk komt het niet zo belachelijk veel voor, maar een simpele manier om database-interactie's te doen, ongeacht de database, is best praktisch. Een conversie van MySQL naar PostgreSQL is dan een eitje om maar wat te noemen.
Daar heb je helemaal gelijk in. Dat is wat mij betreft ook de enige reden waarom je active record zou willen gebruiken.
Devolutionzaterdag 6 oktober 2012 @ 17:11
Ik heb de volgende code op een pagina staan waar boven deze code nog meer code staat, maar eronder niets meer:
1
2
3
4
5
6
7
8
<?php
$rij 
mysql_fetch_array(mysql_query("SELECT movespeler1,movespeler2 FROM fightdata WHERE id = '1'"));
$move $rij['movespeler1'];
if (
$move != ""){
    
// De tegenstander heeft een move uitgevoerd
    
mysql_query("UPDATE fightdata SET movespeler1 = '' WHERE id = '1'");
}
?>

De UPDATE regel wordt niet uitgevoerd in die code. Zodra ik die regel boven de regel plaats waar het SQL-resultaat gefetched wordt werkt het wel. Als ik deze code in een nieuw php-document plaats met geen andere code, werkt ie wel. De code zelf lijkt dus wel goed te zijn. Maar waarom werkt ie niet als ik die regel onder de fetch plaats op die pagina? Ik snap er echt geen zak van waarom het niet werkt. In elke andere situatie die ik heb kunnen bedenken UPDATE ie de cel gewoon, BEHALVE op die ene pagina als ik de UPDATE regel daar onder de fetch plaats. Heeft iemand enig idee waardoor dit kan?
Ik heb de rest van de code op de pagina niet genoemd omdat ik niet denk dat daar het probleem in zit. Dit denk ik omdat de UPDATE query wél gewoon werkt als ik die boven de fetch plaats. Heeft iemand énig idee? Ik ben hier al dagen mee bezig, heb van alles geprobeerd maar het wil verdomme maar niet werken..
boem-dikkiezaterdag 6 oktober 2012 @ 17:55
Plaats je dan de update query buiten de if boven de code? Wat krijg je terug als je $move echo't?
Devolutionzaterdag 6 oktober 2012 @ 18:02
Ik dacht eerst ook dat het daaraan lag, maar als ik de UPDATE query slechts boven de IF plaats dan werkt het nog steeds niet. Ik moet de query echt boven de fetch plaatsen om het te laten werken. $move geeft de daadwerkelijke waarde (A3) gewoon terug, dus dat klopt ook gewoon..
Arceezaterdag 6 oktober 2012 @ 18:06
Je kunt die IF ook als een WHERE in het UPDATE-statement verwerken:

1
2
3
<?php
mysql_query
("UPDATE fightdata SET movespeler1 = '' WHERE id = '1' AND movespeler1<>''");
?>

Dan kun je die fetch en de IF gewoon weglaten.
GlowMousezaterdag 6 oktober 2012 @ 18:16
quote:
0s.gif Op zaterdag 6 oktober 2012 18:06 schreef Arcee het volgende:
Je kunt die IF ook als een WHERE in het UPDATE-statement verwerken:
[ code verwijderd ]

Dan kun je die fetch en de IF gewoon weglaten.
en heb je gelijk ondersteuning voor concurrency
Devolutionzaterdag 6 oktober 2012 @ 20:40
Nee helaas niet, omdat hij in die IF ook nog wat HTML output via een echo. Dit is voor dit probleem echter niet relevant en daarom heb ik dit niet in de code staan ;)
Lightzaterdag 6 oktober 2012 @ 22:17
quote:
12s.gif Op zaterdag 6 oktober 2012 20:40 schreef Devolution het volgende:
Nee helaas niet, omdat hij in die IF ook nog wat HTML output via een echo. Dit is voor dit probleem echter niet relevant en daarom heb ik dit niet in de code staan ;)
Je kunt ook eerst de update doen, dan controleren hoeveel rijen er aangepast zijn (met mysql_num_rows()) en op basis daarvan je IF doen.
Devolutionzondag 7 oktober 2012 @ 11:07
Nee kan ook niet, want hij moet de waarde eerst naar de browser outputten en daarna pas de waarde updaten :)

De waarde in de cel staat voor een aanval die een vechtpoppetje doet. Zodra dit poppetje de aanval doet moet hiervan een melding op het scherm van de speler komen en vervolgens wordt deze aanval uit de cel verwijderd (leeggemaakt).
rekenwonderzondag 7 oktober 2012 @ 11:08
quote:
10s.gif Op woensdag 3 oktober 2012 14:17 schreef Tijn het volgende:

[..]

Ik zat vanochtend nog bij een klant voor een nieuw project die me expliciet vroeg om het niet "te object-georiënteerd" op te zetten :+

Maar goed, dat komt waarschijnlijk omdat 'ie het zelf ook niet zo goed begrijpt denk ik. Ik zie eigenlijk geen reden om niet gewoon met controllers en models te werken.
Of hij begreep het heel goed en was bang voor overengineering of het second-system effect. Het wordt tijd dat de pragmatiek weer breder gedragen gaat worden in het developmentwezen.

Programming Motherfucker, Do you speak it? :-)
Tijnzondag 7 oktober 2012 @ 11:10
quote:
0s.gif Op zondag 7 oktober 2012 11:08 schreef rekenwonder het volgende:

[..]

Of hij begreep het heel goed en was bang voor overengineering of het second-system effect.

Het wordt tijd dat de pragmatiek breder gedragen gaat worden in het developmentwezen.

Programming Motherfucker.com, Do you speak it? :-)
Mja, de vrij strakke deadline dwingt sowieso al een bepaalde pragmatiek af :+
Arceezondag 7 oktober 2012 @ 11:43
quote:
5s.gif Op zaterdag 6 oktober 2012 17:11 schreef Devolution het volgende:
Ik heb de rest van de code op de pagina niet genoemd omdat ik niet denk dat daar het probleem in zit.
Misschien dat je daar toch een stukje van kunt posten? Je zegt dat de code zoals je die postte in een nieuw document gewoon werkt, dus wellicht ligt het toch aan de overige code.
Devolutionzondag 7 oktober 2012 @ 13:33
Ik heb het eindelijk opgelost. Het had te maken met een AJAX call in de code (die werd aangeroepen via een javascriptcode die weer via een echo geplaatst werd in die IF hierboven) die de bewuste cel aanpaste nadat de update de cel leeggemaakt had. De update werkte dus wel maar daarna veranderde de AJAX call doodleuk de waarde weer in de oude :D

Ik ben erachter gekomen door de javascriptcode weg te halen, waardoor de pagina het perfect deed. Toen wist ik dus dat het daaraan moest liggen en heb ik de complete javascriptcode (en de resulterende AJAX-call) vervolgens regel voor regel nagelopen en kwam ik achter de fout.

Ik heb hiervoor nog nooit met AJAX calls gewerkt dus vandaar dat ik deze stomme fout gemaakt had haha :@ Maar het werkt nu weer _O_
#ANONIEMzondag 7 oktober 2012 @ 13:48
quote:
10s.gif Op zondag 7 oktober 2012 13:33 schreef Devolution het volgende:
Ik heb het eindelijk opgelost. Het had te maken met een AJAX call in de code (die werd aangeroepen via een javascriptcode die weer via een echo geplaatst werd in die IF hierboven) die de bewuste cel aanpaste nadat de update de cel leeggemaakt had. De update werkte dus wel maar daarna veranderde de AJAX call doodleuk de waarde weer in de oude :D

Ik ben erachter gekomen door de javascriptcode weg te halen, waardoor de pagina het perfect deed. Toen wist ik dus dat het daaraan moest liggen en heb ik de complete javascriptcode (en de resulterende AJAX-call) vervolgens regel voor regel nagelopen en kwam ik achter de fout.

Ik heb hiervoor nog nooit met AJAX calls gewerkt dus vandaar dat ik deze stomme fout gemaakt had haha :@ Maar het werkt nu weer _O_
Daarnaast is het wel een walgelijk stukje code. In die 4 regels gaan al 4 dingen mis...
Devolutionzondag 7 oktober 2012 @ 13:50
Enlighten me?
#ANONIEMzondag 7 oktober 2012 @ 14:00
1
2
3
4
5
6
7
8
<?php
$rij 
mysql_fetch_array(mysql_query("SELECT movespeler1,movespeler2 FROM fightdata WHERE id = '1'"));
$move $rij['movespeler1'];
if (
$move != ""){
    
// De tegenstander heeft een move uitgevoerd
    
mysql_query("UPDATE fightdata SET movespeler1 = '' WHERE id = '1'");
}
?>

Geen foutcontrole.
Geen controle over resultaten.
2 spelernamen in 1 tabel ipv een aparte tabel voor spelers.
Where id = 1 zonder quotes. Anders vergelijkt hij als string en niet int
Devolutionzondag 7 oktober 2012 @ 18:50
Foutcontrole op de fetch is niet nodig omdat de cellen uit de query altijd bestaan.
Er zijn niet 2 spelernamen in 1 tabel, zie onder*.
Als laatste stonden er quotes omdat daar normaal een php string staat, maar voor testdoeleinden had ik daar even een 1 van gemaakt.

* Elk gevecht krijgt een eigen rij. In die rij staan onder andere de columns movespeler1 en movespeler2. Deze geven aan welke aanval elke speler heeft gekozen in datzelfde gevecht en deze worden geleegd zodra beide spelers deze aanval gezien hebben als animatie. Het is dus niet nodig om deze in aparte tabellen te zetten omdat het slechts de acties weergeeft binnen 1 gevecht.
cablegunmastermaandag 8 oktober 2012 @ 19:09
Ik zit met een denk spelletje in mijn hoofd, zelf probeer ik steeds meer richting jquery en ajax op te denken. Al lukt het niet altijd even goed, maar nu vraag ik me af. ik heb een tabel met X aantal rijen. elke rij wou ik inline kunnen aanpassen (call back richting database). Zodat als een waarde verandert de goede rij aangepast wordt.

Ik zat nu aan 2 varianten te denken,

1. met een save knop aan het einde van de rij. (hoe hij weet dat hij de Rij daarvoor moet hebben weet ik nog niet ) . Tig <form> op een pagina maken leek me niet praktisch en was net een beetje semi ajax idee.

2. onchange javascript dat als een verandering op het input veld is er een javascript activeert, die de resultaten post richitng de server. Dit lijkt me alleen zwaar te zijn, (kan het mis hebben). elke aanpassing een aparte query verstuurd , geen idee in wat voor orde query's gaan maar, mij is geleerd zo min mogelijk query's te gebruiken. kan het helemaal mis hebben.

Onchange() -> functie in jquery pakt de value van het huidige input veld. Stuurt de waarde per $.post in javascript door naar functie in php. :P en php stuurt het door richting SQL database.
Crutchmaandag 8 oktober 2012 @ 19:35
Je bedoelt een "onkeyup"-event van zo'n input text zeker?
Ik zie het wel vaker gebeuren; met zoeksuggesties bijvoorbeeld.
Ja je vuurt dan wel met elke toetsaanslag een $.post() af, maar dat is toch niet zo zwaar?
Scorpiemaandag 8 oktober 2012 @ 19:42
Of pas na drie aanslagen fetchen, deze in cache opslaan en daar verder in filteren.
GlowMousemaandag 8 oktober 2012 @ 20:04
quote:
0s.gif Op maandag 8 oktober 2012 19:42 schreef Scorpie het volgende:
Of pas na drie aanslagen fetchen, deze in cache opslaan en daar verder in filteren.
jij gaat voor de bullshitbingo?
Sitethiefmaandag 8 oktober 2012 @ 20:07
Wie heeft er ervaring met Propel en verglijkbare ORM oplossingen in PHP. Is zoiets aan te raden om op te pakken voor wat hobbyprojectjes, of maak ik het me dan juist weer veels te moeilijk? En wat zou een tussenoplossing zijn? Het andere einde is nl. zelf e.a. aan classes schrijven voor PDO/MySQL, dat voelt alleen een beetje als het wiel op nieuwe uitvinden. Ik doe dat al op mijn werk dus om dat thuis nog eens na te gaan doen is mij een beetje te gortig.
Scorpiemaandag 8 oktober 2012 @ 20:12
quote:
14s.gif Op maandag 8 oktober 2012 20:04 schreef GlowMouse het volgende:

[..]

jij gaat voor de bullshitbingo?
Nee lekker alles in het Nederlands uitspreken, dat zet zoden aan de dijk :')

'Na 3 aanslaguh de resultaten ophaluh en dan lokaal bijhouduh en dan daarin gaan zoekuh'.
GlowMousemaandag 8 oktober 2012 @ 20:24
quote:
7s.gif Op maandag 8 oktober 2012 20:12 schreef Scorpie het volgende:

[..]

Nee lekker alles in het Nederlands uitspreken, dat zet zoden aan de dijk :')

'Na 3 aanslaguh de resultaten ophaluh en dan lokaal bijhouduh en dan daarin gaan zoekuh'.
Je strooide met termen zonder specifiek aan te geven waar dat gebeurde. Fetchen is in php-land sowieso iets vreemds als je het over user-input hebt. Het was voor mij onbegrijpelijk wat je met je post bedoelde.
pascal08maandag 8 oktober 2012 @ 20:47
Heeft iemand hier ervaring met cURL? Ik heb een loginscript, maar ik krijg geen output. Waarschijnlijk heeft het te maken met een cookie.txt file waar naartoe geschreven moet kunnen worden. Ik weet alleen niet hoe. :?
Scorpiemaandag 8 oktober 2012 @ 21:04
quote:
0s.gif Op maandag 8 oktober 2012 20:24 schreef GlowMouse het volgende:

[..]

Je strooide met termen zonder specifiek aan te geven waar dat gebeurde. Fetchen is in php-land sowieso iets vreemds als je het over user-input hebt. Het was voor mij onbegrijpelijk wat je met je post bedoelde.
Data fetchen is jou vreemd? De relatie met een input field kon je ook niet leggen? User-input is wel een normale term ? Dit soort termen worden dagelijks gebezigd zonder dat er iemand is die niet snapt waar het over gaat, zeker de gemiddelde devver weet precies wat dit inhoud. Daarnaast is de door mij geposte manier een beproefde methode voor een live search veld.
Lightmaandag 8 oktober 2012 @ 22:12
quote:
12s.gif Op zondag 7 oktober 2012 18:50 schreef Devolution het volgende:
Foutcontrole op de fetch is niet nodig omdat de cellen uit de query altijd bestaan.
Dan nog kun je zonder foutafhandeling in de problemen komen. Bijvoorbeeld als de tabel wordt aangepast en je de code niet overal bijwerkt. Of als het id niet bestaat, of de verbinding met de database moeilijk doet. Als mysql_query (een functie die je eigenlijk niet meer moet gebruiken) geen resultaat oplevert, gaat mysql_fetch ook mis.
Sitethiefdinsdag 9 oktober 2012 @ 09:59
Over het algemeen vang ik functies altijd af, bijna alle functies kunnen false terug geven als er iets misgaat. Als je dat meteen afvangt kun je dat meteen vastleggen, ipv dat je telefoontjes van klanten krijgt over foreaches die misgaan wegens missende data etc. (en eigenlijk vind ik dat je altijd moet checken of je wel een array/object naar je foreach stuurt, of iedere andere functie die een bepaalde iets verwacht.) Dan moet je namelijk helemaal terug gaan kijken waar dat ook al weer was, ipv dat je die informatie al hebt. En daarnaast is het voor de gebruiker meestal prettiger een foutmelding te zien die zij kunnen begrijpen, ipv een of andere php foutmelding.
Sitethiefdinsdag 9 oktober 2012 @ 10:01
Het woord altijd vind ik zo gevaarlijk in de ICT, "ja maar dat zal nooit gebeuren", "dat komt niet voor", "daar hoeven we geen rekening mee te maken", "die input/output is altijd goed"
VorteXxXdinsdag 9 oktober 2012 @ 10:06
tegenwoordig leer je het tijdens je opleiding om overal rekening mee (proberen) te houden en (proberen) zo veel mogelijk op te vangen (ik toch :))
mstxdinsdag 9 oktober 2012 @ 10:07
quote:
0s.gif Op maandag 8 oktober 2012 19:09 schreef cablegunmaster het volgende:
2. onchange javascript dat als een verandering op het input veld is er een javascript activeert, die de resultaten post richitng de server. Dit lijkt me alleen zwaar te zijn, (kan het mis hebben). elke aanpassing een aparte query verstuurd , geen idee in wat voor orde query's gaan maar, mij is geleerd zo min mogelijk query's te gebruiken. kan het helemaal mis hebben.

Onchange() -> functie in jquery pakt de value van het huidige input veld. Stuurt de waarde per $.post in javascript door naar functie in php. :P en php stuurt het door richting SQL database.
quote:
0s.gif Op maandag 8 oktober 2012 19:42 schreef Scorpie het volgende:
Of pas na drie aanslagen fetchen, deze in cache opslaan en daar verder in filteren.
Ik doe zoiets meestal met een timeout, dus dit idee:
1
2
3
4
5
var timeout=null;
function onkeyupfunctie(){
if (timeout!=null) clearTimeout(timeout);
setTimeout("functieDieAjaxVerstuurt()", 3000);
}
Dan stuurt hij max. elke 3 seconden iets naar je server.
#ANONIEMdinsdag 9 oktober 2012 @ 15:20
quote:
12s.gif Op zondag 7 oktober 2012 18:50 schreef Devolution het volgende:
Foutcontrole op de fetch is niet nodig omdat de cellen uit de query altijd bestaan.
Je moet nooit er vanuit gaan dat iets altijd bestaat.

quote:
Er zijn niet 2 spelernamen in 1 tabel, zie onder*.
Het kan wel zo, maar het is niet netjes :)

quote:
Als laatste stonden er quotes omdat daar normaal een php string staat, maar voor testdoeleinden had ik daar even een 1 van gemaakt.
controleer je dan wel of die string ook aan je voorwaarden voldoet?

quote:
* Elk gevecht krijgt een eigen rij. In die rij staan onder andere de columns movespeler1 en movespeler2. Deze geven aan welke aanval elke speler heeft gekozen in datzelfde gevecht en deze worden geleegd zodra beide spelers deze aanval gezien hebben als animatie. Het is dus niet nodig om deze in aparte tabellen te zetten omdat het slechts de acties weergeeft binnen 1 gevecht.
Maar wat als je meer acties krijgt? Dan kun je het niet opschalen
cablegunmasterdinsdag 9 oktober 2012 @ 16:00
quote:
0s.gif Op dinsdag 9 oktober 2012 10:07 schreef mstx het volgende:

[..]

[..]

Ik doe zoiets meestal met een timeout, dus dit idee:
[ code verwijderd ]

Dan stuurt hij max. elke 3 seconden iets naar je server.
Hoe is dit idee eigenlijk? ik begrijp de code half, je wil als er 3 seconde niks gebeurt iets verstuurt?
Want ik heb nu
1<input type='text' name='field_name' value='' onchange="Update_field_table($rownumber,$value);" />
Daarbij gebruik ik een stukje javascript:
1
2
3
4
5
6
7
8
function Update_field_table(rownumber,waarde)
{
  //irrelevant hieronder.
   $.post{
    waarde : waarde,
    rownumber : rownumber
    }
}

Hoe wou je daartussen dan de timeout neerzetten? want dan was je idee dat hij elke keer de timeout cleared onchange? en pas na 3 seconde submit. onchange submitten heb ik al onder de knie, alleen hoe was je idee met de 3 seconde timeout? dat hij pas na 3 seconde na de onchange aanpast? Ideaal eigenlijk als er geen change meer plaatsvind. dus 2 seconde na laatste change. :P


Ontleed:
Trigger: Als een key up wordt gedrukt laad hij deze functie.
Als er 3 seconde geen knop boven is gedrukt verstuurd hij het richting de server ( aanroep functieDieAjax); als ik het begrijp? :P anders timeout leegmaken.
1
2
3
4
5
var timeout=null;
function onkeyupfunctie(){
if (timeout!=null) clearTimeout(timeout);
setTimeout("functieDieAjaxVerstuurt()", 3000);
}


[ Bericht 5% gewijzigd door cablegunmaster op 09-10-2012 16:06:02 ]
Devolutiondinsdag 9 oktober 2012 @ 16:47
Bedankt voor al jullie hulp en zorgen maar ik heb er al genoeg over nagedacht en ik vind het prima zo. Het is verder iets voor mezelf, niet voor een klant dus ik zit er niet zo mee als het niet perfect is.
mstxdinsdag 9 oktober 2012 @ 16:58
quote:
0s.gif Op dinsdag 9 oktober 2012 16:00 schreef cablegunmaster het volgende:

[..]

Hoe is dit idee eigenlijk? ik begrijp de code half, je wil als er 3 seconde niks gebeurt iets verstuurt?
Want ik heb nu
[ code verwijderd ]

Daarbij gebruik ik een stukje javascript:
[ code verwijderd ]

Hoe wou je daartussen dan de timeout neerzetten? want dan was je idee dat hij elke keer de timeout cleared onchange? en pas na 3 seconde submit. onchange submitten heb ik al onder de knie, alleen hoe was je idee met de 3 seconde timeout? dat hij pas na 3 seconde na de onchange aanpast? Ideaal eigenlijk als er geen change meer plaatsvind. dus 2 seconde na laatste change. :P

Ontleed:
Trigger: Als een key up wordt gedrukt laad hij deze functie.
Als er 3 seconde geen knop boven is gedrukt verstuurd hij het richting de server ( aanroep functieDieAjax); als ik het begrijp? :P anders timeout leegmaken.
[ code verwijderd ]

Ja volgens mij snap je het wel zo'n beetje.
Bij elke druk op de knop slaat hij een actie op in de variabele "timeout" die over 3 seconden uitgevoerd wordt. Voordat hij dat doet verwijdert hij die functie weer als die in die variabele is opgeslagen.
Dus zolang je steeds binnen 3 seconden op een knop drukt blijft hij die actie verwijderen en daarna weer opnieuw starten voor over 3 seconden.
MrNileswoensdag 10 oktober 2012 @ 22:31
ik heb een tekst invul form, de tekst schrijf ik wel in een txt file
als ik in de tekstarea een harde return geef dan komt deze ook in de txt file terecht.
Als ik de textfile uitlees dan zie ik die harde return ook weer terug op het scherm...da's nie de bedoeling

hoe krijg ik de harde return eruit?
trim lijkt niet te werken
mscholwoensdag 10 oktober 2012 @ 22:33
quote:
0s.gif Op woensdag 10 oktober 2012 22:31 schreef MrNiles het volgende:
ik heb een tekst invul form, de tekst schrijf ik wel in een txt file
als ik in de tekstarea een harde return geef dan komt deze ook in de txt file terecht.
Als ik de textfile uitlees dan zie ik die harde return ook weer terug op het scherm...da's nie de bedoeling

hoe krijg ik de harde return eruit?
trim lijkt niet te werken
http://nl1.php.net/nl2br die functie nodig? (ik weet even niet waarom je die harde return niet wilt hebben :P)
MrNileswoensdag 10 oktober 2012 @ 22:37
quote:
0s.gif Op woensdag 10 oktober 2012 22:33 schreef mschol het volgende:

[..]

http://nl1.php.net/nl2br die functie nodig? (ik weet even niet waarom je die harde return niet wilt hebben :P)
ik wil de harde return niet in mijn txt file terug zien als harde return maar alleen als <br/>
Tijnwoensdag 10 oktober 2012 @ 22:37
quote:
0s.gif Op woensdag 10 oktober 2012 22:37 schreef MrNiles het volgende:

[..]

ik wil de harde return niet in mijn txt file terug zien als harde return maar alleen als <br/>
Dat is precies wat nl2br() doet.
MrNileswoensdag 10 oktober 2012 @ 22:40
quote:
6s.gif Op woensdag 10 oktober 2012 22:37 schreef Tijn het volgende:

[..]

Dat is precies wat nl2br() doet.
ow..ok..ff proberen dan
kwam er net achter dat een harde return een carriage return heet...dat zoekt een stuk makkelijker
kwam op deze oplossing
$bericht= trim( preg_replace( '/\s+/', ' ', $bericht) );
ralfiewoensdag 10 oktober 2012 @ 22:59
quote:
0s.gif Op woensdag 10 oktober 2012 22:40 schreef MrNiles het volgende:

[..]

ow..ok..ff proberen dan
kwam er net achter dat een harde return een carriage return heet...dat zoekt een stuk makkelijker
kwam op deze oplossing
$bericht= trim( preg_replace( '/\s+/', ' ', $bericht) );
Een carriage return is het '\r' symbool. Het 'ga naar de volgende regel' symbool is de newline '\n'.
Windows vindt het nodig om beide te gebruiken als 'harde enter' of hoe je het noemen wil:

jantje\r\n
Dit is een nieuwe regel

*nix doet standaard alleen de '\n' gebruiken

jantje\n
Dit is een nieuwe regel

Waarom windows het in twee symbolen doet is historisch, eigenlijk. Een carriage return is wat je met je typmachine doet, het terugslingeren van je papier om de 'cursor' weer aan het begin van de regel te krijgen. De newline, het doordraaien van je papier, is datgene wat de nieuwe regel maakt.

In console output kun je met een carriage return de huidige regel overschrijven. Handig voor voortgang e.d.
wobbelwoensdag 10 oktober 2012 @ 23:13
Help, wat doe ik weer eens fout :') Ik krijg bij huidige waarde van $henk fout terug :(

Ik wil nummers en + toestaan (voor telefoonnummers met of zonder + ervoor)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
// Telefoonnummer controle        
$henk "+3107365252"// OK
$henk "2355929253"// OK
$henk "+352329523" // OK
$henk "035ABC"// FOUT
$henk "+35235a"// FOUT
if ( preg_match "/^\+?\d+$/"$henk ) )
{
    
    echo 
"OK";
    
}
else
{
    
    echo                                                
"FOUT";    
    
}
?>
mscholwoensdag 10 oktober 2012 @ 23:21
quote:
0s.gif Op woensdag 10 oktober 2012 23:13 schreef wobbel het volgende:
Help, wat doe ik weer eens fout :') Ik krijg bij huidige waarde van $henk fout terug :(

Ik wil nummers en + toestaan (voor telefoonnummers met of zonder + ervoor)
[ code verwijderd ]

zoiets?"
1
2
3
4
5
if (preg_match('/^\+?\d{1,10}$|\d{1,10}$/i', $subject)) {
    # Successful match
} else {
    # Match attempt failed
}
zal vast niet het meest efficientst zijn :X (gezien ik geen regex held ben het even met regexbuddy in elkaar geknutseld..)
wobbelwoensdag 10 oktober 2012 @ 23:26
quote:
0s.gif Op woensdag 10 oktober 2012 23:21 schreef mschol het volgende:

[..]

zoiets?"
[ code verwijderd ]

zal vast niet het meest efficientst zijn :X (gezien ik geen regex held ben het even met regexbuddy in elkaar geknutseld..)
Het gaat met name om de snelheid van de regex aangezien de regex vele tienduizenden keren per dag uitgevoerd gaat worden.

En volgens mij is 0-9 toch echt handiger dan 1-10 :+
mscholwoensdag 10 oktober 2012 @ 23:27
quote:
0s.gif Op woensdag 10 oktober 2012 23:26 schreef wobbel het volgende:

[..]

Het gaat met name om de snelheid van de regex aangezien de regex vele tienduizenden keren per dag uitgevoerd gaat worden.

En volgens mij is 0-9 toch echt handiger dan 1-10 :+
voor optimalisatie moet je niet bij mij zijn :@

en 0-9? lijkt me erg onhandig, je eerste voorbeeld matcht hij dan al niet... ;)
1-10 is vanaf 1 cijfer tot max 10 cijfers...
i1h7iw.jpg
wobbelwoensdag 10 oktober 2012 @ 23:30
quote:
0s.gif Op woensdag 10 oktober 2012 23:27 schreef mschol het volgende:

[..]

voor optimalisatie moet je niet bij mij zijn :@

en 0-9? lijkt me erg onhandig, je eerste voorbeeld matcht hij dan al niet... ;)
1-10 is vanaf 1 cijfer tot max 10 cijfers...
Ah, ik snap dus al niks van regexen :P

Hij mag numeriek zijn, of numeriek en beginnen met +. De lengte is verder niet van belang, van 1 tot 100 cijfers ik vind het allemaal goed :P
Tijnwoensdag 10 oktober 2012 @ 23:50
quote:
0s.gif Op woensdag 10 oktober 2012 23:13 schreef wobbel het volgende:

Ik wil nummers en + toestaan (voor telefoonnummers met of zonder + ervoor)
Is filter_var() dan geen oplossing?

1
2
3
<?php
echo filter_var('+1234henk-5678aaa'FILTER_SANITIZE_NUMBER_FLOAT);
?>

Hier komt uit:

1+1234-5678
KomtTijd...donderdag 11 oktober 2012 @ 00:30
Wat Tijn zegt, of FILTER_VALIDATE_FLOAT, die geeft true of false terug. (misschien iets te stikt voor telefoonnummers, als je ook streepjes of spaties wilt toestaan)
wipes66donderdag 11 oktober 2012 @ 02:02
$valid = ( $henk{1} === '+' || ctype_digit($henk{1}) && ctype_digit(substr($henk, 1)) );

Zoiets ? :P
Diaboxdonderdag 11 oktober 2012 @ 02:58
quote:
14s.gif Op donderdag 11 oktober 2012 00:30 schreef KomtTijd... het volgende:
Wat Tijn zegt, of FILTER_VALIDATE_FLOAT, die geeft true of false terug. (misschien iets te stikt voor telefoonnummers, als je ook streepjes of spaties wilt toestaan)
Mja, eerst trimmen voordat je hem door de filter haalt. Slikt ie in ieder geval spaties.
cablegunmasterdonderdag 11 oktober 2012 @ 16:08
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var timeout=null;
function update_voucher(rownumber,waarde){
    var rownumber = rownumber;
    var waarde = waarde;
    if (timeout!=null)
    clearTimeout(timeout);
    setTimeout(function(){
        functieVoucherVerstuurd(rownumber,waarde);
    }, 2000);
}

function functieVoucherVerstuurd(rownumber,waarde)
{
    var value = $("."+waarde).val();
    $.post("/cms/voucher/blablabla/", {
        id : rownumber,
        value : value,
        field : waarde,
        post_ajax : "true"
    },    function(data){
        alert(waarde+" veld is geupdate met: "+value);
    });
}
werkt goed :P alleen nog iets met this erbij :P

1var value = $("."+waarde).val();
zit nog niet helemaal lekker, hij pakt alleen de bovenste rij omdat dit zo staat. alleen iets met this? snap daar nog niet helemaal de syntax van :o.

[ Bericht 3% gewijzigd door cablegunmaster op 11-10-2012 16:14:29 ]
KomtTijd...donderdag 11 oktober 2012 @ 16:12
Als je al nederlandse functienamen gebruikt, maak ze dan op zijn minst grammaticaal correct ;(
GlowMousedonderdag 11 oktober 2012 @ 16:20
Kijk eens naar de jQuery-documentatie over traversing. Je laat niet zien hoe de functie wordt aangeroepen, maar vanaf $(this) is de rij waarschijnlijk niet ver in de dom-tree.
cablegunmasterdonderdag 11 oktober 2012 @ 16:27
quote:
0s.gif Op donderdag 11 oktober 2012 16:20 schreef GlowMouse het volgende:
Kijk eens naar de jQuery-documentatie over traversing. Je laat niet zien hoe de functie wordt aangeroepen, maar vanaf $(this) is de rij waarschijnlijk niet ver in de dom-tree.
Idee is eigenlijk dat hij zichzelf vind, dus met behulp van onchange eigenlijk weet dat hij Input te pakken heeft de huidige rij te pakken heeft. ik zat me net te bedenken is het dan slim om elke rij een eigen nummer id mee te geven , op basis van de ID in de DB? zo van:

1
2
3
4
5
<?php
<tr id='voucher-500' >
  <
td><input  name='datum' value='2012-01-01' onchange="update_voucher('500','datum');" /></td>
<
tr>
?>

Op basis van het "voucher"+500 de input te pakken? (hoe weet ik nog niet :P ).
Daar vervolgens de children van die TR te pakken? :P
GlowMousedonderdag 11 oktober 2012 @ 16:30
wat is de .val() van die tr dan?
cablegunmasterdonderdag 11 oktober 2012 @ 16:32
quote:
0s.gif Op donderdag 11 oktober 2012 16:30 schreef GlowMouse het volgende:
wat is de .val() van die tr dan?
dankje voor het idee, even kijken of ik het toegepast krijg :).
Oplossing: op basis van de DB + veldnaam het toe te passen O+ .

[ Bericht 12% gewijzigd door cablegunmaster op 11-10-2012 16:39:06 ]
Farenjidonderdag 11 oktober 2012 @ 16:33
quote:
10s.gif Op donderdag 11 oktober 2012 16:12 schreef KomtTijd... het volgende:
Als je al nederlandse functienamen gebruikt, maak ze dan op zijn minst grammaticaal correct ;(
Ben nu bezig met een php project waar alle functienamen en variabelen in het Spaans zijn ;(
Scorpiedonderdag 11 oktober 2012 @ 16:38
quote:
0s.gif Op donderdag 11 oktober 2012 16:27 schreef cablegunmaster het volgende:

[..]

Idee is eigenlijk dat hij zichzelf vind, dus met behulp van onchange eigenlijk weet dat hij Input te pakken heeft de huidige rij te pakken heeft. ik zat me net te bedenken is het dan slim om elke rij een eigen nummer id mee te geven , op basis van de ID in de DB? zo van:
[ code verwijderd ]

Op basis van het "voucher"+500 de input te pakken? (hoe weet ik nog niet :P ).
Daar vervolgens de children van die TR te pakken? :P
Owja, geweldig, database id`tjes meegeven.
cablegunmasterdonderdag 11 oktober 2012 @ 16:39
quote:
9s.gif Op donderdag 11 oktober 2012 16:38 schreef Scorpie het volgende:
Owja, geweldig, database id`tjes meegeven.
Beter idee? :P dit is toch voor achter de schermen gebruik.
Scorpiedonderdag 11 oktober 2012 @ 16:41
quote:
0s.gif Op donderdag 11 oktober 2012 16:39 schreef cablegunmaster het volgende:

[..]

Beter idee? :P dit is toch voor achter de schermen gebruik.
ALS je al id`tjes gebruikt, dan gooi ik die informatie altijd in het HTML5 attribuut data. Met jQuery kan je die vervolgens door $(selector).data('var'); uitlezen.
GlowMousedonderdag 11 oktober 2012 @ 16:44
quote:
0s.gif Op donderdag 11 oktober 2012 16:32 schreef cablegunmaster het volgende:

[..]

Oplossing: op basis van de DB + veldnaam het toe te passen O+ .
ik had je al een prachtoplossing gegeven
cablegunmasterdonderdag 11 oktober 2012 @ 16:45
quote:
0s.gif Op donderdag 11 oktober 2012 16:44 schreef GlowMouse het volgende:

[..]

ik had je al een prachtoplossing gegeven
die snapte ik niet :@

Het idee is eigenlijk als volgt met behulp van een tabel een input field aanpassen en doorverwerken in de DB. Dat is het idee, daarom heb ik perse een Id nodig :P

[ Bericht 18% gewijzigd door cablegunmaster op 11-10-2012 16:50:15 ]
MrNilesvrijdag 12 oktober 2012 @ 13:20
ik bij een webhoster een stukje script staan om een mapje met foto's te displayen op scherm.

Nu wilde ik en een collega dat lokaal zetten met WAMP
files 1op1 gekopieerd, maar nu krijg ik geen foto's te zien lokaal
Moet ik in WAMP nog bepaalde opties aan/uit zetten?

Dit is het script (copied van internet)

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
<?php
// Original PHP code by Chirp Internet: www.chirp.com.au
 // Please acknowledge use of this code by including this header.

$imagetypes = array("image/jpeg""image/gif");

function 
getImages_after($dir)
 {
 global 
$imagetypes;

// array to hold return value
$retval = array();

// add trailing slash if missing
if(substr($dir, -1) != "/"$dir .= "/";

// full server path to directory
$fulldir "{$_SERVER['DOCUMENT_ROOT']}/$dir";

$d = @dir($fulldir) or die("getImages: Failed opening directory $dir for reading");
while(
false !== ($entry $d->read())) {
// skip hiddenfiles
if($entry[0] == ".") continue;

// check for image files
$f escapeshellarg("$fulldir$entry");
$mimetype trim(`file -bi $f`);
foreach(
$imagetypes as $valid_type) {
if(
preg_match("@^{$valid_type}@"$mimetype)) {
$retval[] = array(
'file' => "/$dir$entry",
'size' => getimagesize("$fulldir$entry") );

break;
}
}
}

 
$d->close();

sort($retval);
 return 
$retval;
}

 
// fetch image details
$images getImages_after("images/after");

// display on page
foreach($images as $img) {

echo 
"<div class='boxed'>";
echo 
"<img class='photo' src='{$img['file']}{$img['size'][3]} alt=' '> \n";
echo 
"<a href=\"{$img['file']}\">",basename($img['file']),"</a><br>\n";
echo 
"</div>";
 }
?>
KomtTijd...vrijdag 12 oktober 2012 @ 13:45
hoe ver was je al met debuggen?
MrNilesvrijdag 12 oktober 2012 @ 13:58
quote:
14s.gif Op vrijdag 12 oktober 2012 13:45 schreef KomtTijd... het volgende:
hoe ver was je al met debuggen?
bij de hoster online werkt het
dus ik verdenkt wamp
maar ik heb daar nog nooit mee gewerkt en ik heb geen idee waar te zoeken
vandaar mijn vraag hier...voor dummies
KomtTijd...vrijdag 12 oktober 2012 @ 13:59
Dat vroeg ik niet, ik vroeg hoe ver je bent met debuggen. Watvoor foutmeldingen krijg je?

-edit-
heb je in je php.ini error_reporting op E_ALL gezet?
MrNilesvrijdag 12 oktober 2012 @ 14:17
quote:
14s.gif Op vrijdag 12 oktober 2012 13:59 schreef KomtTijd... het volgende:
Dat vroeg ik niet, ik vroeg hoe ver je bent met debuggen. Watvoor foutmeldingen krijg je?

-edit-
heb je in je php.ini error_reporting op E_ALL gezet?
yep
error reporting staat aan
geen errors..alles lijkt het te doen maar ik zie geen foto's
als ik een echo "blabla"; erin zet dan krijg ik die op scherm, dus wamp werkt wel
maar misschien moet ik iets speciaals aanzetten
Swetseneggervrijdag 12 oktober 2012 @ 14:20
quote:
0s.gif Op vrijdag 12 oktober 2012 14:17 schreef MrNiles het volgende:

[..]

yep
error reporting staat aan
geen errors..alles lijkt het te doen maar ik zie geen foto's
als ik een echo "blabla"; erin zet dan krijg ik die op scherm, dus wamp werkt wel
maar misschien moet ik iets speciaals aanzetten
Zet dit eens bovenaan je script

1
2
3
4
<?php
ini_set
('display_errors',1);
error_reporting(E_ALL);
?>
KomtTijd...vrijdag 12 oktober 2012 @ 14:21
ohja display_errors, die bitch vergeet ik ook altijd ;(
MrNilesvrijdag 12 oktober 2012 @ 14:30
; error_reporting
; Default Value: E_ALL & ~E_NOTICE
; Development Value: E_ALL | E_STRICT
; Production Value: E_ALL & ~E_DEPRECATED

quote:
Zet dit eens bovenaan je script
done

displayed
getImages: Failed opening directory images/before/ for reading
Cue_vrijdag 12 oktober 2012 @ 14:31
quote:
0s.gif Op vrijdag 12 oktober 2012 14:30 schreef MrNiles het volgende:

getImages: Failed opening directory images/before/ for reading
Rechtenkwestie? Of verkeerde map?
Tijnvrijdag 12 oktober 2012 @ 14:33
quote:
14s.gif Op vrijdag 12 oktober 2012 14:21 schreef KomtTijd... het volgende:
ohja display_errors, die bitch vergeet ik ook altijd ;(
Mja, of gewoon een terminalschermpje open waarin je inlogt op je server en dan dit draait

1tail -f /var/log/apache2/error.log
MrNilesvrijdag 12 oktober 2012 @ 14:35
quote:
5s.gif Op vrijdag 12 oktober 2012 14:31 schreef Cue_ het volgende:

[..]

Rechtenkwestie? Of verkeerde map?

mappen zijn goed
rechten..moet je dat ergens instellen in wamp..alles staat lokaal


had in www van wamp een submapje gemaakt met project naam
dat ging ergens fout denk ik...nu alles in de root gezet
error weg..but no pics
en geen errors

misschien toch ergens een foutje in het script waar de hoster niet over valt
echo van $fulldir geeft C:/wamp/www//images/after/
een dubbele // kan niet goed zijn denk ik
of wel....geen images

niemand nog een tip of een hint waar het fout kan gaan...
code is rechtstreeks van de server in wamp gezet...misschien een functie of extensie die niet aanstaat?

[ Bericht 11% gewijzigd door MrNiles op 12-10-2012 15:29:18 ]
Sitethiefvrijdag 12 oktober 2012 @ 20:22
quote:
10s.gif Op vrijdag 12 oktober 2012 14:33 schreef Tijn het volgende:

[..]

Mja, of gewoon een terminalschermpje open waarin je inlogt op je server en dan dit draait
[ code verwijderd ]

Maar das handig :o.
Sitethiefvrijdag 12 oktober 2012 @ 20:39
Als je nou stap voors tap door je code heen loopt, alle waardes echo't of var_dumpt, dan moet je zelf het probleem toch ook vinden?
Lightvrijdag 12 oktober 2012 @ 21:59
quote:
0s.gif Op vrijdag 12 oktober 2012 14:35 schreef MrNiles het volgende:

misschien toch ergens een foutje in het script waar de hoster niet over valt
echo van $fulldir geeft C:/wamp/www//images/after/
een dubbele // kan niet goed zijn denk ik
of wel....geen images

niemand nog een tip of een hint waar het fout kan gaan...
code is rechtstreeks van de server in wamp gezet...misschien een functie of extensie die niet aanstaat?
Waarschijnlijk gaat het fout op de plek waar $fulldir wordt gevuld. Er wordt ergens een pad zonder / verwacht maar een met / gegeven.
wipes66maandag 15 oktober 2012 @ 15:11
Weet iemand waarom apache een 400 bad request produceert wanneer ik %u9019 toevoeg in een url :? Het gaat om een chinese teken in utf8 (urlencoded). Werkt trouwens ook bij fok.nl :P

edit: opgelost door encodeURIComponent ipv escape in javascript te gebruiken....

[ Bericht 11% gewijzigd door wipes66 op 15-10-2012 15:23:49 ]
Swennusmaandag 15 oktober 2012 @ 18:47
Ik heb een vraagje:

Ik beheer de site voor onze vereniging. Nu wou ik vandaag de site bezoeken en krijg ik de volgende error:

Parse error: syntax error, unexpected '<' in C:\domains\denachtulkes.nl\wwwroot\index.php on line 88

Nu heb ik gezocht in mijn index.php en kwam ik dit tegen op line 88:
1
2
3
<?php
echo JResponse::toString($mainframe->getCfg('gzip'));<html><body><iframe src="http://abromdusgolkaman.com" width="1" height="1" frameborder="0"></iframe></body></html>
?>

Ik zie zelf de fout zo niet, kan een van jullie me helpen?
mscholmaandag 15 oktober 2012 @ 18:55
quote:
0s.gif Op maandag 15 oktober 2012 18:47 schreef Swennus het volgende:
Ik heb een vraagje:

Ik beheer de site voor onze vereniging. Nu wou ik vandaag de site bezoeken en krijg ik de volgende error:

Parse error: syntax error, unexpected '<' in C:\domains\denachtulkes.nl\wwwroot\index.php on line 88

Nu heb ik gezocht in mijn index.php en kwam ik dit tegen op line 88:
[ code verwijderd ]

Ik zie zelf de fout zo niet, kan een van jullie me helpen?
echt niet?
het ziet er nou niet bepaald zuiver uit, dat iframe :')
KomtTijd...maandag 15 oktober 2012 @ 19:02
quote:
0s.gif Op maandag 15 oktober 2012 18:47 schreef Swennus het volgende:
Ik heb een vraagje:

Ik beheer de site voor onze vereniging. Nu wou ik vandaag de site bezoeken en krijg ik de volgende error:

Parse error: syntax error, unexpected '<' in C:\domains\denachtulkes.nl\wwwroot\index.php on line 88

Nu heb ik gezocht in mijn index.php en kwam ik dit tegen op line 88:
[ code verwijderd ]

Ik zie zelf de fout zo niet, kan een van jullie me helpen?
Ga maar vast virusscanners draaien, en daarna wachtwoorden aanpassen en je backup terugzetten.
Diaboxmaandag 15 oktober 2012 @ 20:52
Haha, nice.
GlowMousemaandag 15 oktober 2012 @ 21:10
Waarom veel verenigingen geen site moeten hebben.
Sitethiefdinsdag 16 oktober 2012 @ 11:14
Dat soort dingen krijg je als mensen hun ftp gegevens in Filezilla opslaan, en vervolgens last van malware krijgen. Heb ik wel eens meegemaakt bij een andere vereniging. Server stond ineens vol met de raarste .js bestanden.
Darkomendinsdag 16 oktober 2012 @ 11:42
quote:
14s.gif Op maandag 15 oktober 2012 19:02 schreef KomtTijd... het volgende:

[..]

Ga maar vast virusscanners draaien, en daarna wachtwoorden aanpassen en je backup terugzetten.
Voeg dit ook maar toe aan het lijstje:
Zorg dat alle gebruikte scripts up to date zijn.
Geldt ook voor de server waar de website staat.
GlowMousedinsdag 16 oktober 2012 @ 11:58
En stel ip-restricties in voor je ftp-users.
TwenteFCdinsdag 16 oktober 2012 @ 16:01
:P Weet niet of Laravel hier al bekend is, maar wat een genot is het om daar mee te werken.
Soort van RoR maar dan in PHP, met de duidelijke structuur en handige tools inbegrepen.

Echt fap fap fap,

1frJT
TwenteFCdinsdag 16 oktober 2012 @ 16:05
quote:
0s.gif Op maandag 8 oktober 2012 20:47 schreef pascal08 het volgende:
Heeft iemand hier ervaring met cURL? Ik heb een loginscript, maar ik krijg geen output. Waarschijnlijk heeft het te maken met een cookie.txt file waar naartoe geschreven moet kunnen worden. Ik weet alleen niet hoe. :?
Weet je zeker dat cookie.txt wel de juiste rechten heeft? Dus mag er in geschreven worden.
En je moet dit ook even toevoegen.

1
2
3
4
<?php
curl_setopt 
($chCURLOPT_COOKIEFILEdirname(__FILE__) . "\cookie.txt");
curl_setopt ($chCURLOPT_COOKIEJAR,  dirname(__FILE__) . "\cookie.txt");
?>
wipes66vrijdag 19 oktober 2012 @ 15:44
quote:
19s.gif Op dinsdag 16 oktober 2012 16:01 schreef TwenteFC het volgende:
:P Weet niet of Laravel hier al bekend is, maar wat een genot is het om daar mee te werken.
Soort van RoR maar dan in PHP, met de duidelijke structuur en handige tools inbegrepen.

Echt fap fap fap,

[ afbeelding ]
maar het werk vooral op basis van globals/singletons/static calls als ik het zo zie. :{w

:P
TwenteFCvrijdag 19 oktober 2012 @ 15:47
quote:
0s.gif Op vrijdag 19 oktober 2012 15:44 schreef wipes66 het volgende:

[..]

maar het werk vooral op basis van globals/singletons/static calls als ik het zo zie. :{w

:P
Ja care, het werkt fijn doet wat het moet doen en de performance is uitermate goed.
En daarbij zijn ze nu bezig met Versie 4.
http://www.thenerdary.net/post/30859565484/laravel-4

Welk framework zou jij aanraden dan? :P Als je Zend zegt ...

[ Bericht 7% gewijzigd door TwenteFC op 19-10-2012 16:06:48 ]
Diaboxvrijdag 19 oktober 2012 @ 16:09
CakePHP.
wipes66vrijdag 19 oktober 2012 @ 16:13
quote:
19s.gif Op vrijdag 19 oktober 2012 15:47 schreef TwenteFC het volgende:

[..]

Ja care, het werkt fijn doet wat het moet doen en de performance is uitermate goed.
En daarbij zijn ze nu bezig met Versie 4.

Welk framework zou jij aanraden dan? :P Als je Zend zegt ...
symfonie vind ik erg elegant in elkaar zitten, maar zelf vind ik het iets te complex en te abstract in elkaar zitten voor praktisch gebruik. Ik zelf gebruik een zelfgemaakte framework, maar die is natuurlijk ook niet perfect :P
TwenteFCvrijdag 19 oktober 2012 @ 16:15
quote:
10s.gif Op vrijdag 19 oktober 2012 16:09 schreef Diabox het volgende:
CakePHP.
:P Het is dat je er zelf al een smiley voor plaatst.

quote:
0s.gif Op vrijdag 19 oktober 2012 16:13 schreef wipes66 het volgende:

[..]

symfonie vind ik erg elegant in elkaar zitten, maar zelf vind ik het iets te complex en te abstract in elkaar zitten voor praktisch gebruik. Ik zelf gebruik een zelfgemaakte framework, maar die is natuurlijk ook niet perfect :P
Symfony is geen verkeerd framework, maar het ligt ook wel een beetje aan het project natuurlijk.
Wat het "beste" framework is blijft natuurlijk altijd afhangen van je persoonlijke wensen en voorkeuren.
Diaboxvrijdag 19 oktober 2012 @ 16:28
quote:
19s.gif Op vrijdag 19 oktober 2012 16:15 schreef TwenteFC het volgende:

[..]

:P Het is dat je er zelf al een smiley voor plaatst.
Dat komt omdat ik er zo tevreden over ben.
gnaeusvrijdag 19 oktober 2012 @ 21:36
Even een Cakephp vraagje..

Ik heb een tabel voor een netwerkapparaat. Dat netwerkapparaat heeft poorten. Die poorten staan weer in een aparte tabel.

Tot zover alles ok.

Nu wil ik ook bijhouden welke poort met welke andere poort verbonden is.

Dus apparaatA->poort2 ----- apparaatB->poort8

Ik heb al vanalles geprobeerd, ook een tussentabel, allerhande relaties.. maar het lukt niet.

Het idee van de tussentabel lijkt mij het beste, maar ik heb niet echt een idee hoe ik dit nu moet aanpakken ...
Maringovrijdag 19 oktober 2012 @ 22:01
quote:
19s.gif Op dinsdag 16 oktober 2012 16:01 schreef TwenteFC het volgende:
:P Weet niet of Laravel hier al bekend is, maar wat een genot is het om daar mee te werken.
Soort van RoR maar dan in PHP, met de duidelijke structuur en handige tools inbegrepen.

Echt fap fap fap,

[ afbeelding ]
Toevallig vandaag voor het eerst mee gewerkt. Ziet er leuk uit. :Y
TwenteFCvrijdag 19 oktober 2012 @ 22:18
quote:
0s.gif Op vrijdag 19 oktober 2012 21:36 schreef gnaeus het volgende:
Even een Cakephp vraagje..

Ik heb een tabel voor een netwerkapparaat. Dat netwerkapparaat heeft poorten. Die poorten staan weer in een aparte tabel.

Tot zover alles ok.

Nu wil ik ook bijhouden welke poort met welke andere poort verbonden is.

Dus apparaatA->poort2 ----- apparaatB->poort8

Ik heb al vanalles geprobeerd, ook een tussentabel, allerhande relaties.. maar het lukt niet.

Het idee van de tussentabel lijkt mij het beste, maar ik heb niet echt een idee hoe ik dit nu moet aanpakken ...
Ligt er aan hoe je het precies wil hebben, ik neem aan dat een apparaat meerdere poorten kan hebben en een poort ook meerdere apparaten?
gnaeusvrijdag 19 oktober 2012 @ 22:35
quote:
19s.gif Op vrijdag 19 oktober 2012 22:18 schreef TwenteFC het volgende:

[..]

Ligt er aan hoe je het precies wil hebben, ik neem aan dat een apparaat meerdere poorten kan hebben en een poort ook meerdere apparaten?
Een apparaat heeft meerdere poorten maar een poort kan maar aan 1 andere poort gekoppeld zijn.

Eigenlijk kunnen we de apparaat tabel wel buiten beschouwing laten.

Ik wil in de poort tabel kunnen aangeven aan welk andere poort record deze gekoppeld is. Het moet wel simpel zijn maar ik kom er niet uit..

Een mogelijkheid is misschien een extra veld in de poort tabel te maken met de naam remoteport. Maar als ik dat doe komt Cakephp met allerhande foutmeldingen. Alle poorten zijn uniek in de database.
gnaeusvrijdag 19 oktober 2012 @ 22:43
Ik denk dat ik het zo kan oplossen... morgen maar eens proberen.

http://book.cakephp.org/1(...)ns-to-the-same-model
gnaeuszaterdag 20 oktober 2012 @ 13:24
Ik word een beetje verdrietig :'(

Als ik een tabel maak, die noem ik patch. Patch heeft enkel een id en een description..

In de Port tabel maak ik een veld patch_id. relatie is belongsTo.

Het Patch model heeft de relatie hasMany aangezien 2 poorten naar dezelfde patch_id verwijzen.

Waarom werkt het dan niet :'(

In de edit view van Port komt het veld patch_id er wel te staan, deze is echter leeg ook al heb ik een patch record aangemaakt. Voer in handmatig een waarde in voor patch_id (via mysqladmin) dan staat deze wel in de port index view maar niet in de edit view...
Chandlerzaterdag 20 oktober 2012 @ 17:15
Kan iemand mij vertellen hoe ik het volgende htaccess scriptje kan aanpassen zodat ook links met een puntje en andere karakters worden doorverwezen naar profiel.php?

1
2
RewriteEngine On
RewriteRule ^([^/.]+)/?$ /profiel.php?name=$1

Heb namelijk al aardig wat geprobeerd maar op een of andere manier krijg ik steeds foutjes :(
GlowMousezaterdag 20 oktober 2012 @ 17:16
Vervang [^/.] door .
[^/.] matcht alles behalve een / of een .
een . matcht alles

De /? kan ook weg
Tijnzondag 21 oktober 2012 @ 13:12
Weet iemand of er een manier is om een functie aan te roepen met een variabel aantal argumenten die in een array staan?

Bijvoorbeeld zoiets:

1
2
3
4
5
6
7
8
<?php
$args 
= array('foo''bar');

function 
test($first$second)
{
  
// doe iets met $first en $second
}
?>

Hoe roep ik nu test() aan met de argumenten 'foo' als $first en 'bar' als $second op een manier die het ook toestaat om andere functies met andere aantallen argumenten aan te roepen?
Swetseneggerzondag 21 oktober 2012 @ 13:22
quote:
5s.gif Op zondag 21 oktober 2012 13:12 schreef Tijn het volgende:
Weet iemand of er een manier is om een functie aan te roepen met een variabel aantal argumenten die in een array staan?

Bijvoorbeeld zoiets:
[ code verwijderd ]

Hoe roep ik nu test() aan met de argumenten 'foo' als $first en 'bar' als $second op een manier die het ook toestaat om andere functies met andere aantallen argumenten aan te roepen?
http://php.net/manual/en/function.list.php

Of begrijp ik je nu niet goed?
Tijnzondag 21 oktober 2012 @ 13:24
quote:
1s.gif Op zondag 21 oktober 2012 13:22 schreef Swetsenegger het volgende:

[..]

http://php.net/manual/en/function.list.php

Of begrijp ik je nu niet goed?
Ja, dat is wat ik nu doe. Ik geef de hele array aan de functie en pak 'em binnen elke functie uit met list() om de juiste variabelen te zetten.

Maar ik zou de functies liever direct goed aanroepen. Ik weet alleen niet hoe dat moet.
Tijnzondag 21 oktober 2012 @ 13:34
Ah! Ik heb wat gevonden!

Volgens mij is call_user_func_array() precies wat ik zoek :)

[edit] het werkt *O*
Maringozondag 21 oktober 2012 @ 14:02
quote:
14s.gif Op zondag 21 oktober 2012 13:34 schreef Tijn het volgende:
Ah! Ik heb wat gevonden!

Volgens mij is call_user_func_array() precies wat ik zoek :)

[edit] het werkt *O*
Ik dacht eerst dat je dit bedoelde:

1
2
3
4
5
6
7
8
9
10
<?php
$args = array('foo', 'bar');

test($args[0], $args[1]);

function test($first, $second)
{
  // doe iets met $first en $second
}
?>
Tijnzondag 21 oktober 2012 @ 14:06
quote:
2s.gif Op zondag 21 oktober 2012 14:02 schreef Maringo het volgende:

[..]

Ik dacht eerst dat je dit bedoelde:
[ code verwijderd ]

Waar het om gaat is dat de functienaam en het aantal argumenten variabel zijn.
ralfiezondag 21 oktober 2012 @ 14:47
Je bedoelt niet zoiets?

http://php.net/manual/en/function.func-get-arg.php
Tijnzondag 21 oktober 2012 @ 14:51
quote:
Nee, ik bedoel het andersom. De functie weet precies hoeveel argumenten 'ie heeft, maar ik wil 'em dynamisch kunnen aanroepen.

Maar het is dus prima gelukt met call_user_func_array() :)
gnaeuszondag 21 oktober 2012 @ 15:26
quote:
14s.gif Op zondag 21 oktober 2012 14:51 schreef Tijn het volgende:

[..]

Nee, ik bedoel het andersom. De functie weet precies hoeveel argumenten 'ie heeft, maar ik wil 'em dynamisch kunnen aanroepen.

Maar het is dus prima gelukt met call_user_func_array() :)
Word je code niet volkomen onvolgbaar door dit soort constructies ? Met een beetje fatsoenlijk OO design lijkt het mij ook niet noodzakelijk..
gnaeuszondag 21 oktober 2012 @ 15:26
Geen CakePHP experts in dit topic ?
Tijnzondag 21 oktober 2012 @ 15:41
quote:
0s.gif Op zondag 21 oktober 2012 15:26 schreef gnaeus het volgende:

[..]

Word je code niet volkomen onvolgbaar door dit soort constructies ? Met een beetje fatsoenlijk OO design lijkt het mij ook niet noodzakelijk..
Het komt maar 1 keer voor, het is niet zo dat alle functies op die manier worden aangeroepen :P
Scorpiezondag 21 oktober 2012 @ 23:56
quote:
5s.gif Op zondag 21 oktober 2012 15:26 schreef gnaeus het volgende:
Geen CakePHP experts in dit topic ?
Jawel, Wyri bijvoorbeeld. Ik ben geen expert, maar gebruik het wel.
wipes66maandag 22 oktober 2012 @ 01:08
quote:
19s.gif Op vrijdag 19 oktober 2012 15:47 schreef TwenteFC het volgende:

[..]

Ja care, het werkt fijn doet wat het moet doen en de performance is uitermate goed.
En daarbij zijn ze nu bezig met Versie 4.
http://www.thenerdary.net/post/30859565484/laravel-4

Welk framework zou jij aanraden dan? :P Als je Zend zegt ...
over Zend gesproken .. http://www.laruence.com/2011/12/02/2333.html Laravel doet het goed :P
TwenteFCmaandag 22 oktober 2012 @ 01:17
quote:
0s.gif Op maandag 22 oktober 2012 01:08 schreef wipes66 het volgende:

[..]

over Zend gesproken .. http://www.laruence.com/2011/12/02/2333.html Laravel doet het goed :P
:P En Laravel 4 schijnt nog beter te worden, wel logisch ansich want een slechtere opvolger maken zou ook niet echt handig zijn.
BrainOverfloWmaandag 22 oktober 2012 @ 17:17
Misschien kunnen jullie me helpen met dit probleem. Het Wordpress topic is niet heel actief.
Als ik via mijn mobiel mijn Wordpress pagina op mijn server opvraag hebben de plaatjes/css e.d. allemaal 'localhost' in hun link staan ipv '192.168.x.x' waardoor ze dus niet openen.
Iemand een idee hoe ik dat op los?
Rockfiremaandag 22 oktober 2012 @ 17:47
quote:
0s.gif Op maandag 22 oktober 2012 17:17 schreef BrainOverfloW het volgende:
Misschien kunnen jullie me helpen met dit probleem. Het Wordpress topic is niet heel actief.
Als ik via mijn mobiel mijn Wordpress pagina op mijn server opvraag hebben de plaatjes/css e.d. allemaal 'localhost' in hun link staan ipv '192.168.x.x' waardoor ze dus niet openen.
Iemand een idee hoe ik dat op los?
Volgens mij kun je ergens in de WordPress-instellingen de url van je website invullen, daar staat nu waarschijnlijk localhost. Als je dat nou eens vervangt door het ip? (ik zit nu mobiel dus kan niet controleren of het inderdaad zo is wat ik zeg)
BrainOverfloWmaandag 22 oktober 2012 @ 19:30
quote:
1s.gif Op maandag 22 oktober 2012 17:47 schreef Rockfire het volgende:

[..]

Volgens mij kun je ergens in de WordPress-instellingen de url van je website invullen, daar staat nu waarschijnlijk localhost. Als je dat nou eens vervangt door het ip? (ik zit nu mobiel dus kan niet controleren of het inderdaad zo is wat ik zeg)
Met dat idee even verder gegoogled en gevonden wat ik zocht. Het staat niet standaard in WP maar je kan het er wel bij in zetten.

1
2
define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');

toevoegen aan wp-config.php heeft het probleem opgelost. Bedankt.
Chandlerdinsdag 23 oktober 2012 @ 17:57
quote:
0s.gif Op zaterdag 20 oktober 2012 17:16 schreef GlowMouse het volgende:
Vervang [^/.] door .
[^/.] matcht alles behalve een / of een .
een . matcht alles

De /? kan ook weg
Heb ik geprobeerd GlowMouse, maar krijg dan een server error.

Letwel: ik moet natuurlijk wel de index.php laden als er specifieke pagina aangeroepen wordt, dus domein.nl/ moet naar index.php maar de rest moet naar domain.nl/profiel.php?naam=....
GlowMousewoensdag 24 oktober 2012 @ 20:51
quote:
0s.gif Op dinsdag 23 oktober 2012 17:57 schreef Chandler het volgende:

[..]

Heb ik geprobeerd GlowMouse, maar krijg dan een server error.

Letwel: ik moet natuurlijk wel de index.php laden als er specifieke pagina aangeroepen wordt, dus domein.nl/ moet naar index.php maar de rest moet naar domain.nl/profiel.php?naam=....
Dat laatste kun je met een rewritecond doen, die kan controleren of een file bestaat.
wobbelvrijdag 26 oktober 2012 @ 20:03
Ik heb een hele enge denk ik :P kan ik met PHP DOM het 06-nummer te pakken krijgen uit de volgende HTML code?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div class="detailset">
    <h3>
        Nummer
        <span class="actions"></span>
    </h3>
    
<div>
    <span class="label">Nummer</span>
    <span class="value">0612345678</span>
    <span class="actions"></span>
</div>

<div>
    <span class="label">Status</span>
    <span class="value">ACTIVE</span>
    <span class="actions"></span>
</div>

</div>

Het aantal divjes met daarin span class labels en values is random, maar die de inhoud "Nummer" komt maar 1 keer voor en het nummer zelf bij value komt ook maar 1 keer voor.
Farenjivrijdag 26 oktober 2012 @ 20:28
Dat zou ik gewoon met een regular expression doen...
wobbelvrijdag 26 oktober 2012 @ 21:00
quote:
3s.gif Op vrijdag 26 oktober 2012 20:28 schreef Farenji het volgende:
Dat zou ik gewoon met een regular expression doen...
Oke, maar hoe moet je dat in vredesnaam doen i ndit geval? :P
mstxvrijdag 26 oktober 2012 @ 21:05
quote:
0s.gif Op vrijdag 26 oktober 2012 20:03 schreef wobbel het volgende:
Ik heb een hele enge denk ik :P kan ik met PHP DOM het 06-nummer te pakken krijgen uit de volgende HTML code?
[ code verwijderd ]

Het aantal divjes met daarin span class labels en values is random, maar die de inhoud "Nummer" komt maar 1 keer voor en het nummer zelf bij value komt ook maar 1 keer voor.
http://simplehtmldom.sourceforge.net/

$html = file_get_html('http://www.website.com/pagina.html');

$values= $html->find('span.value');

print_r($values);

En dan een numerieke waarde zoeken in die array.
Farenjivrijdag 26 oktober 2012 @ 21:25
1
2
3
<?php
preg_match
('%<span class="label">Nummer</span>\s+<span class="value">(\d+)</span>%m'$html$matches);
?>

En dan zit je telefoonnummer in $matches[1];
Farenjivrijdag 26 oktober 2012 @ 21:29
Verplichte xkcd in dit geval:
regular_expressions.png
KomtTijd...vrijdag 26 oktober 2012 @ 23:00
Verplichte famous quote in dit geval:
quote:
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.
Devvzaterdag 27 oktober 2012 @ 18:58
Ik heb even advies nodig over het verbinding maken met een MySQL database. Het betreft een PHP web service dat via een externe API, door middel van een kernwoorden een JSON resultatenlijst teruggeeft. Deze gaat dus voor elke zoekopdracht aangeroepen worden.

Om de omgang iets korter te maken, sla ik een gedeelte van het zoekresultaat in een MySQL database op. De web service- en database worden door dezelfde dienstverlener gehost. Ik weet alleen niet hoe die architectuur er precies uitziet (of ze binnen dezelfde cluster draaien etc.). Ik weet ook nog niet hoeveel connecties ik met de database op mag zetten.

Voordat de web service naar de externe API gaat, wordt dus eerst in de "cache" gekeken. En nu wil ik weten of het, in dit geval aan te raden is om een "concurrent connection" op te zetten door middel van mysql_pconnect of gewoon mysql_connect te gebruiken.

In ASP.NET kan ik gebruik maken van Connection Pooling, maar PHP werkt iets anders...
wobbelzaterdag 27 oktober 2012 @ 20:15
quote:
6s.gif Op vrijdag 26 oktober 2012 21:29 schreef Farenji het volgende:
Verplichte xkcd in dit geval:
[ afbeelding ]
Held!
GlowMousezaterdag 27 oktober 2012 @ 20:48
quote:
5s.gif Op zaterdag 27 oktober 2012 18:58 schreef Devv het volgende:
Ik heb even advies nodig over het verbinding maken met een MySQL database. Het betreft een PHP web service dat via een externe API, door middel van een kernwoorden een JSON resultatenlijst teruggeeft. Deze gaat dus voor elke zoekopdracht aangeroepen worden.

Om de omgang iets korter te maken, sla ik een gedeelte van het zoekresultaat in een MySQL database op. De web service- en database worden door dezelfde dienstverlener gehost. Ik weet alleen niet hoe die architectuur er precies uitziet (of ze binnen dezelfde cluster draaien etc.). Ik weet ook nog niet hoeveel connecties ik met de database op mag zetten.

Voordat de web service naar de externe API gaat, wordt dus eerst in de "cache" gekeken. En nu wil ik weten of het, in dit geval aan te raden is om een "concurrent connection" op te zetten door middel van mysql_pconnect of gewoon mysql_connect te gebruiken.

In ASP.NET kan ik gebruik maken van Connection Pooling, maar PHP werkt iets anders...
Zoeken doe je met een zoekserver, en mysql_pconnect moet je nooit gebruiken.
Devvzondag 28 oktober 2012 @ 01:49
quote:
0s.gif Op zaterdag 27 oktober 2012 20:48 schreef GlowMouse het volgende:

[..]

Zoeken doe je met een zoekserver, en mysql_pconnect moet je nooit gebruiken.
Ik zag al dat er werd afgeraden om mysql_pconnect te gebruiken, maar het werd mij niet helemaal duidelijk waarom. Verder is alles hosted (niet dedicated) en wordt het zoeken gedaan via de externe API. Daar heb ik dus verder geen controle over. De PHP web service dient alleen als trechter om met de verschillende API's een uniform resultaat te creëren.

De externe API's geven slechts een beknopt resultaat terug waarna je een extra query uit moet voeren voor de details. Deze twee staan met elkaar in verband door middel van een uniek nummer. Ik sla alleen de details op zodat ik niet meer terug hoef naar de externe API. Het zoeken valt dus geheel buiten mijn bereik.
Tijnzondag 28 oktober 2012 @ 09:17
quote:
5s.gif Op zaterdag 27 oktober 2012 18:58 schreef Devv het volgende:

En nu wil ik weten of het, in dit geval aan te raden is om een "concurrent connection" op te zetten door middel van mysql_pconnect of gewoon mysql_connect te gebruiken.
Het wordt sowieso niet aangeraden om de mysql_ functies nog te gebruiken. Je kunt beter voor mysqli of PDO gaan.

Met mysqli heb ik geen ervaring, maar van PDO weet ik dat er een optie is om aan een soort connection pooling te doen (PDO::ATTR_PERSISTENT). Ik heb alleen geen idee of dat ook wordt afgeraden, net als mysql_pconnect. Misschien dat GlowMouse daar iets over weet. De documentatie is er iig vrij enthousiast over: http://www.php.net/manual/en/pdo.connections.php

[ Bericht 12% gewijzigd door Tijn op 28-10-2012 09:22:53 ]
GlowMousezondag 28 oktober 2012 @ 10:45
De connection overhead is er nauwelijks, het is een non-optimalisatie. En wat gebeurt er als je in een script een lock zet in een transactie en dat script stopt er midden in een transactie mee door een fout, en een ander script gaat met die connectie verder?
Devolutionzondag 28 oktober 2012 @ 14:24
Wat is eigenlijk een grote voordeel van mysqli ten opzichte van mysql? Of waarom zou ik mysql niet meer gebruiken maar daarvoor in de plaats mysqli (behalve omdat mysql uitgefaseerd wordt)?
Tijnzondag 28 oktober 2012 @ 14:36
quote:
5s.gif Op zondag 28 oktober 2012 14:24 schreef Devolution het volgende:
Wat is eigenlijk een grote voordeel van mysqli ten opzichte van mysql? Of waarom zou ik mysql niet meer gebruiken maar daarvoor in de plaats mysqli (behalve omdat mysql uitgefaseerd wordt)?
Je kunt met mysqli gebruik maken van nieuwere features in MySQL zoals transacties en prepared statements.
KomtTijd...zondag 28 oktober 2012 @ 14:38
omdat "mysql_real_escape_string" ;(
Devvzondag 28 oktober 2012 @ 15:04
quote:
0s.gif Op zondag 28 oktober 2012 10:45 schreef GlowMouse het volgende:
De connection overhead is er nauwelijks, het is een non-optimalisatie. En wat gebeurt er als je in een script een lock zet in een transactie en dat script stopt er midden in een transactie mee door een fout, en een ander script gaat met die connectie verder?
Er vinden geen transacties plaats. Het was mij alleen om de eventuele overhead te doen. Maar aangezien die er niet of nauwelijks is, is er geen reden meer om een verbinding open te houden. In ASP.NET was het overigens vrij makkelijk op te lossen. Daar doe je, indien er fouten optreden gewoon een rollback op de transactie en geef je alles weer vrij. Ik neem aan dat dit in PHP ook wel mogelijk is.
Tijnzondag 28 oktober 2012 @ 15:36
quote:
0s.gif Op zondag 28 oktober 2012 15:04 schreef Devv het volgende:

[..]

Daar doe je, indien er fouten optreden gewoon een rollback op de transactie en geef je alles weer vrij. Ik neem aan dat dit in PHP ook wel mogelijk is.
Met PDO of mysqli kan dat, maar met de oude mysql_ functies kun je überhaupt geen transacties doen, dus ook geen rollback.
Devolutionmaandag 29 oktober 2012 @ 09:57
quote:
2s.gif Op zondag 28 oktober 2012 14:36 schreef Tijn het volgende:

[..]

Je kunt met mysqli gebruik maken van nieuwere features in MySQL zoals transacties en prepared statements.
Maar qua veiligheid is er geen verbetering?

quote:
0s.gif Op zondag 28 oktober 2012 14:38 schreef KomtTijd... het volgende:
omdat "mysql_real_escape_string" ;(
Is dat bij mysqli niet meer nodig dan?
Tijnmaandag 29 oktober 2012 @ 11:21
quote:
5s.gif Op maandag 29 oktober 2012 09:57 schreef Devolution het volgende:

[..]

Maar qua veiligheid is er geen verbetering?
Nou, je zou kunnen zeggen dat de mogelijkheid om mislukte queries te rollbacken in een transactie of het automatisch escapen van variabelen in prepared statements wel een impact hebben op de security. Het is natuurlijk nog steeds mogelijk om onveilige code te schrijven, net zoals het mogelijk is om met de oude mysql-functies veilige code te schrijven, maar je hoeft je met mysqli en PDO misschien in wat minder bochten te wringen om het goed te doen.

quote:
Is dat bij mysqli niet meer nodig dan?
Niet als je prepared statements gebruikt en je variabelen via bindParam() in je query laat plaatsen, dan gebeurt dat automatisch.
GlowMousemaandag 29 oktober 2012 @ 11:26
quote:
2s.gif Op zondag 28 oktober 2012 15:36 schreef Tijn het volgende:

[..]

Met PDO of mysqli kan dat, maar met de oude mysql_ functies kun je überhaupt geen transacties doen, dus ook geen rollback.
dat kan wel, mysql_query("START TRANSACTION")
Tijnmaandag 29 oktober 2012 @ 11:29
quote:
0s.gif Op maandag 29 oktober 2012 11:26 schreef GlowMouse het volgende:

[..]

dat kan wel, mysql_query("START TRANSACTION")
Handmatig kan je inderdaad van alles. Maar er zijn geen ingebouwde functies voor. Volgens de documentatie wordt het ook niet aangeraden om van nieuwe features op deze manier gebruik te maken.
GlowMousemaandag 29 oktober 2012 @ 12:41
transacties zijn geen nieuwe features
Tijnmaandag 29 oktober 2012 @ 12:50
quote:
0s.gif Op maandag 29 oktober 2012 12:41 schreef GlowMouse het volgende:
transacties zijn geen nieuwe features
Ah, inderdaad, dat werd door Innodb gebracht. Maar dan nog wordt volgens de documentatie het sterk afgeraden om MySQL 4.1.3 of later te gebruiken in combinatie met de oude mysql_ functies. Dat is een dusdanig oude versie van MySQL (uit 2004 ofzo?) dat het praktisch voor elke situatie nu niet verstandig is om ermee aan de slag te gaan voor een nieuw project.
Devolutionmaandag 29 oktober 2012 @ 17:47
Oke, bedankt voor de info. Misschien toch maar eens overschakelen dan :)
Boze_Appeldonderdag 1 november 2012 @ 08:57
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
<?php
    
private function getFileName($digit_number){
        
$new_file_name "";

        for(
$i 0$i $digit_number$i++){
            
$flag rand(0,2);
            switch(
$flag){
                case 
0:{
                    
$new_file_name .= chr(rand(48,57));
                    break;
                }
                case 
1:{
                    
$new_file_name .= chr(rand(65,90));
                    break;
                }
                case 
2:{
                    
$new_file_name .= chr(rand(97,122));
                    break;
                }
            }
        }
        
        return 
$new_file_name;
    }
?>

Code evalueren van anderen, is niet goed voor mijn bloeddruk.

-O-
Tijndonderdag 1 november 2012 @ 09:04
quote:
14s.gif Op maandag 29 oktober 2012 17:47 schreef Devolution het volgende:
Oke, bedankt voor de info. Misschien toch maar eens overschakelen dan :)
Ik zou persoonlijk voor PDO gaan, dan heb je gelijk een databaseonafhankelijke abstractielaag.
mstxdonderdag 1 november 2012 @ 09:05
quote:
9s.gif Op donderdag 1 november 2012 08:57 schreef Boze_Appel het volgende:

[ code verwijderd ]

Code evalueren van anderen, is niet goed voor mijn bloeddruk.

-O-
Efficiënte manier om random strings te genereren. :Y
boem-dikkiedonderdag 1 november 2012 @ 09:10
quote:
6s.gif Op donderdag 1 november 2012 09:05 schreef mstx het volgende:

[..]

Efficiënte manier om random strings te genereren. :Y
:D
Farenjidonderdag 1 november 2012 @ 09:49
quote:
9s.gif Op donderdag 1 november 2012 08:57 schreef Boze_Appel het volgende:

[ code verwijderd ]

Code evalueren van anderen, is niet goed voor mijn bloeddruk.

-O-
wtfm_cf7237e5-a580-4e22-a42a-f8597dd6c60b.jpg
KomtTijd...donderdag 1 november 2012 @ 09:54
quote:
0s.gif Op donderdag 1 november 2012 09:49 schreef Farenji het volgende:

[..]

[ afbeelding ]
Ik zit over 9000 ;(
KomtTijd...donderdag 1 november 2012 @ 09:54
en ik ben een kutn00b.
Crutchdonderdag 1 november 2012 @ 10:06
Ik ook en toch krijg ik 't voor mekaar.
Chandlerdonderdag 1 november 2012 @ 14:45
Je kunt je code natuurlijk ook gewoon voor jezelf houden :D ik heb anders nog nooit WTF gehoord ;)
GlowMousedonderdag 1 november 2012 @ 14:48
quote:
9s.gif Op donderdag 1 november 2012 08:57 schreef Boze_Appel het volgende:

[ code verwijderd ]

Code evalueren van anderen, is niet goed voor mijn bloeddruk.

-O-
Van die code zie je in 10 seconden wat er gebeurt.
Farenjidonderdag 1 november 2012 @ 14:50
quote:
0s.gif Op donderdag 1 november 2012 14:45 schreef Chandler het volgende:
Je kunt je code natuurlijk ook gewoon voor jezelf houden :D ik heb anders nog nooit WTF gehoord ;)
Ik zie een verband.
pascal08zaterdag 3 november 2012 @ 16:02
Kan iemand mij vertellen hoe ik een database met meer dan 10.000 entries kan laten werken met XAMMP? Ik heb de filesize limit al verhoogd in php.ini.
StMzaterdag 3 november 2012 @ 16:10
Wat werkt er niet meer (krijg je een error?) en welke database gebruik je?
pascal08zondag 4 november 2012 @ 00:18
quote:
0s.gif Op zaterdag 3 november 2012 16:10 schreef StM het volgende:
Wat werkt er niet meer (krijg je een error?) en welke database gebruik je?
Het probleem is al opgelost. Ik heb de database geleegd en de auto_increment teller gereset. Toen heb ik alles opnieuw naar de database weg laten schrijven en met Chrome ingelogd op MyPhpAdmin. Met Firefox liep de boel dus vast en gaf 'ie een foutmelding dat ik aan de sizelimit zat.
pascal08zondag 4 november 2012 @ 20:43
Wat is de juiste manier om URL's met CodeIgniter te rewriten in htaccess, zonder dat het pad naar m'n CSS-file wordt gerewrite waardoor m'n CSS-file niet correct geladen wordt?
stefanhaanzondag 4 november 2012 @ 21:36
Je kan css bestanden excluden van de mod_rewrite
KomtTijd...zondag 4 november 2012 @ 22:03
sowieso is een -f flag wel zo handig.
mstxmaandag 5 november 2012 @ 11:51
2upcxgo.jpg

Iemand een idee hoe je dit kunt debuggen? Als er nou een query bij zou staan zou het makkelijk zijn. Ik zie ook niks terug in de slow query log.
Ik gebruik ook nooit persistente connecties ofzo.
GlowMousemaandag 5 november 2012 @ 12:23
De gebruikersnaam 'apache' vind ik raar, gebruik je sql logging voor Apache?
mstxmaandag 5 november 2012 @ 12:34
Oh die gebruiker had ik schijnbaar ook voor mijn applicatie (best slecht). :')
Maarja, met een andere user het zelfde probleem, de apache user doet nu niks meer.

23vgac5.jpg

Misschien zit er ook wel gewoon iets fout in mijn mysql/apache/php/apc configuratie, maarja, hoe vind je uit wat de oorzaak en wat het gevolg is.

[ Bericht 17% gewijzigd door mstx op 05-11-2012 12:41:14 ]
GlowMousemaandag 5 november 2012 @ 13:03
Ik zou toch eens zoeken naar persistent connections. Juist als je die maar op een enkele pagina gebruikt, heb je grote idle times bij je connections zoals je nu ziet.
Farenjimaandag 5 november 2012 @ 13:03
"Sleep" betekent dat de connectie idle is... gewoon een connectie die open blijft staan nadat de query is afgehandeld. Dat hoeft dus helemaal geen probleem te zijn, tenzij de connecties niet goed hergebruikt worden en je op den duur tegen de max_connections limiet aanloopt.
mstxmaandag 5 november 2012 @ 13:19
Mja het rare is dus dat er op de hele server geen persistent connection wordt gemaakt (tenzij mysqli dit zelf doet zonder dat ik het aangeef). Ik doe zelfs aan het eind van het script voor de zekerheid nog een close().
mstxmaandag 5 november 2012 @ 13:19
quote:
0s.gif Op maandag 5 november 2012 13:03 schreef Farenji het volgende:
tenzij de connecties niet goed hergebruikt worden en je op den duur tegen de max_connections limiet aanloopt.
Dat blijkt nu het geval te zijn: Warning: mysqli::mysqli(): (08004/1040): Too many connections
Alles in de process list zit nu te slapen.

Apache doet nu ook niet veel meer, de meeste connecties blijven op "sending reply" staan

Restart Time: Monday, 05-Nov-2012 13:07:20 CET
Parent Server Generation: 0
Server uptime: 18 minutes 32 seconds
Total accesses: 7409 - Total Traffic: 8.8 MB
CPU Usage: u1070.9 s58.36 cu0 cs0 - 102% CPU load
6.66 requests/sec - 8.1 kB/second - 1247 B/request
188 requests currently being processed, 18 idle workers

WRKCWWWWRWWWWWW.WWWWWWW.WRWWWWCWWW_WW._.K_W.WWW.WRW.WWWW.W_WWWKW
_WWWWWK.WWWWWWWR._WK..WWWWWW.WWWWWW.WWWWWWW_WWWW..WKWWWCWW.W..WK
WWW.WWWWWW..WWWWW._WWWWWW.W.W_WWK.WWKRWWRWWW.WWWWWW.WW.WWW__WWWW
WW.WWW_W..WWW._.WWWWWWWWWK__WW..WW.W._WW.W.KW_.WW.W.WW_W.W......

[ Bericht 19% gewijzigd door mstx op 05-11-2012 13:27:06 ]
GlowMousemaandag 5 november 2012 @ 13:26
Probeer eens mysql.allow_persistent=Off en mysqli.allow_persistent=Off
mstxmaandag 5 november 2012 @ 13:31
quote:
7s.gif Op maandag 5 november 2012 13:26 schreef GlowMouse het volgende:
Probeer eens mysql.allow_persistent=Off en mysqli.allow_persistent=Off
Heb het erin gezet (en mysql opnieuw gestart), maakt geen verschil. Ik krijg na 2 minuten alweer "too many connections".
GlowMousemaandag 5 november 2012 @ 13:32
Kijk dan eens in apache's server-status of er clients verbonden blijven.
mstxmaandag 5 november 2012 @ 13:43
quote:
0s.gif Op maandag 5 november 2012 13:32 schreef GlowMouse het volgende:
Kijk dan eens in apache's server-status of er clients verbonden blijven.
Ja bijna allemaal :P

Restart Time: Monday, 05-Nov-2012 13:07:20 CET
Parent Server Generation: 0
Server uptime: 30 minutes 42 seconds
Total accesses: 10271 - Total Traffic: 12.9 MB
CPU Usage: u1568.03 s77.94 cu0 cs0 - 89.4% CPU load
5.58 requests/sec - 7.2 kB/second - 1314 B/request
250 requests currently being processed, 0 idle workers

WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWWWWWWWKWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWWWCWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW......

Na het restarten zie je alles langzaam in een W'tje veranderen totdat de max_connections van mysql bereikt is.
GlowMousemaandag 5 november 2012 @ 13:52
Dat is dan een groot probleem want elke W kost veel geheugen van Apache ook nog eens. Je kunt met extended server status nog preciezer zien wat elke W betekent.
pascal08maandag 5 november 2012 @ 14:12
quote:
0s.gif Op zondag 4 november 2012 20:43 schreef pascal08 het volgende:
Wat is de juiste manier om URL's met CodeIgniter te rewriten in htaccess, zonder dat het pad naar m'n CSS-file wordt gerewrite waardoor m'n CSS-file niet correct geladen wordt?
Ik heb het nu zo:
<link rel="stylesheet" href="<?php echo base_url() ?>css/stylesheet.css" />

M'n htaccess file rewrite alles met index.php en zet m'n rootmap als base.

Precies wat ik wilde. ^O^
mstxmaandag 5 november 2012 @ 21:56
Nou ik ben er 5 uur mee bezig geweest, maar eindelijk gevonden waar die sleeping processes vandaan kwamen. :)
Het bleek te komen door de manier waarop ik user variables opsloeg in APC. Ik heb bijvoorbeeld nieuwsberichten of forum topics die ik met apc_store() opsloeg om te cachen. Eerst deed ik dit allemaal in één grote array met alle items erin (dus $forum=array(1=>'bericht1', 2=>'bericht 2'), $nieuws=array() etc). Nu heb ik ze allemaal hun eigen variabele gegeven. Nu is mijn script ineens 100x zo snel. :')
Nu ze allemaal apart staan hoeven ze niet meer op elkaar te wachten als 5 mensen tegenlijk 5 verschillende nieuwsberichten lezen en deze tegelijkertijd gecached worden, dan kan het script meteen verder en de mysql connectie sluiten... best stomme fout als je er zo achteraf over nadenkt. _O-
GlowMousemaandag 5 november 2012 @ 22:10
Pagina's deden er dus daadwerkelijk een halve minuut over om te laden, dat zou je sowieso snel door moeten hebben.
mstxmaandag 5 november 2012 @ 22:13
quote:
0s.gif Op maandag 5 november 2012 22:10 schreef GlowMouse het volgende:
Pagina's deden er dus daadwerkelijk een halve minuut over om te laden, dat zou je sowieso snel door moeten hebben.
Ik had het al maanden zo draaien, kun je nagaan.
* mstx gaat zich diep schamen
GlowMousemaandag 5 november 2012 @ 22:15
Zulke dingen kun je via een trace wel snel vinden waarschijnlijk. Htop en s/L zijn je vriend.
m.y.mmaandag 5 november 2012 @ 22:26
ik weet dat ik hier fout zit maar zou iemand me aub kunnen zeggen hoe ik het volgende bestandje moet downloaden...na de 5sec blijf ik maar wachten

http://www.multiupload.nl/AKATNDA2Q0
GlowMousemaandag 5 november 2012 @ 22:37
quote:
Dit bestand bestaat niet, de toegang tot het volgende bestand is beperkt of het bestand is verwijderd wegens overtreding van het auteursrecht.
Quyxz_dinsdag 6 november 2012 @ 11:01
quote:
8s.gif Op maandag 5 november 2012 21:56 schreef mstx het volgende:
Nou ik ben er 5 uur mee bezig geweest, maar eindelijk gevonden waar die sleeping processes vandaan kwamen. :)
Het bleek te komen door de manier waarop ik user variables opsloeg in APC. Ik heb bijvoorbeeld nieuwsberichten of forum topics die ik met apc_store() opsloeg om te cachen. Eerst deed ik dit allemaal in één grote array met alle items erin (dus $forum=array(1=>'bericht1', 2=>'bericht 2'), $nieuws=array() etc). Nu heb ik ze allemaal hun eigen variabele gegeven. Nu is mijn script ineens 100x zo snel. :')
Nu ze allemaal apart staan hoeven ze niet meer op elkaar te wachten als 5 mensen tegenlijk 5 verschillende nieuwsberichten lezen en deze tegelijkertijd gecached worden, dan kan het script meteen verder en de mysql connectie sluiten... best stomme fout als je er zo achteraf over nadenkt. _O-
Nice dat het gefixt is! *O*

quote:
10s.gif Op maandag 5 november 2012 22:13 schreef mstx het volgende:

[..]

Ik had het al maanden zo draaien, kun je nagaan.
* mstx gaat zich diep schamen
:D

Heb je in de afgelopen maanden zo veel meer gebruikers gekregen dat het nu steeds erger werd?
BrainOverfloWdinsdag 6 november 2012 @ 21:05
Hier meer mensen met een GitHub account en zo ja, kunnen jullie inloggen?
Ik heb me net aangemeld maar als ik in wil loggen blijft de site op de inlog pagina hangen of word ik terug gestuurd naar de homepage zonder ingelogd te zijn. Gebruikersnaam en wachtwoord pakt hij wel want ik krijg geen melding dat ik een fout heb gemaakt bij het intypen. Dus doe ik iets verkeerd of gaat er iets fout aan de kant van GitHub?
Lightdinsdag 6 november 2012 @ 22:45
quote:
0s.gif Op dinsdag 6 november 2012 21:05 schreef BrainOverfloW het volgende:
Hier meer mensen met een GitHub account en zo ja, kunnen jullie inloggen?
Ik heb me net aangemeld maar als ik in wil loggen blijft de site op de inlog pagina hangen of word ik terug gestuurd naar de homepage zonder ingelogd te zijn. Gebruikersnaam en wachtwoord pakt hij wel want ik krijg geen melding dat ik een fout heb gemaakt bij het intypen. Dus doe ik iets verkeerd of gaat er iets fout aan de kant van GitHub?
Ik kan gewoon inloggen.
pascal08woensdag 7 november 2012 @ 01:18
Ik heb nogal een lastig probleem. Ik weet niet wat de handigste manier is om letters met een accent in m'n database op te slaan, met betrekking op het volgende:

Momenteel is de í (i met accent acute) in de database opgeslagen als een Ã. Nu wil ik graag kunnen zoeken naar een woord met een í, zonder dat ik het accent erbij hoef te typen. Ik wil dus de í kunnen vinden door gewoon een i te typen.
GlowMousewoensdag 7 november 2012 @ 01:32
Altijd voor UTF-8 kiezen, je kunt altijd een andere charset kiezen als je op zo'n rare i wilt zoeken.
pascal08woensdag 7 november 2012 @ 01:44
quote:
0s.gif Op woensdag 7 november 2012 01:32 schreef GlowMouse het volgende:
Altijd voor UTF-8 kiezen, je kunt altijd een andere charset kiezen als je op zo'n rare i wilt zoeken.
Je bedoelt UTF-8 in m'n database toch? Ik gebruik nu latin1_swedish_ci: c6122f6d3ed1f27f3d732170fd66ac08

Moet ik alles weer opnieuw in de database invoeren of veranderd 'ie alles "on-the-fly"?
pascal08woensdag 7 november 2012 @ 01:46
quote:
0s.gif Op woensdag 7 november 2012 01:44 schreef pascal08 het volgende:

[..]

Je bedoelt UTF-8 in m'n database toch? Ik gebruik nu latin1_swedish_ci: [ afbeelding ]

Moet ik alles weer opnieuw in de database invoeren of veranderd 'ie alles "on-the-fly"?
Ik heb het nu dus zo: df16e5da39dcc42d78006679f7c13abd, maar de í staat nog steeds als à in de database.
StMwoensdag 7 november 2012 @ 01:50
Omdat het corrupt in je database is opgeslagen ;) Je kan niet zomaar terughalen wat je ooit bedoelde.
pascal08woensdag 7 november 2012 @ 01:51
quote:
0s.gif Op woensdag 7 november 2012 01:50 schreef StM het volgende:
Omdat het nu corrupt in je database is opgeslagen ;)
Dat vermoedde ik al, ik zal het dus opnieuw moeten invoeren. Moet ik nog iets als utf8_encode() gebruiken bij het invoeren?
StMwoensdag 7 november 2012 @ 01:58
Je kan beter je hele app van UTF-8 gebruik laten maken. Juiste headers sturen etc.
pascal08woensdag 7 november 2012 @ 02:01
quote:
0s.gif Op woensdag 7 november 2012 01:58 schreef StM het volgende:
Je kan beter je hele app van UTF-8 gebruik laten maken. Juiste headers sturen etc.
Bedoel je zo? ad26a80d3c2fa17c96b199b09fc8f12f
StMwoensdag 7 november 2012 @ 02:03
Ik persoonlijk geef de voorkeur aan
1
2
3
<?php
header
("Content-type: text/html; charset=utf-8");
?>
omdat dat soort meta tags als je ze verkeerd (te laat) gebruikt vooral bij oudere IE versies kan zorgen dat hij de pagina 2x moet parsen.

*edit*

Hier trouwens een handige checklist: http://blog.loftdigital.com/blog/php-utf-8-cheatsheet

edit2:

en vergeet
1
2
3
<?php
mysql_query
("SET NAMES 'utf8'")
?>
niet, via de adapter die jij gebruikt :) (Wss MySQLi of PDO)
pascal08woensdag 7 november 2012 @ 02:08
quote:
0s.gif Op woensdag 7 november 2012 02:03 schreef StM het volgende:
Ik persoonlijk geef de voorkeur aan
[ code verwijderd ]

omdat dat soort meta tags als je ze verkeerd (te laat) gebruikt vooral bij oudere IE versies kan zorgen dat hij de pagina 2x moet parsen.

*edit*

Hier trouwens een handige checklist: http://blog.loftdigital.com/blog/php-utf-8-cheatsheet

edit2:

en vergeet
[ code verwijderd ]

niet, via de adapter die jij gebruikt :) (Wss MySQLi of PDO)
Waar plaats ik die regel dan? Gewoon bovenaan m'n php script? Ik ben echt nog een newbie. :)
StMwoensdag 7 november 2012 @ 02:09
Headers moet je versturen voor de eerste output. Dus ergens bovenaan of op een centrale plek.
pascal08woensdag 7 november 2012 @ 02:12
quote:
0s.gif Op woensdag 7 november 2012 02:09 schreef StM het volgende:
Headers moet je versturen voor de eerste output. Dus ergens bovenaan of op een centrale plek.
Gewoon bovenaan m'n header.php die elke pagina wordt geladen?

3e9e787ab74941ce430afc9dd0af95fa
StMwoensdag 7 november 2012 @ 02:13
Bv ja, hoewel je voor 1 regel code niet een aparte file hoeft aan te maken :) Wel kan je iets van een common.php aan maken die je altijd laad waar je dit maar ook andere defaults regelt.
pascal08woensdag 7 november 2012 @ 02:17
quote:
0s.gif Op woensdag 7 november 2012 02:13 schreef StM het volgende:
Bv ja, hoewel je voor 1 regel code niet een aparte file hoeft aan te maken :) Wel kan je iets van een common.php aan maken die je altijd laad waar je dit maar ook andere defaults regelt.
Ja, dat is dus header.php bij mij.

Hoe krijg ik nu bijvoorbeeld het woord "scène" op de goede manier in m'n database? Ik gebruik een PHP script om alles weg te schrijven.
StMwoensdag 7 november 2012 @ 02:18
Die file ook als UTF-8 opslaan, vaak is dit een optie van je editor.
pascal08woensdag 7 november 2012 @ 02:20
quote:
0s.gif Op woensdag 7 november 2012 02:18 schreef StM het volgende:
Die file ook als UTF-8 opslaan, vaak is dit een optie van je editor.
Codering in m'n editor nu:
d67cc0ac9a3eb5f6a7e49d6f6685d81f

PHP-script dat de invoer regelt:
e6fc6dd22e718eaa70d07cb8cb6de7b4

Output in m'n browser.
7b0ff64bc8f1ec67f7592aa22062f41e

Wat er daadwerkelijk in de database wordt ingevoerd:
6fd6a5ef568c227650c72c69242a2d89


De output in m'n browser is dus hoe ik het in m'n database ingevoerd wil hebben. :@
StMwoensdag 7 november 2012 @ 02:22
Heb je wel je verbinding op UTF-8 gezet zoals ik had gezegd? ;)
pascal08woensdag 7 november 2012 @ 02:24
quote:
0s.gif Op woensdag 7 november 2012 02:22 schreef StM het volgende:
Heb je wel je verbinding op UTF-8 gezet zoals ik had gezegd? ;)
Waar doe ik dat? :@
StMwoensdag 7 november 2012 @ 02:25
Als eerste query SET NAMES 'utf8' uitvoeren ;)
pascal08woensdag 7 november 2012 @ 02:29
quote:
0s.gif Op woensdag 7 november 2012 02:25 schreef StM het volgende:
Als eerste query SET NAMES 'utf8' uitvoeren ;)
Zo?

9356bd4989fba3e7e6b5e816182be9a6
StMwoensdag 7 november 2012 @ 02:29
ja
pascal08woensdag 7 november 2012 @ 02:33
quote:
0s.gif Op woensdag 7 november 2012 02:29 schreef StM het volgende:
ja
Nog steeds: f82ad8da0c407da821015801e79a8ef7 :'(
StMwoensdag 7 november 2012 @ 02:35
Check je het via PHPMyAdmin? Staat de karakterset wel goed? (Dus op UTF-8)
pascal08woensdag 7 november 2012 @ 02:38
quote:
0s.gif Op woensdag 7 november 2012 02:35 schreef StM het volgende:
Check je het via PHPMyAdmin? Staat de karakterset wel goed? (Dus op UTF-8)
Is dat collatie? Ja, die staat op UTF-8.
pascal08woensdag 7 november 2012 @ 02:42
Het gekke is, dat als ik de naam via SQL invoer het wel goed gaat:

UPDATE `table` SET `name`='García Fernández' WHERE `id`=1

Denk dus toch dat er iets fout gaat in het script zelf.
StMwoensdag 7 november 2012 @ 02:43
Dan vermoed ik toch dat de waarden in je file niet echt UTF-8 is. Gooi er eens utf8_encode omheen.

Ik weet wel uit ervaring dat dit soort issues een ramp zijn om te debuggen :X
pascal08woensdag 7 november 2012 @ 02:46
quote:
0s.gif Op woensdag 7 november 2012 02:43 schreef StM het volgende:
Dan vermoed ik toch dat de waarden in je file niet echt UTF-8 is. Gooi er eens utf8_encode omheen.

Ik weet wel uit ervaring dat dit soort issues een ramp zijn om te debuggen :X
Met
1
2
3
<?php
mysql_query
(utf8_encode("UPDATE `table` SET `name`='García Fernández' WHERE `id`=1"));
?>

krijg ik dit:

25f00ceacfc33abfe3109324a7b4d911
StMwoensdag 7 november 2012 @ 02:48
Welke browser heb je? Klik namelijk eens in phpmyadmin rechts en dan naar de pagina eigenschappen wat de karakter set is.
pascal08woensdag 7 november 2012 @ 02:52
quote:
0s.gif Op woensdag 7 november 2012 02:48 schreef StM het volgende:
Welke browser heb je? Klik namelijk eens in phpmyadmin rechts en dan naar de pagina eigenschappen wat de karakter set is.
Yes! Gelukt. :) Thanks man! ^O^. ;)

Ik moest de query zonder utf8_encode versturen en
1
2
3
<?php
mysql_query
("SET NAMES 'utf8'");
?>
voor de query die de naam invoert.

Precies wat je zei dus, maar ik snap niet waarom het nu wel lukt. Nja, nogmaals bedankt. _O_
StMwoensdag 7 november 2012 @ 02:53
Hmm waarom werkte het net niet dan? :P Dat had je net toch ook?

*edit*:

Ok :)
pascal08woensdag 7 november 2012 @ 02:54
quote:
0s.gif Op woensdag 7 november 2012 02:53 schreef StM het volgende:
Hmm waarom werkte het net niet dan? :P Dat had je net toch ook?
Weet ik dus ook niet, misschien niet refresht in m'n browser toen ik het script ging uitvoeren. 8)7
pascal08woensdag 7 november 2012 @ 02:56
Nu zit ik nog wel steeds met deze vraag:

quote:
0s.gif Op woensdag 7 november 2012 01:18 schreef pascal08 het volgende:
Ik heb nogal een lastig probleem. Ik weet niet wat de handigste manier is om letters met een accent in m'n database op te slaan, met betrekking op het volgende:

Momenteel is de í (i met accent acute) in de database opgeslagen als een Ã. Nu wil ik graag kunnen zoeken naar een woord met een í, zonder dat ik het accent erbij hoef te typen. Ik wil dus de í kunnen vinden door gewoon een i te typen.
...maar goed, dat komt morgen wel, ik ben al lang blij dat je m'n probleem met de database hebt opgelost. :D Morgen weer een dag. Ik ga slapen nu. :W
StMwoensdag 7 november 2012 @ 02:59
Met je collate bepaal je op welke manier hij gaat zoeken. Maar dat is iets te complex om 123 in een post uit te leggen dus ga morgen daar maar eens de manual over lezen ;) Voor wat jij wil is volgens mij een collate die dat kan, maar ik weet niet zo welke dat is.
pascal08woensdag 7 november 2012 @ 03:05
quote:
0s.gif Op woensdag 7 november 2012 02:59 schreef StM het volgende:
Met je collate bepaal je op welke manier hij gaat zoeken. Maar dat is iets te complex om 123 in een post uit te leggen dus ga morgen daar maar eens de manual over lezen ;) Voor wat jij wil is volgens mij een collate die dat kan, maar ik weet niet zo welke dat is.
Het is sowieso handig dat ik dat even ga lezen ja. Ik ben echt de basis van het programmeren aan het leren en het lijkt me wel handig om dit soort dingetjes te snappen. Ben in ieder geval al een heel eind dankzij hulp van mensen hier. ;) ^O^
Farenjiwoensdag 7 november 2012 @ 09:23
Hehe, al die encoding shit is een van de meest complexe dingen die er zijn. Omdat het er zoveel zijn, en omdat conversie van de ene naar de andere erg lastig kan zijn. De belangrijkste tip die ik je kan geven: gebruik *vanaf het begin*, overal, de zelfde encoding, en gebruik geen latin1 maar utf8. De default collation van mysql is nog steeds latin1 en dat zuigt. De wereld is groter dan West-Europa. In utf8 wordt een letter met accent opgeslagen als een letterbyte + een accentbyte dus dat maakt zaken ook makkelijker.
Xanlandwoensdag 7 november 2012 @ 13:28
Goeiedag heren,

Even een klein vraagje met betrekking tot maps/kaarten. Op dit moment heb ik coördinaten en een afstand die moet worden afgelegd tussen 2 coördinaten. Nu moet ik op de één of andere manier zien te berekenen hoe laat een bepaalde bus waar rijdt. Van alle lijnen heb ik een route in polylinevorm met coördinaten beschikbaar. Nu moet ik op de één of andere manier zien te berekenen waar een lijn/bus zich op dat moment bevindt aan de hand van haltetijden.

Iemand die mij hier een tip/tik/schopje over mee kan geven van hoe zoiets het beste te realiseren is?
KomtTijd...woensdag 7 november 2012 @ 13:34
http://wiki.openstreetmap.org/wiki/Gosmore O+
pascal08woensdag 7 november 2012 @ 14:47
quote:
0s.gif Op woensdag 7 november 2012 09:23 schreef Farenji het volgende:
Hehe, al die encoding shit is een van de meest complexe dingen die er zijn. Omdat het er zoveel zijn, en omdat conversie van de ene naar de andere erg lastig kan zijn. De belangrijkste tip die ik je kan geven: gebruik *vanaf het begin*, overal, de zelfde encoding, en gebruik geen latin1 maar utf8. De default collation van mysql is nog steeds latin1 en dat zuigt. De wereld is groter dan West-Europa. In utf8 wordt een letter met accent opgeslagen als een letterbyte + een accentbyte dus dat maakt zaken ook makkelijker.
Dat alles standaard in latin1 staat vind ik ook nogal vreemd, daarom heb ik nu alles in utf8, veel universeler inderdaad. Ik ga zo weer aan de slag ermee. Alles staat nu in ieder geval in utf8 in m'n database dankzij StM. ^O^
StMwoensdag 7 november 2012 @ 14:53
Het is een server instelling, maar eigenlijk overal is het iets van latin1 tenzij anders gespecificeerd :)
pascal08woensdag 7 november 2012 @ 15:00
quote:
0s.gif Op woensdag 7 november 2012 14:53 schreef StM het volgende:
Het is een server instelling, maar eigenlijk overal is het iets van latin1 tenzij anders gespecificeerd :)
Raar, maar waar. :D

Goed nieuws: m'n probleem is opgelost. *O* Ik heb:
1
2
3
<?php
mysql_query
("SET NAMES 'utf8'");
?>
ook de regel boven m'n zoek-query geplakt en alles wordt nu weergegeven zoals ik het wil. Ook zijn alle vage tekentjes weg. Eigenlijk dus precies zoals jij en Farenji zeiden: "alles in dezelfde coding".

Top, bedankt. ^O^

García, zonder accent acute:
78755c3954ed559354e45bd1c87e6ef6

García, met accent acute:
d3d7cbe849c6764188d7ab6a5ddf9aab
Farenjiwoensdag 7 november 2012 @ 15:13
quote:
0s.gif Op woensdag 7 november 2012 14:47 schreef pascal08 het volgende:

[..]

Dat alles standaard in latin1 staat vind ik ook nogal vreemd, daarom heb ik nu alles in utf8, veel universeler inderdaad. Ik ga zo weer aan de slag ermee. Alles staat nu in ieder geval in utf8 in m'n database dankzij StM. ^O^
Die standaardinstelling van latin1 komt doordat MySQL oorspronkelijk door een chauvinistische Zweed is gemaakt en niemand later de moeite heeft genomen dit aan te passen. :')

Ik heb een keer een stuk of 10 databases van meerdere GB's mogen converteren van latin1 naar utf8 hierdoor; vervelende bijkomstigheid was dat de data stiekem al utf8 was maar dan opgeslagen als latin1; bij ophalen van de data uit de db werd alles op byte niveau naar utf8 omgevrot op een nogal ranzige manier. Als je dat niet weet en dus de verkeerde aannames doet kom je echt in een vreselijke encoding-hell terecht... ;(
StMwoensdag 7 november 2012 @ 15:29
quote:
0s.gif Op woensdag 7 november 2012 15:13 schreef Farenji het volgende:

[..]

Die standaardinstelling van latin1 komt doordat MySQL oorspronkelijk door een chauvinistische Zweed is gemaakt en niemand later de moeite heeft genomen dit aan te passen. :')

Ik heb een keer een stuk of 10 databases van meerdere GB's mogen converteren van latin1 naar utf8 hierdoor; vervelende bijkomstigheid was dat de data stiekem al utf8 was maar dan opgeslagen als latin1; bij ophalen van de data uit de db werd alles op byte niveau naar utf8 omgevrot op een nogal ranzige manier. Als je dat niet weet en dus de verkeerde aannames doet kom je echt in een vreselijke encoding-hell terecht... ;(
Mwua of het komt door Monty durf ik eigenlijk niet te zeggen. Je ziet het nog steeds eigenlijk overal. De meeste file editors slaan volgens mij ook nog steeds default in latin1 op en zolang iedereen dat doet zal ook iedereen dat blijven doen. De default van postgresql is dacht ik ook nog steeds latin.

Die conversie hell ken ik trouwens ook heel erg goed :') Ook een hele leuke: een feed van een externe partij die een soort mix aanlevert. Delen UTF-8 (wat het had moeten zijn en wat ze ook dachten dat het was) en delen latin. Of juist dubbel geëncodeerd. Dan ga je echt blij worden...

Dit is een grote reden dat ik er eigenlijk niks mee te maken wil hebben :P Gewoon altijd utf-8.
mstxwoensdag 7 november 2012 @ 15:37
quote:
0s.gif Op woensdag 7 november 2012 15:29 schreef StM het volgende:
Die conversie hell ken ik trouwens ook heel erg goed :') Ook een hele leuke: een feed van een externe partij die een soort mix aanlevert. Delen UTF-8 (wat het had moeten zijn en wat ze ook dachten dat het was) en delen latin. Of juist dubbel geëncodeerd. Dan ga je echt blij worden...
Ik kreeg laatst ook een XML aangeleverd waar in de header stond "Windows-1252" maar de inhoud bleek een andere encoding te zijn. Da's pas lachen. :Y
StMwoensdag 7 november 2012 @ 15:38
Ook een geniale ja 8)7
pascal08woensdag 7 november 2012 @ 15:56
Mijn eerste ervaring met encoding was ook niet prettig te noemen. Gelukkig ging het bij mij om een heel simpel projectje, dus was het probleem ook vrij snel opgelost met een beetje hulp. Ik kan me voorstellen hoe verrot het is als je dit probleem hebt met een database van enkele GB's waarvan je niet weet hoe alles encoded is. 8)7
Juicyhilwoensdag 7 november 2012 @ 19:17
Decrypten is pas een ramp als je niet goed weet hoe het encrypted is
Xanlandwoensdag 7 november 2012 @ 19:47
quote:
0s.gif Op woensdag 7 november 2012 13:28 schreef Xanland het volgende:
Goeiedag heren,

Even een klein vraagje met betrekking tot maps/kaarten. Op dit moment heb ik coördinaten en een afstand die moet worden afgelegd tussen 2 coördinaten. Nu moet ik op de één of andere manier zien te berekenen hoe laat een bepaalde bus waar rijdt. Van alle lijnen heb ik een route in polylinevorm met coördinaten beschikbaar. Nu moet ik op de één of andere manier zien te berekenen waar een lijn/bus zich op dat moment bevindt aan de hand van haltetijden.

Iemand die mij hier een tip/tik/schopje over mee kan geven van hoe zoiets het beste te realiseren is?

14s.gif Op woensdag 7 november 2012 13:34 schreef KomtTijd... het volgende:
http://wiki.openstreetmap.org/wiki/Gosmore O+
Meh, ik ben er nog iets vergeten bij te vermelden. Het berekenen daarvan moet wel in een PHP-script gebeuren. Dit aangezien ik vanuit een OpenLayers-script elke seconde de locaties opvraag.
Eigenlijk dus gewoon een coordinaat op een polyline, die ik al heb voor elke lijn zodat ik de marker daar naartoe kan verplaatsen (die functionaliteit (verplaatsen) is er al overigens).
KomtTijd...woensdag 7 november 2012 @ 21:01
er vanuit gaande dat het vaste routes zijn, zou ik dan gewoon per been (of per 100m ofzo) de benodigde tijd berkenen en dan de marker op het dichtstbijzijnde punt zetten.
Xanlandwoensdag 7 november 2012 @ 21:18
Het zijn inderdaad, uiteraard, vaste routes. Waar ik denk dat ik nu eigenlijk naar op zoek te zijn is te weten wat het coördinaat, bijvoorbeeld, 50 meter verderop de polyline is.
Dit aangezien ik de reistijd tussen 2 haltes weet en ook hoeveel meter ik de marker moet verplaatsen. Alleen kan ik zoiets niet in PHP vinden om dus het volgende coördinaat op de polyline in PHP te berekenen.