abonnement Unibet Coolblue
pi_136465964


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

Succes heren met het volgende deeltje!
In theory there is no difference between theory and practice. In practice there is.
pi_136498640
Hoe maak ik in mysql een BIGINT unsigned? <-- misschien een domme vraag.
Lekker happen
  Moderator / Redactie Sport / Devops zondag 9 februari 2014 @ 12:19:18 #3
176766 crew  zoem
zoemt
pi_136498688
De ALTER TABLE syntax gebruiken?
1ALTER TABLE table MODIFY field bigint(20) unsigned NOT NULL default '0';
  zondag 9 februari 2014 @ 14:16:56 #4
187069 slacker_nl
Sicko pur sang
pi_136503658
Heeft PHP een test framework? As in, psuedo code:

1
2
3
4
5
6
7
use Some::Package;

my $pkg = Some::Package->new();

ok($pkg, "Package created");
ok($pkg->can("do_something"), "Kan iets doen");
ok($pkg->do_something, "Deed iets");
In theory there is no difference between theory and practice. In practice there is.
pi_136504551
quote:
0s.gif Op zondag 9 februari 2014 14:16 schreef slacker_nl het volgende:
Heeft PHP een test framework? As in, psuedo code:
[ code verwijderd ]

PHP Unit?
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
  zondag 9 februari 2014 @ 17:28:06 #6
118585 Crutch
Filantroop || Taalzwengel
pi_136512726
quote:
0s.gif Op zondag 9 februari 2014 14:16 schreef slacker_nl het volgende:
Heeft PHP een test framework? As in, psuedo code:
[ code verwijderd ]

PHP unit, werkt vrij goed met PHPStorm
Je moeder is een hamster
  maandag 10 februari 2014 @ 11:26:32 #7
343369 Laser.
Love Always Shines
pi_136541169
Is er naast "file_get_contents" een andere (makkelijke) manier om data van een ander domein te krijgen in een PHP variabel?

Voorbeeld:

Ik heb domein A.nl en B.com. Dit zijn verschillende websites. Op A.nl staat ergens een versienummer. Deze versienummer kan ik op een lege HTML pagina zetten of in een tekstbestand. Deze versienummer wil ik dan op B.com gebruiken in een variabel, zodat ik de versienummer overal waar ik wil op B.com kan laten weergeven.

De reden van mijn vraag is omdat bij mij file_get_contents zo nu en dan zeer traag werkt. Zo kan ik soms een hele pagina niet laden, of in ieder geval met veel moeite. Mocht er geen alternatief zijn, is er dan een mogelijkheid om een soort van timer op de file_get_contents te zetten? Dus dat het script een x aantal seconden probeert en als het dan niet lukt een melding te laten weergeven?
  † In Memoriam † maandag 10 februari 2014 @ 11:27:25 #8
159335 Boze_Appel
Vrij Fruit
pi_136541194
quote:
0s.gif Op maandag 10 februari 2014 11:26 schreef Laser. het volgende:
Is er naast "file_get_contents" een andere (makkelijke) manier om data van een ander domein te krijgen in een PHP variabel?

Voorbeeld:

Ik heb domein A.nl en B.com. Dit zijn verschillende websites. Op A.nl staat ergens een versienummer. Deze versienummer kan ik op een lege HTML pagina zetten of in een tekstbestand. Deze versienummer wil ik dan op B.com gebruiken in een variabel, zodat ik de versienummer overal waar ik wil op B.com kan laten weergeven.

De reden van mijn vraag is omdat bij mij file_get_contents zo nu en dan zeer traag werkt. Zo kan ik soms een hele pagina niet laden, of in ieder geval met veel moeite. Mocht er geen alternatief zijn, is er dan een mogelijkheid om een soort van timer op de file_get_contents te zetten? Dus dat het script een x aantal seconden probeert en als het dan niet lukt een melding te laten weergeven?
curl?
Carpe Libertatem
  maandag 10 februari 2014 @ 11:29:38 #9
91039 mstx
2x1/2 = 1/2 x 1/2
pi_136541272
quote:
0s.gif Op maandag 10 februari 2014 11:26 schreef Laser. het volgende:
De reden van mijn vraag is omdat bij mij file_get_contents zo nu en dan zeer traag werkt. Zo kan ik soms een hele pagina niet laden, of in ieder geval met veel moeite.
Dat ligt niet aan de functie maar aan de verbinding, dan gaat een andere functie dus ook niet werken.
Je kan de default_socket_timeout variabele lager zetten in je php.ini of met ini_set().
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  maandag 10 februari 2014 @ 12:34:45 #10
125913 Devolution
Beep beep Richie
pi_136543380
Of als het niet per se server-side hoeft te zijn, met Javascript/Ajax? Javascript heeft verschillende mogelijkheden voor timeouts en dergelijke, PHP is daar wat beperkter in. Bovendien kun je, als je het via Javascript doet, ook asynchroon opvragen zodat de rest van de pagina ondertussen kan laden.
"You know what Hell really is? It's not lakes of burning oil or chains of ice. It's being removed from God's sight."
pi_136544003
quote:
12s.gif Op maandag 10 februari 2014 12:34 schreef Devolution het volgende:
Of als het niet per se server-side hoeft te zijn, met Javascript/Ajax? Javascript heeft verschillende mogelijkheden voor timeouts en dergelijke, PHP is daar wat beperkter in. Bovendien kun je, als je het via Javascript doet, ook asynchroon opvragen zodat de rest van de pagina ondertussen kan laden.
Ik zou requests naar een externe host sowieso altijd (indien mogelijk) asynchroon afhandelen. Gewoon in een cronjob aanroepen en de resultaten bufferen in je eigen database.
  Moderator / Redactie Sport / Devops maandag 10 februari 2014 @ 13:52:39 #12
176766 crew  zoem
zoemt
pi_136546113
quote:
14s.gif Op maandag 10 februari 2014 12:51 schreef KomtTijd... het volgende:

[..]

Ik zou requests naar een externe host sowieso altijd (indien mogelijk) asynchroon afhandelen. Gewoon in een cronjob aanroepen en de resultaten bufferen in je eigen database.
Dit dus.

Scheelt niet alleen in laadtijd, maar je ontlast hiermee ook de service. Stel dat je veel bezoekers hebt, dan wil je niet dat de bezoekers zorgen voor een stortvloed aan requests naar de externe partij. Gevolg is dat de boel nog trager wordt, waarop gaan mensen refreshen (sneeuwbaleffect).
  maandag 10 februari 2014 @ 16:07:43 #13
343369 Laser.
Love Always Shines
pi_136551944
Thanks voor de antwoorden!
  dinsdag 11 februari 2014 @ 07:59:00 #14
187069 slacker_nl
Sicko pur sang
pi_136577233
quote:
0s.gif Op zondag 9 februari 2014 17:28 schreef Crutch het volgende:

[..]

PHP unit, werkt vrij goed met PHPStorm
Ik gebruik vim :)

Maar bedankt voor de antwoorden, ik zal eens kijken of ik zin heb om m'n PHP meuk ook testbaar te maken.
In theory there is no difference between theory and practice. In practice there is.
pi_136594384
quote:
0s.gif Op dinsdag 11 februari 2014 07:59 schreef slacker_nl het volgende:

[..]

Ik gebruik vim :)

Maar bedankt voor de antwoorden, ik zal eens kijken of ik zin heb om m'n PHP meuk ook testbaar te maken.
Ik kan me echt geen enkele reden voorstellen waarom je uit eigen keuze vim gebruikt? :P
  dinsdag 11 februari 2014 @ 20:50:50 #16
272287 henrivo
Tikt tegen jassies
pi_136601818
quote:
19s.gif Op dinsdag 11 februari 2014 17:56 schreef TwenteFC het volgende:

[..]

Ik kan me echt geen enkele reden voorstellen waarom je uit eigen keuze vim gebruikt? :P
Ik ook niet, maar ben wel benieuwd.
pi_136604779
quote:
0s.gif Op dinsdag 11 februari 2014 07:59 schreef slacker_nl het volgende:

[..]

Ik gebruik vim :)

Maar bedankt voor de antwoorden, ik zal eens kijken of ik zin heb om m'n PHP meuk ook testbaar te maken.
PHPUnit is ook gewoon command-line te gebruiken :)
  woensdag 12 februari 2014 @ 06:01:28 #18
272287 henrivo
Tikt tegen jassies
pi_136614994
Na ruim een half jaar ZF2 gebruikt te hebben overweeg ik nu dan tóch om Symfony2 eens te proberen. Iemand positieve ervaringen met Symfony2? Graag jullie mening :)
pi_136617081
quote:
1s.gif Op dinsdag 11 februari 2014 20:50 schreef henrivo het volgende:

[..]

Ik ook niet, maar ben wel benieuwd.
Gaan we een editor war beginnen? Maar ik kan met vim overal hetzelfde doen, of ik nou remote werk of lokaal, het ziet er altijd hetzelfde uit en ik werk er al jaren mee en doe er vanalles mee, van code kloppen tot brieven schrijven. Ik ben er erg blij mee.
In theory there is no difference between theory and practice. In practice there is.
pi_136617311
quote:
0s.gif Op woensdag 12 februari 2014 06:01 schreef henrivo het volgende:
Na ruim een half jaar ZF2 gebruikt te hebben overweeg ik nu dan tóch om Symfony2 eens te proberen. Iemand positieve ervaringen met Symfony2? Graag jullie mening :)
Heb er vorig jaar een start mee gemaakt, stijle leercurve maar als je erin zit werkt het als een tierelier. Hopelijk mag ik er binnenkort weer mee verder O+
pi_136617388
quote:
0s.gif Op woensdag 12 februari 2014 06:01 schreef henrivo het volgende:
Na ruim een half jaar ZF2 gebruikt te hebben overweeg ik nu dan tóch om Symfony2 eens te proberen. Iemand positieve ervaringen met Symfony2? Graag jullie mening :)
Ik heb 1 project met ZF2 gedaan en nu 1 project met Symfony2. Mijn voorkeur gaat uit naar Symfony2, maar nog te weinig mee gedaan om er echt een goed oordeel over te kunnen geven.
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
  † In Memoriam † woensdag 12 februari 2014 @ 10:17:23 #22
159335 Boze_Appel
Vrij Fruit
pi_136617601
quote:
0s.gif Op woensdag 12 februari 2014 06:01 schreef henrivo het volgende:
Na ruim een half jaar ZF2 gebruikt te hebben overweeg ik nu dan tóch om Symfony2 eens te proberen. Iemand positieve ervaringen met Symfony2? Graag jullie mening :)
Werkt erg prettig, maar voor kleine projecten is het vaak een dikke overkill. Voor kleine dingetjes gebruik ik toch liever iets als CodeIgniter.
Carpe Libertatem
  woensdag 12 februari 2014 @ 11:47:20 #23
25889 Sitethief
Fulltime Flapdrol
pi_136620257
quote:
0s.gif Op woensdag 12 februari 2014 09:54 schreef slacker_nl het volgende:

[..]

Gaan we een editor war beginnen? Maar ik kan met vim overal hetzelfde doen, of ik nou remote werk of lokaal, het ziet er altijd hetzelfde uit en ik werk er al jaren mee en doe er vanalles mee, van code kloppen tot brieven schrijven. Ik ben er erg blij mee.
Hmm, wij gebruiken Netbeans op werk (vraag me niet waarom) zelf gebruik ik graag Notepad++ voor het kleine hobby werk, en omdat ik op werk veel in Netbeans doe doe ik dat thuis ook al snel bij projecten. Maar goed ik werk dan ook exclusief op Windows systemen atm.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_136620336
Ik gebruik graag geany, maar icm symfony ben ik phpstorm gaan gebruiken en dat bevalt erg goed!
pi_136620991
quote:
0s.gif Op woensdag 12 februari 2014 09:54 schreef slacker_nl het volgende:

[..]

Gaan we een editor war beginnen? Maar ik kan met vim overal hetzelfde doen, of ik nou remote werk of lokaal, het ziet er altijd hetzelfde uit en ik werk er al jaren mee en doe er vanalles mee, van code kloppen tot brieven schrijven. Ik ben er erg blij mee.
Editor war is nergens voor nodig, als jij er fijn en efficiënt mee werkt dan moet je het gewoon gebruiken natuurlijk ;).

Persoonlijk gebruik ik PHPStorm voor de fantastische intelligence voor frameworks als bijv. Laravel.
De automatische snippets, git integratie, en de eenvoudige manier om projecten te beheren.

En voor de kleinere dingetjes wil ik ook wel eens sublime 2 gebruiken.
  woensdag 12 februari 2014 @ 17:39:40 #26
125913 Devolution
Beep beep Richie
pi_136633748
Ik gebruik altijd Sublime. Simpel, in een oogwenk opgestart (klikken en meteen verder werken waar je bezig was) en werkt lekker. Toch lijkt een groter pakket me ook wel fijn, zo zag ik bij een klasgenoot laatst hoe hij eenvoudig op een functie-aanroep kon klikken met een sneltoets om direct naar de functiedeclaratie te gaan en dat soort dingen zijn toch wel erg fijn. Misschien toch maar eens een ander pakket uit gaan proberen :)
"You know what Hell really is? It's not lakes of burning oil or chains of ice. It's being removed from God's sight."
  woensdag 12 februari 2014 @ 19:44:10 #27
272287 henrivo
Tikt tegen jassies
pi_136637966
quote:
0s.gif Op woensdag 12 februari 2014 09:54 schreef slacker_nl het volgende:

[..]

Gaan we een editor war beginnen? Maar ik kan met vim overal hetzelfde doen, of ik nou remote werk of lokaal, het ziet er altijd hetzelfde uit en ik werk er al jaren mee en doe er vanalles mee, van code kloppen tot brieven schrijven. Ik ben er erg blij mee.
Whut? Ik kon en kan me geen enkele reden bedenken waarom je vim prefereert boven een andere editor. Thats it, no big deal
pi_136638476
quote:
1s.gif Op woensdag 12 februari 2014 19:44 schreef henrivo het volgende:

[..]

Whut? Ik kon en kan me geen enkele reden bedenken waarom je vim prefereert boven een andere editor. Thats it, no big deal
Wat zou een andere editor me moeten bieden? Overigens was mijn opmerking een grapje, want vim/emacs etc..

http://xkcd.com/378/

Ik mis overigens wel een PHPtidy (owwwww: http://developer.berlios.de/project/showfiles.php?group_id=11466)

[ Bericht 11% gewijzigd door slacker_nl op 12-02-2014 21:07:27 ]
In theory there is no difference between theory and practice. In practice there is.
pi_136638557
quote:
12s.gif Op woensdag 12 februari 2014 17:39 schreef Devolution het volgende:
Ik gebruik altijd Sublime. Simpel, in een oogwenk opgestart (klikken en meteen verder werken waar je bezig was) en werkt lekker. Toch lijkt een groter pakket me ook wel fijn, zo zag ik bij een klasgenoot laatst hoe hij eenvoudig op een functie-aanroep kon klikken met een sneltoets om direct naar de functiedeclaratie te gaan en dat soort dingen zijn toch wel erg fijn. Misschien toch maar eens een ander pakket uit gaan proberen :)
Probeer eens ctags te draaien, dat gebruik ik ook: in vim, op de functie staan, toets indrukken en hij wijst me naar de juiste functie (mits die in m'n huidige repo zit).

https://en.wikipedia.org/wiki/Ctags Sublime lijkt het te ondersteunen.
In theory there is no difference between theory and practice. In practice there is.
pi_136660618
quote:
12s.gif Op woensdag 12 februari 2014 17:39 schreef Devolution het volgende:
Ik gebruik altijd Sublime. Simpel, in een oogwenk opgestart (klikken en meteen verder werken waar je bezig was) en werkt lekker. Toch lijkt een groter pakket me ook wel fijn, zo zag ik bij een klasgenoot laatst hoe hij eenvoudig op een functie-aanroep kon klikken met een sneltoets om direct naar de functiedeclaratie te gaan en dat soort dingen zijn toch wel erg fijn. Misschien toch maar eens een ander pakket uit gaan proberen :)
PHPStorm heeft dat dus, control + click op de functienaam. :P
  donderdag 13 februari 2014 @ 13:34:57 #31
125913 Devolution
Beep beep Richie
pi_136662022
Thanks voor de tips! Ik ga er eens mee rommelen :)
"You know what Hell really is? It's not lakes of burning oil or chains of ice. It's being removed from God's sight."
pi_136667799
Ik ben bezig met een website voor onze biljartvereniging, omdat ik niet echt een website specialist ben maak ik gebruik van een template en knoei op die manier zelf wat in elkaar.

Om de tussenstanden op de website gebruik ik de include functie in php op onderstaande manier.

1
2
3
4
5
6
7
8
9
10
<?php
  
include("scores/score1.html");
 
 
?>
<br>

<?php
  
include("scores/score2.html");
 
 
?>

nu zou ik graag willen dat elk bestand .html dat in de directory scores staat word "ge"include gesorteerd op datum (nieuwste eerst)

heeft iemand een idee of dit kan en hoe??
pi_136667931
datum van het filesystem of een datum ergens in het bestand?
pi_136668262
quote:
14s.gif Op donderdag 13 februari 2014 16:04 schreef KomtTijd... het volgende:
datum van het filesystem of een datum ergens in het bestand?
ik bedoelde aanmaak datum van het bestand.. filesystem dus.
pi_136668792
Heb dat weleens gedaan met glob() en vervolgens array_multisort() op filemtime
pi_136669745
quote:
14s.gif Op donderdag 13 februari 2014 16:19 schreef KomtTijd... het volgende:
Heb dat weleens gedaan met glob() en vervolgens array_multisort() op filemtime
Bedankt, ik zal er mee aan de slag, maar ik begrijp nog niet echt wat je bedoeld.
pi_136670425
quote:
0s.gif Op donderdag 13 februari 2014 16:38 schreef gerrit098 het volgende:

[..]

Bedankt, ik zal er mee aan de slag, maar ik begrijp nog niet echt wat je bedoeld.
Zoiets:
1
2
3
4
5
6
7
8
9
$files = array();
foreach(glob("*.html") as $filename) {
    $files[filemtime($filename)] = $filename;
}
ksort($files);
foreach($files as $filename) {
    include($filename);
    echo '<br/>';
}
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
  maandag 17 februari 2014 @ 18:56:09 #38
292596 Faux.
Fan van zichzelf
pi_136821179
:W ik kom er even niet uit

1
2
3
<?php
fwrite
(fopen('xml.txt''a'), "<message><id>"$u "</id><name>"$nickname "</name><body>" $body "</body></message>\n"); 
?>

Deze wordt dus geschreven in het bestand xml.txt, een XML-bestand. Deze wordt geopend met <xml>, maar wil ik ook laten eindigen met XML. Oftewel: hoe zorg ik ervoor dat de <message> niet aan het eind van het bestand wordt toegevoegd maar voor de </xml>?
Hier schreef tong80 het volgende:
Faux is een FOK!held, zoals dat vroeger Gellarboy en Brechtje waren. Users die je koestert.
pi_136821327
quote:
11s.gif Op maandag 17 februari 2014 18:56 schreef Faux. het volgende:
:W ik kom er even niet uit
[ code verwijderd ]

Deze wordt dus geschreven in het bestand xml.txt, een XML-bestand. Deze wordt geopend met <xml>, maar wil ik ook laten eindigen met XML. Oftewel: hoe zorg ik ervoor dat de <message> niet aan het eind van het bestand wordt toegevoegd maar voor de </xml>?
Ik zou simplexml gebruiken. Gewoon standaard functies van php
  maandag 17 februari 2014 @ 19:09:35 #40
91039 mstx
2x1/2 = 1/2 x 1/2
pi_136821600
quote:
11s.gif Op maandag 17 februari 2014 18:56 schreef Faux. het volgende:
:W ik kom er even niet uit
[ code verwijderd ]

Deze wordt dus geschreven in het bestand xml.txt, een XML-bestand. Deze wordt geopend met <xml>, maar wil ik ook laten eindigen met XML. Oftewel: hoe zorg ik ervoor dat de <message> niet aan het eind van het bestand wordt toegevoegd maar voor de </xml>?
1
2
3
<?php
file_put_contents
(substr(file_get_contents('xml.txt'), 0, -6), "<message><id>"$u "</id><name>"$nickname "</name><body>" $body "</body></message>\n</xml>"); 
?>
Eventueel kan het ook met fopen() maar dan moet je hem in r+ mode openen en met fseek() de pointer naar (lengte van het bestand)-6 bytes verplaatsen.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
  Moderator / Redactie Sport / Devops maandag 17 februari 2014 @ 19:20:23 #41
176766 crew  zoem
zoemt
pi_136821990
quote:
1s.gif Op maandag 17 februari 2014 19:00 schreef d4v1d het volgende:

[..]

Ik zou simplexml gebruiken. Gewoon standaard functies van php
Wat deze meneer zegt: gebruik een libray :)

Dat van mstx werkt vast ook, maar dat is de dirty/hacky oplossing.

Btw, waarom sla je het bestand niet op met de xml-extensie?
pi_136856095
Ik heb op een joomlawebsite een contactformulier waarin de gebruiker kan kiezen tussen twee opties.
Optie A resulteert in een bevestigingsemail met optieA.pdf als bijlage.
Optie B zorgt voor een mail met optieB.pdf als bijlage.

Nu heb ik PHP code waarin ik heb beschreven welke .pdf bij welke optie hoort.
Het formulier verwerken doet het gewoon, maar er wordt geen mail naar de gebruiker gestuurd met een .pdf in de bijlage.
De code is een standaardcode die aangeleverd wordt in de FAQ van de ontwikkelaar.
Iemand die kan vertellen wat de fout is?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if ( !isset($form->data['radioboxes']) || count($form->data['radioboxes']) == ) {
  return;
}
$files_array = array (
    
    
=>    JPATH_SITE.'/images/pdf/form_1.pdf',
    
=>     JPATH_SITE.'/images/pdf/form_2.pdf',
);
$attach_files = array();
foreach ( 
$files_array as $k => $v ) {
  if ( 
in_array($k$form->data['radioboxes']) ) {
    
$attach_files[] = $v;
  }
}
$form->data['file_array'] = $attach_files;
?>

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
<div class="ccms_form_element cfdiv_text" id="input_text_121_container_div" style="">
    <label>Naam *</label>
    <input maxlength="150" size="30" class=" validate['required']" title="" type="text" value="" name="input_text_12" />
</div>

<div class="ccms_form_element cfdiv_text" id="input_text_131_container_div" style="">
    <label>Adres *</label>
    <input maxlength="150" size="30" class=" validate['required']" title="" type="text" value="" name="input_text_13" />
</div>

<div class="ccms_form_element cfdiv_text" id="input_text_141_container_div" style="">
    <label>PC & Woonplaats *</label>
    <input maxlength="150" size="30" class=" validate['required']" title="" type="text" value="" name="input_text_14" />
</div>

<div class="ccms_form_element cfdiv_text" id="input_text_151_container_div" style="">
    <label>Telefoon</label>
    <input maxlength="150" size="30" class=" validate['phone']" title="" type="text" value="" name="input_text_15" />
</div>

<div class="ccms_form_element cfdiv_text" id="input_text_161_container_div" style="">
    <label>E-mail *</label>
    <input maxlength="150" size="30" class=" validate['required','email']" title="" type="text" value="" name="input_text_16" />
</div>

<div class="ccms_form_element cfdiv_radio radios_over" id="input_radio_171_container_div" style="">
    <label>Ik wil *</label>
    <input type="hidden" name="input_radio_17" value="" alt="ghost" />

    <div style="float:left; clear:none;">
        <input type="radio" name="input_radio_17" id="input_radio_17_0" title="" value="Donateur worden" class="validate['required']" />
        <label for="input_radio_17_0">optie A</label>
        <input type="radio" name="input_radio_17" id="input_radio_17_1" title="" value="gaan voetballen" class="validate['required']" />
        <label for="input_radio_17_1">optie B</label>
    </div>
</div>

<div class="ccms_form_element cfdiv_text" id="chrono_verification1_container_div" style="">
    <label>Vul de juiste code in *</label>
    <input maxlength="5" size="5" class="chrono_captcha_input validate['required']" title="" type="text" wf_key="19" value="" name="chrono_verification" />
    {chronocaptcha_img}
</div>

<div class="ccms_form_element cfdiv_submit" id="input_submit_181_container_div" style="text-align:center">
    <input name="input_submit_18" class="" value="Submit" type="submit" /> 
    <input type='reset' name='reset' value='Reset' />
</div>
pi_136856615
quote:
5s.gif Op dinsdag 18 februari 2014 16:38 schreef karton2 het volgende:
Ik heb op een joomlawebsite een contactformulier waarin de gebruiker kan kiezen tussen twee opties.
Optie A resulteert in een bevestigingsemail met optieA.pdf als bijlage.
Optie B zorgt voor een mail met optieB.pdf als bijlage.

Nu heb ik PHP code waarin ik heb beschreven welke .pdf bij welke optie hoort.
Het formulier verwerken doet het gewoon, maar er wordt geen mail naar de gebruiker gestuurd met een .pdf in de bijlage.
De code is een standaardcode die aangeleverd wordt in de FAQ van de ontwikkelaar.
Iemand die kan vertellen wat de fout is?
[ code verwijderd ]

[ code verwijderd ]

doe eens een print_r($_POST) op de pagina om te kijken wat er gepost wordt.
pi_136867799
quote:
0s.gif Op dinsdag 18 februari 2014 16:45 schreef totalvamp het volgende:

[..]

doe eens een print_r($_POST) op de pagina om te kijken wat er gepost wordt.
Wat ik heb gedaan is de php leeggehaald en dit er voor in de plaats gezet:
1
2
3
4
5
<?php
echo '<pre>';
 
print_r($_POST);
 echo 
'</pre>';
?>
Het was me niet duidelijk waar ik jouw code neer moest zetten (0,0 verstand van PHP) en dit werd elders op het web getipt.

Wat ik terugkreeg met die code was:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
Array
(
    [
input_text_12] => 
    [
input_text_13] => 
    [
input_text_14] => 
    [
input_text_15] => 
    [
input_text_16] => 
    [
input_radio_17] => 
    [
chrono_verification] => 
    [
input_submit_18] => Submit
)
?>
pi_136872063
doe eens print_r($form->data)
pi_136891561
Weet iemand wat ik fout doe? Ik wil dus een Yahze spelletje maken zodat je geen dobbelstenen nodig hebt. Echter gaat er iets mis

( ! ) Notice: Undefined index: steen_0 in D:\wamp\www\hoofdstuk7\Yahze.php on line 30
( ! ) Notice: Undefined index: steen_1 in D:\wamp\www\hoofdstuk7\Yahze.php on line 30
( ! ) Notice: Undefined index: steen_2 in D:\wamp\www\hoofdstuk7\Yahze.php on line 30
( ! ) Notice: Undefined index: steen_3 in D:\wamp\www\hoofdstuk7\Yahze.php on line 30
( ! ) Notice: Undefined index: steen_4 in D:\wamp\www\hoofdstuk7\Yahze.php on line 30


quote:
<?php
include ('html_kop.inc.php');
$hoofdstuk = 7;
echo "<h1>Hoofdstuk $hoofdstuk</h1>";

// INIT
$worp = 1;
$laatsteworp = 3;
$stenen = array (0, 0, 0, 0, 0);

// CONTROLLER
if( isset($_POST[ 'opnieuw' ]) ):

// OPNIEUW BEGINNEN
unset ($_POST);
elseif( isset($_POST[ 'dobbelen' ]) ):

// DOBBELEN

for( $i = 0; $i <= 4; $i ++ ):
$stenen[ $i ] = (int)$_POST[ 'steen_' .$i];

if( !isset($_POST[ 'vast_' .$i]) ):

//als stenen niet is vasgezet: dobbelen

$stenen[ $i ] = mt_rand(1, 6);
endif;

endfor;

//VOLGENDE WORP

$worp = $_POST['worp'] + 1;
endif;

// VIEW
$formulier = '<form name="stenen" method="POST" action=" ./yahze.php">';

for( $i = 0; $i <= 4; $i ++):
$formulier .= '<input type="hidden" name="steen_' .$i. ' " ' .
'value=" ' .$stenen[ $i ]. ' " />';
$formulier .= 'steen '. ($i+1). ' : <strong>' .$stenen[$i]. '</strong/>';

if( $worp > 1):
$formulier .=
'   '.
'<input type="checkbox" name="vast_' .$i. '"';

if( isset($_POST[ 'vast_' .$i]) ):
$formulier .= ' checked ';
endif;

$formulier .= ' /><small>vastzetten</small>';
endif;

$formulier .= '<br />';
endfor;

$formulier .= '<br />';

// KNOP NOGMAALS DOBBELEN
if( $worp <= $laatsteworp ):
$formulier .=
'<input type="submit" name="dobbelen" value="Nu werpen: ' .$worp.' " />';
else:
$formulier .= 'Bepaal de eindscore';
endif;

// FORMULIER AFSLUITEN
$formulier .=
'<br /><br />'.
'<input type="hidden" name="worp" value=" ' .$worp. '" />'.
'<input type="submit" name="opnieuw" value="opnieuw" />'.
'</form>';

echo $formulier;

include ('html_staart.inc.php');
?>
  woensdag 19 februari 2014 @ 14:37:30 #47
63192 ursel
"Het Is Hier Fantastisch!
pi_136891676
1$stenen[ $i ] = (int)$_POST[ 'steen_' .$i];

Die zal wel niet bestaan. Ff check eromheen :)
pi_136893219
quote:
0s.gif Op woensdag 19 februari 2014 14:37 schreef ursel het volgende:

[ code verwijderd ]

Die zal wel niet bestaan. Ff check eromheen :)
Ik kom er niet uit :'( Ik heb het nog eens helemaal nagelopen in het boek, maar de fout blijft bestaan
pi_136893413
Wat gaat er mis dan?
pi_136893442
Gezien het school werk is, heb je al opgezocht wat een 'Undefined index' is?
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.


[ Bericht 6% gewijzigd door Darkomen op 19-02-2014 15:32:48 (Spoiler) ]
pi_136893647
quote:
14s.gif Op woensdag 19 februari 2014 15:25 schreef KomtTijd... het volgende:
Wat gaat er mis dan?
Het script kan de dobbelstenen niet vastzetten wel het overige. ;(
pi_136893836
quote:
0s.gif Op woensdag 19 februari 2014 15:30 schreef ManianMan het volgende:

[..]

Het script kan de dobbelstenen niet vastzetten wel het overige. ;(
*zucht*

- Wat zou het script moeten doen?
- Wat gaat er verkeerd?
- Wat heb je zelf al geprobeerd om het probleem te isoleren?
pi_136894192
quote:
15s.gif Op woensdag 19 februari 2014 15:34 schreef KomtTijd... het volgende:

[..]

*zucht*

- Wat zou het script moeten doen?
- Wat gaat er verkeerd?
- Wat heb je zelf al geprobeerd om het probleem te isoleren?
I.

Het script zou het dobbelen bij het spel Yahtzee moeten nabootsen

Er worden dus 5 regels met de tekst dobbelsteen weergegeven met daarachter de tekst "vast zetten" met een checkbox erachter.

Als er op "nu werpen" geklikt wordt wordt er voor de 5 dobbelstenen willekeurig een getal gekozen tussen 1 en 6. Als er op vast zetten geklikt wordt achter een dobbelsteen zou deze onthouden moeten worden en dus niet moeten veranderen.

II.

Je kunt nu dobbelen maar het onthouden van de dobbelstenen wordt niet uitgevoerd.

III. de tekst gecontroleerd uit het boek en de functie steen_ verandert naar andere waardes
pi_136894452
"Hij doet het niet" is geen antwoord op de vraag "wat gaat er verkeerd"

En "de tekst controleren en een random functie veranderen" is geen antwoord op de vraag "wat heb je gedaan om het probleem te isoleren".


Ga eerst eens na WAT het niet doet. En dan WAAROM dat het niet doet. Kortom leer debuggen.
pi_136896568
Gad-ver-damme.
Wat voor boek is dit? :')
Variablen binnen quotes, geen accolades. shorthand notaties. Onveilige code. Lappen html in echo's.. een cast naar int..
De persoon die dit als "lesstof" aansmeert verdient een vuurpeleton :r VisualBasic docent die omgeschoolt is naar php?

[ Bericht 3% gewijzigd door #ANONIEM op 19-02-2014 16:41:31 ]
pi_136896669
quote:
99s.gif Op woensdag 19 februari 2014 16:38 schreef CrashO het volgende:
Gad-ver-damme.
Wat voor boek is dit? :')
Variablen binnen quotes, geen accolades. shorthand notaties. Onveilige code. Lappen html in echo's.. een cast naaar int..
De persoon die dit als "lesstof" aansmeert verdient een vuurpeleton :r
Wel boek? ;(
pi_136896716
quote:
2s.gif Op woensdag 19 februari 2014 16:41 schreef d4v1d het volgende:

[..]

Wel boek? ;(
Die code van ManianMan, Hij heeft het over nazoeken in het boek... :') Nam dus aan dat het uit of aan de hand van een boek is. Die lap met pure code-aids.

Je probleem is trouwens dat je een spatie in de naam van je inputs hebt aan het eind..
name="steen_1 " in je formulier en dan uitlezen met $_POST['steen_1'] gaat niet werken. Haal die spatie eruit en hij werkt.

[ Bericht 5% gewijzigd door #ANONIEM op 19-02-2014 16:51:26 ]
  Moderator / Redactie Sport / Devops woensdag 19 februari 2014 @ 16:55:36 #58
176766 crew  zoem
zoemt
pi_136897101
quote:
14s.gif Op woensdag 19 februari 2014 15:25 schreef Darkomen het volgende:
Gezien het school werk is, heb je al opgezocht wat een 'Undefined index' is?
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Gewoon de hele mikmak aangooien met error_reporting(-1) icm met ini_set('display_errors',1) :Y
pi_136897632
quote:
99s.gif Op woensdag 19 februari 2014 16:42 schreef CrashO het volgende:

[..]

Die code van ManianMan, Hij heeft het over nazoeken in het boek... :') Nam dus aan dat het uit of aan de hand van een boek is. Die lap met pure code-aids.

Je probleem is trouwens dat je een spatie in de naam van je inputs hebt aan het eind..
name="steen_1 " in je formulier en dan uitlezen met $_POST['steen_1'] gaat niet werken. Haal die spatie eruit en hij werkt.
Thanks :D gelukt ^O^ in vervolg weet ik dus dat ik op spaties moet letten.

quote:
14s.gif Op woensdag 19 februari 2014 15:45 schreef KomtTijd... het volgende:
"Hij doet het niet" is geen antwoord op de vraag "wat gaat er verkeerd"

En "de tekst controleren en een random functie veranderen" is geen antwoord op de vraag "wat heb je gedaan om het probleem te isoleren".

Ga eerst eens na WAT het niet doet. En dan WAAROM dat het niet doet. Kortom leer debuggen.
Ik ben pas begonnen met PHP, heb eerst een hele website gebouwd maar ben nu dus bezig met het echte werk. Ik ben dus nog in de leerfase. Als ik niet weet wat er fout kan zijn, dan kan ik uren de codes bewerken. ;)

quote:
99s.gif Op woensdag 19 februari 2014 16:38 schreef CrashO het volgende:
Gad-ver-damme.
Wat voor boek is dit? :')
Variablen binnen quotes, geen accolades. shorthand notaties. Onveilige code. Lappen html in echo's.. een cast naar int..
De persoon die dit als "lesstof" aansmeert verdient een vuurpeleton :r VisualBasic docent die omgeschoolt is naar php?
Het boek 'Academic Service basiscursus PHP 5.4' van Victor Peters, welk boek raden jullie mij dan aan? :@
  Moderator / Redactie Sport / Devops woensdag 19 februari 2014 @ 17:14:02 #60
176766 crew  zoem
zoemt
pi_136897701
quote:
0s.gif Op woensdag 19 februari 2014 14:33 schreef ManianMan het volgende:
Weet iemand wat ik fout doe? Ik wil dus een Yahze spelletje maken zodat je geen dobbelstenen nodig hebt. Echter gaat er iets mis

( ! ) Notice: Undefined index: steen_0 in D:\wamp\www\hoofdstuk7\Yahze.php on line 30
( ! ) Notice: Undefined index: steen_1 in D:\wamp\www\hoofdstuk7\Yahze.php on line 30
( ! ) Notice: Undefined index: steen_2 in D:\wamp\www\hoofdstuk7\Yahze.php on line 30
( ! ) Notice: Undefined index: steen_3 in D:\wamp\www\hoofdstuk7\Yahze.php on line 30
( ! ) Notice: Undefined index: steen_4 in D:\wamp\www\hoofdstuk7\Yahze.php on line 30


[..]

Tip 1: Gebruik indenting zodat je code leesbaar en onderhoudbaar is!
Tip 2: Gebruik var_dump() om te controleren wat de inhoud van een variabele is. Echo is daar niet geschikt voor.
Tip 3: Html-forms ondersteunen array data via name="naam[sleutel]", zodat je niet naam_nummer hoeft te doen.
Tip 4: Valideer de user data ($_POST), al kan ik me voorstellen dat dat voor nu niet je belangrijkste punt is.

Endif/endfor zou ik niet in pure php-code gebruiken, tenzij indenting onhandig wordt (o.a. templates). Is geheel persoonlijke voorkeur, maar wel common practice in php.
pi_136897905
quote:
0s.gif Op woensdag 19 februari 2014 17:12 schreef ManianMan het volgende:

Ik ben pas begonnen met PHP, heb eerst een hele website gebouwd maar ben nu dus bezig met het echte werk. Ik ben dus nog in de leerfase. Als ik niet weet wat er fout kan zijn, dan kan ik uren de codes bewerken. ;)

...Daarom moet je leren debuggen. En niet bij de eerste de beste undefined index je complete code ergens op een forum dumpen en wachten tot iemand zich hard genoeg verveelt om een spatie voor je eruit te vissen.
pi_136897921
quote:
0s.gif Op woensdag 19 februari 2014 17:14 schreef zoem het volgende:

[..]

Tip 1: Gebruik indenting zodat je code leesbaar en onderhoudbaar is!
Tip 2: Gebruik var_dump() om te controleren wat de inhoud van een variabele is. Echo is daar niet geschikt voor.
Tip 3: Html-forms ondersteunen array data via name="naam[sleutel]", zodat je niet naam_nummer hoeft te doen.
Tip 4: Valideer de user data ($_POST), al kan ik me voorstellen dat dat voor nu niet je belangrijkste punt is.

Endif/endfor zou ik niet in pure php-code gebruiken, tenzij indenting onhandig wordt (o.a. templates). Is geheel persoonlijke voorkeur, maar wel common practice in php.
Dank je wel voor de tips :), ik ga ze direct in gebruik nemen oftewel via trial & error maar het ging mij eigenlijk om dat mijn vriendin die opgenomen is in het ziekenhuis te Rotterdam en haar vader die bij haar is dit kunnen gebruiken om yahtzee te spelen. :D
pi_136900839
quote:
14s.gif Op dinsdag 18 februari 2014 22:03 schreef KomtTijd... het volgende:
doe eens print_r($form->data)
Als ik die andere testcode vervang door deze krijg ik:

quote:
Array ( [chronoform] => keuze_form [event] => submit [Itemid] => 108 [option] => com_content [view] => article [id] => 4 [input_text_12] => Naam [input_text_13] => straat [input_text_14] => adres [input_text_15] => 0612345678 [input_text_16] => @hotmail.com [input_radio_17] => optieA [chrono_verification] => NSmDa [input_submit_18] => Submit [9bb14d3f9a07a586dbbbb6be7abe30e5] => 1 [IPADDRESS] => 77.164.90.163 )
Het formulier wordt evengoed succesvol verzonden.
pi_136902179
quote:
5s.gif Op woensdag 19 februari 2014 19:01 schreef karton2 het volgende:

[..]

Als ik die andere testcode vervang door deze krijg ik:

[..]

Het formulier wordt evengoed succesvol verzonden.
Ik zie anders niks aan radioboxes wat een array moet zijn.

Waarschijnlijk knalt hij er al uit met
1
2
3
4
5
<?php
if ( !isset($form->data['radioboxes']) || count($form->data['radioboxes']) == ) {
  return;
}
?>

aangezien die data niet bestaat.
pi_136902190
quote:
0s.gif Op woensdag 19 februari 2014 17:20 schreef ManianMan het volgende:

[..]

Dank je wel voor de tips :), ik ga ze direct in gebruik nemen oftewel via trial & error maar het ging mij eigenlijk om dat mijn vriendin die opgenomen is in het ziekenhuis te Rotterdam en haar vader die bij haar is dit kunnen gebruiken om yahtzee te spelen. :D
Vraagje, staat deze opdracht letterlijk zo in het boek beschreven?
pi_136903059
...geen array 'radioboxes' dus, back to the drawingboard
pi_136903639
quote:
0s.gif Op woensdag 19 februari 2014 19:37 schreef totalvamp het volgende:

[..]

Vraagje, staat deze opdracht letterlijk zo in het boek beschreven?
Ik heb het overgetypt dus ja
pi_136903931
quote:
1s.gif Op woensdag 19 februari 2014 20:07 schreef ManianMan het volgende:

[..]

Ik heb het overgetypt dus ja
Verbranden of terugbrengen. Dit is bagger zoals eerder verteld..

Ik snap niet dat zulke dingen nog beschreven worden in boeken met php 5+

Zo leer jij het verkeerd aan en verdient iemand die niet weet wat hij doet, geld aan een slecht boek.
pi_136903933
quote:
0s.gif Op woensdag 19 februari 2014 19:36 schreef totalvamp het volgende:

[..]

Ik zie anders niks aan radioboxes wat een array moet zijn.

Waarschijnlijk knalt hij er al uit met
[ code verwijderd ]

aangezien die data niet bestaat.
Kan je dat uitleggen in wat begrijpelijker taal?

Hardop gedacht geschreven:
Wat ik begrijp is dat een array een soort map is waar je informatie in kan opslaan.
Als ik dit voorbeeld zie:
1
2
3
4
<?php
 $cars
=array("Volvo","BMW","Toyota");
 echo 
"I like " $cars[0] . ", " $cars[1] . " and " $cars[2] . ".";
 
?>
Dan heet de array (de map dus) "$cars" en de informatie die in die array is opgeslagen: Volvo, BMW en Toyota.
Echo kan je op het scherm weergeven wat je in de array hebt staan.?

In mijn code zie ik die array weer terugkomen met de naam "$files_array", met daarin de link naar twee .pdf bestanden.
Paar regels verder bij "foreach" komt "$files_array" weer terug waarin de twee opties van de radioboxes staan beschreven: $k en $v.
Bij "if" staat dat als $k is gekozen dan moet hij de data uit de radiobox verwerken; hetzelfde geldt voor $v.
Hoe weet hij dan eigenlijk dat $k pdf01 is en en $v bij pdf02..?
Ik probeer het gewoon te begrijpen, maar het lukt niet echt :')

In ieder geval voor het gemak de php code toegevoegd.
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
pi_136904020
quote:
5s.gif Op woensdag 19 februari 2014 20:14 schreef karton2 het volgende:

[..]

Kan je dat uitleggen in wat begrijpelijker taal?

Hardop gedacht geschreven:
Wat ik begrijp is dat een array een soort map is waar je informatie in kan opslaan.
Als ik dit voorbeeld zie:
[ code verwijderd ]

Dan heet de array (de map dus) "$cars" en de informatie die in die array is opgeslagen: Volvo, BMW en Toyota.
Echo kan je op het scherm weergeven wat je in de array hebt staan.?

In mijn code zie ik die array weer terugkomen met de naam "$files_array", met daarin de link naar twee .pdf bestanden.
Paar regels verder bij "foreach" komt "$files_array" weer terug waarin de twee opties van de radioboxes staan beschreven: $k en $v.
Bij "if" staat dat als $k is gekozen dan moet hij de data uit de radiobox verwerken; hetzelfde geldt voor $v.
Hoe weet hij dan eigenlijk dat $k pdf01 is en en $v bij pdf02..?
Ik probeer het gewoon te begrijpen, maar het lukt niet echt :')

In ieder geval voor het gemak de php code toegevoegd.
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Ik heb deze gekregen van mijn broer maar welk boek raad je dan aan?
pi_136904168
quote:
1s.gif Op woensdag 19 februari 2014 20:16 schreef ManianMan het volgende:

[..]

Ik heb deze gekregen van mijn broer maar welk boek raad je dan aan?
Ik lees zelf geen PHP boeken, vooral omdat als het boek uitkomt sommige technieken alweer verouderd zijn.

Wat je moet gaan leren is denken in Classes en Objecten en op voorhand bepalen wat je nodig hebt.
Ik zou dus een tutorial opzoeken over hoe je een class maakt en deze gebruikt.
pi_136905222
quote:
5s.gif Op woensdag 19 februari 2014 20:14 schreef karton2 het volgende:

[..]

Kan je dat uitleggen in wat begrijpelijker taal?

Hardop gedacht geschreven:
Wat ik begrijp is dat een array een soort map is waar je informatie in kan opslaan.
Als ik dit voorbeeld zie:
[ code verwijderd ]

Dan heet de array (de map dus) "$cars" en de informatie die in die array is opgeslagen: Volvo, BMW en Toyota.
Echo kan je op het scherm weergeven wat je in de array hebt staan.?

In mijn code zie ik die array weer terugkomen met de naam "$files_array", met daarin de link naar twee .pdf bestanden.
Paar regels verder bij "foreach" komt "$files_array" weer terug waarin de twee opties van de radioboxes staan beschreven: $k en $v.
Bij "if" staat dat als $k is gekozen dan moet hij de data uit de radiobox verwerken; hetzelfde geldt voor $v.
Hoe weet hij dan eigenlijk dat $k pdf01 is en en $v bij pdf02..?
Ik probeer het gewoon te begrijpen, maar het lukt niet echt :')

In ieder geval voor het gemak de php code toegevoegd.
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Hoe kan ik dit makkelijk uitleggen :P

Zie een array als een lijst van dingen. Elk ding kan een naam hebben.
1
2
3
4
5
6
7
8
9
10
<?php
// Deze array bevat geen keys
$cars = ['Audi''Opel'];

//Deze wel
$car = [
'merk' => 'Audi'
'model' => 'a8'
];
?>

In het onderste voorbeeld heb je dus een array waarbij je de keys zelf hebt neergezet.

Als je nu het volgende zou doen met deze arrays:
1
2
3
4
5
6
7
8
9
10
11
<?php

foreach($cars as $key => $brand) {
   echo 
$key// Dit zal 0 en 1 zijn
   
echo $brand// Audi, Opel
}

foreach(
$car as $k => $v) {
   echo 
$k// Merk, Model
   
echo $v// Audi, a8
}

Wat foreach doet is dus over alle waarden in een array lopen en daarvan de key(ookwel index genoemd) en de waarde doorgeven.

Als je zelf geen keys meegeeft zal hij altijd bij 0 beginnen en dan optellend.

[ Bericht 0% gewijzigd door #ANONIEM op 19-02-2014 20:43:11 ]
pi_136906563
quote:
0s.gif Op woensdag 19 februari 2014 20:20 schreef totalvamp het volgende:
Ik lees zelf geen PHP boeken, vooral omdat als het boek uitkomt sommige technieken alweer verouderd zijn.

Wat je moet gaan leren is denken in Classes en Objecten en op voorhand bepalen wat je nodig hebt.
Ik zou dus een tutorial opzoeken over hoe je een class maakt en deze gebruikt.
Ik deel deze mening volledig :Y
Boeken zijn leuk voor op je plank. Maar echt nuttig zijn ze niet voor programmeertalen. 't gaat meer om het begrip dan "monkey see monkey do" dingen overnemen uit een boek. Iets wat prima (en zelfs beter) aan te leren is met tutorials en wat gericht zoeken.

Als je eenmaal wat basis kennis hebt kan je daarna jezelf de rest aanleren met behulp van de beste vriend die een programmeur heeft, google. Eventueel kan je in een later stadium wat literatuur doornemen van specifieke onderwerpen (patterns / structures / etc), maar voor het leren programmeren ansich, nah. niet nodig. (Al kan je wel beter zo snel mogelijk een fatsoenlijke uitleg voor bijv OOP zoeken, want daar blijven veel php-programmeurs prutsers op falen)

[ Bericht 5% gewijzigd door #ANONIEM op 19-02-2014 21:06:12 ]
  Moderator / Redactie Sport / Devops woensdag 19 februari 2014 @ 21:12:45 #74
176766 crew  zoem
zoemt
pi_136907080
Het werken met een degelijk framework (Zend Framework, Symfony, etc) helpt ook om grip te krijgen op de werking en gedachte achter OOP-structuren. Echter moet je dan wel al wat basiskennis bezitten. Iets maken is uiteindelijk de beste leerschool.
pi_136907230
quote:
0s.gif Op woensdag 19 februari 2014 21:12 schreef zoem het volgende:
Het werken met een degelijk framework (Zend Framework, Symfony, etc) helpt ook om grip te krijgen op de werking en gedachte achter OOP-structuren. Echter moet je dan wel al wat basiskennis bezitten. Iets maken is uiteindelijk de beste leerschool.
Een framework is handig inderdaad, ik zou het alleen niet bij 1 laten.
  woensdag 19 februari 2014 @ 21:18:39 #76
63192 ursel
"Het Is Hier Fantastisch!
pi_136907364
conferences, gebruikersgroepen bezoeken en webinars volgen om te zien waar technieken heen gaan vandaag de dag. :Y
pi_136908516
quote:
0s.gif Op woensdag 19 februari 2014 21:12 schreef zoem het volgende:
Het werken met een degelijk framework (Zend Framework, Symfony, etc) helpt ook om grip te krijgen op de werking en gedachte achter OOP-structuren. Echter moet je dan wel al wat basiskennis bezitten. Iets maken is uiteindelijk de beste leerschool.
quote:
0s.gif Op woensdag 19 februari 2014 21:15 schreef totalvamp het volgende:

[..]

Een framework is handig inderdaad, ik zou het alleen niet bij 1 laten.
quote:
0s.gif Op woensdag 19 februari 2014 21:18 schreef ursel het volgende:
conferences, gebruikersgroepen bezoeken en webinars volgen om te zien waar technieken heen gaan vandaag de dag. :Y
Helemaal mee eens, maar als je nog niet weet wat een array is, heb je nog wel een héééééééle lange weg te gaan voordat je je in ditsoort dingen wilt gaan verdiepen.
pi_136916348
quote:
0s.gif Op woensdag 19 februari 2014 20:42 schreef totalvamp het volgende:

[..]
<knip>
Dankzij jouw uitleg snap mijn code nu wat beter, dankjewel!

Ik heb een debugger in het form gezet en ik krijg het volgende:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Data Array:
Array
(
    [option] => com_chronoforms
    [tmpl] => component
    [chronoform] => inschrijf_form
    [event] => submit
    [Itemid] => 
    [input_text_12] => naam
    [input_text_13] => straat
    [input_text_14] => postcode / plaats
    [input_text_15] => tel
    [input_text_16] => email
    [input_radio_17] => radiobox keuze
    [chrono_verification] => AE3zY
    [input_submit_18] => Submit
    [a65f6c919aedc844149f022974440e8d] => 1
)

Validation Errors:
Array
(
)

Ik kan twee keuzes maken bij de radiobox. Welke keuze ik ook maak, de debugger geeft altijd [input_radio_17] aan. (trial & error :') !)
Je tip via DM (het niet bestaan van $form->data['radioboxes']) heeft mij doen beseffen dat ik in de PHP een verwijzing moet hebben naar die [input_radio_17] en naar de naam van het formulier.
De naam van het formulier is: inschrijf_form

De PHP mét inschrijf_form en input_radio_17:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if ( !isset($inschrijf_form->data['input_radio_17']) || count($inschrijf_form->data['input_radio_17']) == ) {
  return;
}
$files_array = array (
    
    
=>    JPATH_SITE.'http://www.etcetera.pdf',
    
=>     JPATH_SITE.'http://www.etcetera.pdf',
);
$attach_files = array();
foreach ( 
$files_array as $k => $v ) {
  if ( 
in_array($k$inschrijf_form->data['input_radio_17']) ) {
    
$attach_files[] = $v;
  }
}
$inschrijf_form->data['file_array'] = $attach_files;

print_r($_POST)
?>

Het formulier verstuurt nog steeds geen PDF naar de gebruiker.
Mijn vraag is echter of het formulier en de PHP in theorie zou moeten werken.
Zo ja; dan weet ik dat de code klopt en dat ik verder zoeken naar een instelling die ik over het hoofd zie.
  Moderator / Redactie Sport / Devops donderdag 20 februari 2014 @ 00:38:08 #79
176766 crew  zoem
zoemt
pi_136916713
Even los van de bijlage, wordt er uberhaupt wel een mail gestuurd na het submitten van het formulier? Als dat al niet werkt ligt het probleem niet bij de bijlage.

Even door de chronoforms library gebladerd, maar wat is dat anno 2014 slechte code zeg...
pi_136916783
quote:
0s.gif Op donderdag 20 februari 2014 00:38 schreef zoem het volgende:
Even los van de bijlage, wordt er uberhaupt wel een mail gestuurd na het submitten van het formulier? Als dat al niet werkt ligt het probleem niet bij de bijlage.
Ja, de admin ontvangt een email met daarin de ingevulde gegevens.
  Moderator / Redactie Sport / Devops donderdag 20 februari 2014 @ 00:55:51 #81
176766 crew  zoem
zoemt
pi_136916994
De vraag is nu waar het fout gaat. Komen de formuliergegevens juist door? Zo ja, gaat het verwerken ervan goed? Indien ja, via welke code wordt de emailinhoud samengesteld en hoe wordt het verzonden? Je zult stap voor stap steeds een stukje dieper de code in moeten duiken door functie-aanroepen te volgen tot het punt waar je de fout tegenkomt. Soms heb je het zo gevonden, maar soms kun je ook úren bezig zijn om een klein foutje eruit te vissen. Goed kunnen debuggen is een kunst op zich :)
pi_136920014
quote:
5s.gif Op donderdag 20 februari 2014 00:18 schreef karton2 het volgende:


De PHP mét inschrijf_form en input_radio_17:
[ code verwijderd ]

Het formulier verstuurt nog steeds geen PDF naar de gebruiker.
Mijn vraag is echter of het formulier en de PHP in theorie zou moeten werken.
Zo ja; dan weet ik dat de code klopt en dat ik verder zoeken naar een instelling die ik over het hoofd zie.
Probeer eerst eens terug begrijpen wat je code precies doet voordat je random dingen gaat aanpassen. wat je nu hebt staan slaat namelijk helemaal nergens op.

Zoek eens op php.net op wat de gebruikte functies en loops doen. Zorg dat je helder hebt wat er in de variabelen staat die je gebruikt. Op deze manier met hagel schieten brengt je nergens.
  donderdag 20 februari 2014 @ 09:48:48 #83
25889 Sitethief
Fulltime Flapdrol
pi_136920606
Ik had een vraagje over Exceptions, ik ben nu bezig mezelf aan te leren om die vaker te gebruiken ipv steed false terug te geven als er iets mis gaat. Ik stuur nu veel exceptions terug naar de plek van aanroep door verschillende functies heen, alleen ik heb nu het idee dat het eigenlijk niet de beste manier is zoal ik dat nu doe. Volgens mij kan ik namelijk ook alle exceptions in 1 try catch doorsturen. Maar ook vraag ik me af of dit wel nodig is, omdat de class aanroep zelf ook al in een try catch zit. Het wordt anders wel een hele lang lijst met try catch...
Zie deze code:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
/**
     * Bouw generieke generator op met eventuele extra data uit child classes
     * 
     * Voorbeeld voor de options
     * $options = array(
     *                  'allTpls'           =>  'getAllFormTpls',
     *                  'listTpl'           =>  '/generator/listTemplates',
     *                  'elementTpl'        =>  '/generator/element',
     *                  'generatorTpl'      =>  '/generator/generator',
     *                  'modifyTpl'         =>  '/generator/modify',
     *                  'configurationTpl'  =>  '/generator/configuration',
     *   );
     * 
     * @param string $type Generator type, bijv. report, form. Zal bijv. worden gebruikt in de benanimg van id's in html etc
     * @param array $options array met opties, zie hierboven voor alle mogelijk onderdelen
     * @throws \library\generator\Exception    Rethrows alle exceptions
     * @return void
     */
    
public function __construct($type$options) {
        
parent::__construct($this->dbOptions);          //bouw db in de OMS parent class op
        
try {
            
$this->setOptions($options);                //set $this->options
        
} catch (Exception $exc) {
            throw 
$exc//rethrow
        
}
        
$this->setObjects($this->dbOptions);            //haal alle toegankelijke objecteninformatie op dmv een functie in de ixPlanta class
        
$this->secure = new Secure();                   //instantieer de secure class
        
try {
            
$this->setType($type);                      //set $this->type
        
} catch (Exception $exc) {
            throw 
$exc//rethrow
        
}
        try {                                           
//set $this->company  
            
$this->setCompany(true);                    //@TODO ondersteuning voor meerdere companies inbouwen?  
        
} catch (Exception $exc) {
            throw 
$exc//rethrow
        
}
        
$this->setProject();                            //set project en projectDbName gebaseerd op de IXPLATTFORM constante
        
$this->setDesign();                             //set design doc gebaseerd op de IXPLATTFORM constante
        
try {
            
$this->setViews();                          //set $this->views met alle views uit $this->options
        
} catch (Exception $exc) {
            throw 
$exc//rethrow
        
}
        try {
            
$this->setTemplates();                      //set $this->templates met alle templates uit $this->options
        
} catch (Exception $exc) {
            throw 
$exc//rethrow
        
}
        try {
            
$this->setChunkTplChunks();                 //set $this->chunktpl met alle templates uit $this->templates
        
} catch (Exception $exc) {
            throw 
$exc//rethrow
        
}
        try {
            
$this->setUserGroupNames();                 //set $this->userGroupNames
        
} catch (Exception $exc) {
            throw 
$exc//rethrow
        
}        
    }

    public function 
setType($type){
        if (isset(
$type) && is_string($type)) {
            
$this->type $type;                        //set type
        
} else {
            throw new \
Exception('Invalid type');
        }
    }
?>
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  donderdag 20 februari 2014 @ 10:07:46 #84
25889 Sitethief
Fulltime Flapdrol
pi_136920995
Hmm, ik heb ze nu gewoon verwijderd, las net ergens dit:
quote:
You should not be catching the exception unless you intend to do something meaningful.
En dat is nu niet het geval.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_136925569
Wat je hebt gedaan is goed. In je testsuite zie je vanzelf dat het doodgaat als de onderliggende meuk dood gaat. Tenzij je iets doet als:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
try { 
   
ga_dood();

catch (
Exception $e) { 
    
# Ik weet dat ik doodga, maar het boeit niet, tenzij ik foutmelding X krijg
    
if ($e->getMessage() == "Nu moet je wel doodgaan") { 
        throw(
$e);
    }
}

# life is like a box of chocolates
?>

Wat ik vaak doe is dat ik ga kijken of de situatie goed is om iets te doen, meestal assert ik dan de opties en ga ik ook dood als het fout gaat.

Dus als $this->set_company($company); doodgaat omdat company undef is:

Dan zorg ik ervoor dat 1) de param niet undef kan zijn en dat m'n caller er gelijk uitklapt en $company bijvoorbeeld bepaalde waarde is controleer ik vooraf of die waarde wel correct is en dat doen we dan met bijvoorbeeld een constante. En dan kan je door je gehele applicatie dat checken en mogelijk Exceptions throwen.

[ Bericht 14% gewijzigd door slacker_nl op 20-02-2014 12:58:32 ]
In theory there is no difference between theory and practice. In practice there is.
pi_136928219
quote:
0s.gif Op donderdag 20 februari 2014 10:07 schreef Sitethief het volgende:
Hmm, ik heb ze nu gewoon verwijderd, las net ergens dit:

[..]

En dat is nu niet het geval.
Ik las heel jouw post en dacht ik ga posten erop, tot ik deze post las :P

Met elke functie die een actie doet met gevolgen, zorg je ervoor dat je een return false hebt bijvoorbeeld.
Exceptions maak je eigenlijk zelden gebruik van, Alleen als je wilt dat je script ermee stop op het moment van de exceptie (meestal een fatal error)
pi_136954297
quote:
0s.gif Op donderdag 20 februari 2014 10:07 schreef Sitethief het volgende:
Hmm, ik heb ze nu gewoon verwijderd, las net ergens dit:

[..]

En dat is nu niet het geval.
De belangrijkste regels voor het werken met excepties zijn:
1. Gebruik excepties alleen voor exceptionele situaties.
2. Gooi nooit Exception (maar bijvoorbeeld een InvalidArgumentException)
3. Vang altijd Exception, niet alleen het specifieke type dat wordt gegooid

Dus als je bijvoorbeeld user input aan het controleren bent, moet je geen excepties gooien. Het is (in mijn ogen) verwacht gedrag dat die input niet voldoet aan de eisen die je eraan stelt.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
/**
 * @param string $type
 *
 * @throws \InvalidArgumentException
 */
public function setType($type)
{
    if (!
is_string($type) {
        throw new \
InvalidArgumentException('$type must be a string');
    }

    
$this->type $type;
}
?>

Docblocks zijn heel handig om aan te geven wat een functie doet, welke argumenten er worden verwacht, welk type er teruggegeven wordt en wat er aan excepties kan worden verwacht. Je kunt er uiteraard ook bijzetten wat een functie doet.
pi_136954564
quote:
0s.gif Op donderdag 20 februari 2014 12:51 schreef slacker_nl het volgende:

Wat ik vaak doe is dat ik ga kijken of de situatie goed is om iets te doen, meestal assert ik dan de opties en ga ik ook dood als het fout gaat.

Dus als $this->set_company($company); doodgaat omdat company undef is:

Dan zorg ik ervoor dat 1) de param niet undef kan zijn en dat m'n caller er gelijk uitklapt en $company bijvoorbeeld bepaalde waarde is controleer ik vooraf of die waarde wel correct is en dat doen we dan met bijvoorbeeld een constante. En dan kan je door je gehele applicatie dat checken en mogelijk Exceptions throwen.
Asserts hebben het nadeel dat ze uitgezet kunnen worden. Ik kan dus instellen dat ze bij mij niet afgaan, waardoor ik niet gewaarschuwd wordt voor ongeldige waardes. Om die reden vind ik asserts eigenlijk geen geschikte optie voor public API, en wel voor private en protected functies.
  vrijdag 21 februari 2014 @ 09:39:54 #90
25889 Sitethief
Fulltime Flapdrol
pi_136963806
quote:
0s.gif Op donderdag 20 februari 2014 23:04 schreef Light het volgende:

[..]

De belangrijkste regels voor het werken met excepties zijn:
1. Gebruik excepties alleen voor exceptionele situaties.
2. Gooi nooit Exception (maar bijvoorbeeld een InvalidArgumentException)
3. Vang altijd Exception, niet alleen het specifieke type dat wordt gegooid

Dus als je bijvoorbeeld user input aan het controleren bent, moet je geen excepties gooien. Het is (in mijn ogen) verwacht gedrag dat die input niet voldoet aan de eisen die je eraan stelt.
[ code verwijderd ]

Docblocks zijn heel handig om aan te geven wat een functie doet, welke argumenten er worden verwacht, welk type er teruggegeven wordt en wat er aan excepties kan worden verwacht. Je kunt er uiteraard ook bijzetten wat een functie doet.
Alleen zijn al die dingen geen userinput maar input van classes die op deze class bouwen, die dus een generator willen opbouwen met hun instellingen, dus bijv. een class van mijn collega gebouwd.

(Even kort antwoord, bedankt voor de tips van allebei de posters)
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  Moderator / Redactie Sport / Devops vrijdag 21 februari 2014 @ 10:26:31 #91
176766 crew  zoem
zoemt
pi_136965052
quote:
0s.gif Op donderdag 20 februari 2014 12:51 schreef slacker_nl het volgende:
Wat je hebt gedaan is goed.
Als je de code gepost door Sitethief bedoelt: die (constructor) is fout, maar hij heeft het daarna op de juiste manier gecorrigeerd. Het tussendoor opvangen van exceptions en het daarna gelijk rethrowen is natuurlijk onzinnig. Niet alleen vanwege het feit dat het overbodige code is, maar het kan ook de call stack trace beïnvloeden. Ik ben het dan ook geheel eens met Light over het gebruik van exceptions.
quote:
Wat ik vaak doe is dat ik ga kijken of de situatie goed is om iets te doen, meestal assert ik dan de opties en ga ik ook dood als het fout gaat.
Hoe vaak ben je al 'doodgegaan' als ik vragen mag? Ik vind het zo'n gekke bewoording :P
  vrijdag 21 februari 2014 @ 10:42:14 #92
187069 slacker_nl
Sicko pur sang
pi_136965489
quote:
14s.gif Op vrijdag 21 februari 2014 10:26 schreef zoem het volgende:

[..]

Als je de code gepost door Sitethief bedoelt: die (constructor) is fout, maar hij heeft het daarna op de juiste manier gecorrigeerd. Het tussendoor opvangen van exceptions en het daarna gelijk rethrowen is natuurlijk onzinnig. Niet alleen vanwege het feit dat het overbodige code is, maar het kan ook de call stack trace beïnvloeden. Ik ben het dan ook geheel eens met Light over het gebruik van exceptions.

[..]

Hoe vaak ben je al 'doodgegaan' als ik vragen mag? Ik vind het zo'n gekke bewoording :P
Ik ben al heel vaak doodgegaan. En m'n code nog meer!

En ik doelde op de correctie ja ;)

[ Bericht 5% gewijzigd door slacker_nl op 21-02-2014 10:54:21 ]
In theory there is no difference between theory and practice. In practice there is.
  vrijdag 21 februari 2014 @ 10:50:55 #93
187069 slacker_nl
Sicko pur sang
pi_136965739
quote:
0s.gif Op donderdag 20 februari 2014 23:04 schreef Light het volgende:

Dus als je bijvoorbeeld user input aan het controleren bent, moet je geen excepties gooien. Het is (in mijn ogen) verwacht gedrag dat die input niet voldoet aan de eisen die je eraan stelt.
Je frontend code moet dat goed afvangen, je backend code moet doodgaan op het moment dat de input incorrect is. Ipv Exceptions zou je ook nog trigger_error kunnen gebruiken.
In theory there is no difference between theory and practice. In practice there is.
  vrijdag 21 februari 2014 @ 10:53:57 #94
187069 slacker_nl
Sicko pur sang
pi_136965848
quote:
0s.gif Op donderdag 20 februari 2014 23:08 schreef Light het volgende:

[..]

Asserts hebben het nadeel dat ze uitgezet kunnen worden. Ik kan dus instellen dat ze bij mij niet afgaan, waardoor ik niet gewaarschuwd wordt voor ongeldige waardes. Om die reden vind ik asserts eigenlijk geen geschikte optie voor public API, en wel voor private en protected functies.
Dat is waar, maar ik maak asserts publiek, zodat als je ze wilt gebruiken het wel kan, en als je het niet doet, doe ik het alsnog voor je, alleen kan je vooraf al zien of een call zou gaan werken of niet. Het is een beetje defensief programeren.
In theory there is no difference between theory and practice. In practice there is.
pi_136970313
quote:
0s.gif Op vrijdag 21 februari 2014 10:53 schreef slacker_nl het volgende:

[..]

Dat is waar, maar ik maak asserts publiek, zodat als je ze wilt gebruiken het wel kan, en als je het niet doet, doe ik het alsnog voor je, alleen kan je vooraf al zien of een call zou gaan werken of niet. Het is een beetje defensief programeren.
Ik heb zelf dit in mijn code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
namespace System\Core;

use \
System\Core\Container;
use 
System\Core\Traits\ArrayAccessor;
use 
System\Core\Traits\ArrayIterate;

/**
 * Class Base
 * @package System\Core
 */
class Base implements \ArrayAccess, \Iterator {

    use 
ArrayAccessorArrayIterate;

    
/**
     * @param callable $closure
     */
    
public function __construct(\Closure $closure null) {
        if(
is_callable($closure)) {
            return 
$closure($this);
        }
        return 
$this;
    }

    
/**
     * @param Container\Settings $settings
     */
    
public function setSettings(Container\Settings $settings null) {
        if(
is_object($settings)) {
            foreach(
$settings as $k => $v) {
                
$this->{$k} = $v;
            }
        }
    }

    
/**
     * @param Container\Settings $settings
     */
    
public function setDependencies(Container\Settings $settings null) {
        
$this->setSettings($settings);
    }

    
/**
     * @param $name
     * @param array $args
     * @return bool
     */
    
public function __call($name, Array $args = []) {
        
$type substr($name03);
        
$var strtolower(substr($name3));
        switch(
$type) {
            case 
'set':
                
$this->$var $args[0];
            break;
            case 
'get':
                return isset(
$this->$var)?$this->var:false;
            break;
        }
    }
}

Elke class die dus base extend, heeft toegang tot automagische get en set calls.
Nu heb ik geen foutafhandeling er nog inzitten, meer omdat er niet echt wat fout kan gaan :P
pi_136975571
quote:
0s.gif Op vrijdag 21 februari 2014 10:50 schreef slacker_nl het volgende:

[..]

Je frontend code moet dat goed afvangen, je backend code moet doodgaan op het moment dat de input incorrect is. Ipv Exceptions zou je ook nog trigger_error kunnen gebruiken.
Ik heb ook code gezien die gebruikt werd om te bepalen of iets wel of niet geldig is en die een exceptie gooide in het geval de input niet geldig was. Als de input wel geldig was, werd gewoon netjes true teruggegeven.

Afhankelijk van de situatie kan het valide zijn om inputcontrole bij een setter te plaatsen, en dan een exceptie te gooien als de input niet geldig is. Je kunt er ook voor kiezen dat niet te doen en in de class een method validate() oid te implementeren die dan gewoon true of false teruggeeft afhankelijk van de waardes van de verschillende velden. En daar zijn ook combinaties van mogelijk.
pi_136976535
quote:
0s.gif Op vrijdag 21 februari 2014 15:06 schreef Light het volgende:

[..]

Ik heb ook code gezien die gebruikt werd om te bepalen of iets wel of niet geldig is en die een exceptie gooide in het geval de input niet geldig was. Als de input wel geldig was, werd gewoon netjes true teruggegeven.

Afhankelijk van de situatie kan het valide zijn om inputcontrole bij een setter te plaatsen, en dan een exceptie te gooien als de input niet geldig is. Je kunt er ook voor kiezen dat niet te doen en in de class een method validate() oid te implementeren die dan gewoon true of false teruggeeft afhankelijk van de waardes van de verschillende velden. En daar zijn ook combinaties van mogelijk.
Ja bij sommige frameworks zie je inderdaad een InvalidInputException o.i.d.

Wat ik zelf doe is de validatie op de validate() manier
Dit is bijvoorbeeld mijn logincontroller
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
<?php
namespace Controller;

use 
Model\User;
use 
System\Core\Controller;
use 
System\Core\Form\Element;
use 
System\Core\Form\Input;
use 
System\Helpers\Html;

/**
 * Class Login
 * @package Controller
 */
class Login extends Controller {
    public function 
index() {
        
$this->form->addElement(new Element\Fieldset([
            
'elements' => [
                new 
Input\Text([
                    
'name' => 'username',
                    
'required' => true,
                    
'baseValue' => 'Username',
                    
'validator' => ['Length' => ['min' => 3]]
                ]),
                new 
Input\Password([
                    
'name' => 'password',
                    
'baseValue' => 'Password',
                    
'validator' => ['Length' => ['min' => 5]]
                ]),
                new 
Element\Submit([
                    
'name' => 'login',
                    
'value' => 'Login'
                
])
            ]
        ]));
        if(
$this->request->isPost()) {
            if(
$this->form->validate()) {
                
$user User::find_by_username($this->request->post('username'));
                if(isset(
$user->id)) {
                    if(
password_verify($this->request->post('password'),$user->password)) {
                        
$_SESSION['user'] = ['id' => $user->id];
                        
$user->login_attempts 0;
                        
$this->url->redirect($this->url->createUrl());
                    } else {
                        
$user->login_attempts += 1;
                    }
                    
$user->save();
                }
            }
        }
        
$this->template->load('login', ['form' => $this->form]);
        echo 
$this->template;
    }

Form class:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
namespace System\Core;

/**
 * Class Form
 * @package System\Core
 */
class Form extends Base {
    private 
$elements = array();

    public 
$method 'post';

    public 
$name '';

    public 
$valid true;

    public 
$enctype 'application/x-www-form-urlencoded';

    
/**
     * @param $element
     */
    
public function addElement($element) {
        
$this->elements[$element->name] = $element;
    }

    public function 
show() {
        foreach(
$this->elements as $e) {
            echo 
$e;
        }
    }

    
/**
     * @return bool
     */
    
public function validate() {
        foreach(
$this->elements as $e) {
            if(
false === $e->validate()){
                
$this->valid false;
            }
        }
        return 
$this->valid;
    }

    
/**
     * @return array
     */
    
public function __sleep() {
        return 
$this->elements;
    }

    
/**
     * @return string
     */
    
public function __toString() {
        
$output '<form method="' $this->method '" name="' $this->name '" enctype="'.$this->enctype.'">';
        foreach(
$this->elements as $e) {
            
$output .= $e;
        }
        
$output .= '</form>';
        return 
$output;
    }
}

Input class:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?php
namespace System\Core\Form;

use \
System\Core;

use \
System\Core\Form\Validator;

/**
 * Class Input
 * @package System\Core\Form
 */
class Input extends Element {
    public 
$required false;
    public 
$baseValue '';
    public 
$checked false;
    public 
$validator;
    public 
$description;
    public 
$options = array();
    public 
$value '';
    public 
$min;
    public 
$max;
    public 
$step;
    public 
$validMessage '';
    public 
$valid;
    protected 
$settings;

    use 
Core\Traits\getObjVars;

    
/**
     * @param array $data
     */
    
public function __construct(array $data) {
        foreach(
$data as $k => $v) {
          
$this->$k $v;
        }

        if(
$this->request->isPost()) {
            if(
false !== $this->request->post($this->name)) {
                
$this->value $this->request->post($this->name);
            }
        }
    }

    
/**
     * @return string
     */
    
public function getClass() {
        return isset(
$this->class)?' class="'.$this->class.'"':'';
    }

    
/**
     * @return string
     */
    
public function getRequired() {
        return 
false === $this->required?'':' required aria-required="true"';
    }

    
/**
     * @return string
     */
    
public function getMinMaxStep() {
        return 
' min="'.$this->min.'" max="'.$this->max.'" step="'.$this->step.'" ';
    }

    
/**
     * @return string
     */
    
public function getValue() {
        return 
' value="'.$this->value.'"';
    }

    
/**
     * @return string
     */
    
public function getLabel() {
        return isset(
$this->label)?'<label for="'.$this->name.'">'.$this->label.'</label>':'';
    }

    
/**
     * @return string
     */
    
public function getDescribed() {
        return isset(
$this->description)?'aria-describedby="'.$this->name.'-format"':'';
    }

    
/**
     * @return string
     */
    
public function getDescription() {
        return isset(
$this->description)?'<span id="'.$this->name.'-format" class="help">'.$this->description.'</span>':'';
    }

    
/**
     * @param $value
     */
    
public function setValue($value) {
        
$this->value $value;
    }
}
pi_136993866
quote:
0s.gif Op vrijdag 21 februari 2014 15:27 schreef totalvamp het volgende:

[..]

Ja bij sommige frameworks zie je inderdaad een InvalidInputException o.i.d.

Wat ik zelf doe is de validatie op de validate() manier
Dit is bijvoorbeeld mijn logincontroller
[ code verwijderd ]

Form class:
[ code verwijderd ]

Input class:
[ code verwijderd ]

Ik zou in die Form class geen field $valid maken maar het resultaat gewoon binnen de functie houden. Verder kun je die validate() functie nog wat optimaliseren door te stoppen met valideren zodra je een element gevonden hebt dat niet valid is (maar dat kan uiteraard niet als validate() meer doet dan alleen valideren).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
    
/**
     * @return bool
     */
    
public function validate() {
        
$valid true;
        foreach(
$this->elements as $e) {
            if(
false === $e->validate()){
                
$valid false;
                break;
            }
        }
        return 
$valid;
    }
?>
pi_136996046
quote:
_O- _O- _O_
pi_137000915
quote:
0s.gif Op vrijdag 21 februari 2014 21:54 schreef Light het volgende:

[..]

Ik zou in die Form class geen field $valid maken maar het resultaat gewoon binnen de functie houden. Verder kun je die validate() functie nog wat optimaliseren door te stoppen met valideren zodra je een element gevonden hebt dat niet valid is (maar dat kan uiteraard niet als validate() meer doet dan alleen valideren).
[ code verwijderd ]

Dit is meer voor eventueel een extra optie zodat je later in de code ook kan kijken of je form geldig was.
Dit werkt niet lekker, aangezien je niet meerdere elementen een error mee kan geven dan.

Ik heb ook niet alle code laten zien aangezien alles op elkaar aansluit.

Het is een behoorlijk class heavy form class.

Als je hem volledig wilt zien (nog niet af)
http://sourceforge.net/p/totalfw/code/ci/master/tree/

[ Bericht 4% gewijzigd door #ANONIEM op 22-02-2014 00:24:25 ]
  zaterdag 22 februari 2014 @ 17:08:27 #101
187069 slacker_nl
Sicko pur sang
pi_137019271
quote:
0s.gif Op vrijdag 21 februari 2014 15:06 schreef Light het volgende:

[..]

Ik heb ook code gezien die gebruikt werd om te bepalen of iets wel of niet geldig is en die een exceptie gooide in het geval de input niet geldig was. Als de input wel geldig was, werd gewoon netjes true teruggegeven.

Afhankelijk van de situatie kan het valide zijn om inputcontrole bij een setter te plaatsen, en dan een exceptie te gooien als de input niet geldig is. Je kunt er ook voor kiezen dat niet te doen en in de class een method validate() oid te implementeren die dan gewoon true of false teruggeeft afhankelijk van de waardes van de verschillende velden. En daar zijn ook combinaties van mogelijk.
In Perl, mijn dagelijkse brood, heb je Moose en verschillende parameter check modules, Params::Check, Params::Validate en Data::FormValidator. Bij Moose kan je gewoon zeggen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package My::Fok;

use Moose;

has 'fok' => (
  is => 'rw',
  isa => 'Int', # Str, ArrayRef, etc etc 'Class::Name' 
  required => 0,
  default => sub { return 1},
);

1;

## Elders in je code base
use My::Fok;
my $fok = My::Fok->new(fok => 100);

En dan kan het alleen van dat type zijn.

Params::Check en consorten kan je gebruiken voor functies. Dat maakt een heel hoop code, die bij sommige hier zo verweven zit in je code overbodig.

Dan krijg je zulke dingen:

1
2
3
4
5
6
sub my_func {
    my $args = check({foo => { required => 1, isa => "My::Fok" }}, {@_});
}

my $fok = My::Fok->new(fok => 100);
my_func(foo => $fok);

Als je iets anders erin stopt gaat de validator mekkeren en ga je dood of niet. En dat is zo handig! Zo kan je heel fine grained bepalen of input voldoet aan de eisen die je stelt en anders: b0rk.
In theory there is no difference between theory and practice. In practice there is.
pi_137092426
quote:
0s.gif Op zaterdag 22 februari 2014 17:08 schreef slacker_nl het volgende:

[..]

In Perl, mijn dagelijkse brood, heb je Moose en verschillende parameter check modules,
Werk je toevallig bij Booking.com dat je nog in Perl werkt ;) ?
🕰️₿🕰️₿🕰️₿🕰️₿🕰️₿🕰️ TikTok next Block
  maandag 24 februari 2014 @ 16:14:45 #103
187069 slacker_nl
Sicko pur sang
pi_137093995
quote:
0s.gif Op maandag 24 februari 2014 15:30 schreef raptorix het volgende:

[..]

Werk je toevallig bij Booking.com dat je nog in Perl werkt ;) ?
Nope.
In theory there is no difference between theory and practice. In practice there is.
pi_137210185
Hoe werken functions in PHP? Ik gebruik een los PHP bestand om data in een database te manipuleren maar ik kan daarbij geen gebruik maken van functions. Bijvoorbeeld onderstaande code werkt niet, maar als ik dezelfde mysqli_query buiten de function zet werkt het prima. Werkt een php functie alleen als er een echo of return in zit?

test();

function test(){
mysqli_query(blalba);
}
  Moderator / Redactie Sport / Devops donderdag 27 februari 2014 @ 19:34:57 #105
176766 crew  zoem
zoemt
pi_137210501
De functies zullen eerst gedeclareerd moeten worden alvorens ze aangeroepen kunnen worden. In je voorbeeld moet de call naar test() dus onder de include staan. Dat is hoe php werkt.

[ Bericht 3% gewijzigd door zoem op 27-02-2014 21:33:12 ]
pi_137217114
quote:
0s.gif Op donderdag 27 februari 2014 19:34 schreef zoem het volgende:
De functies zullen eerst gedeclareerd moeten worden alvorens ze aangeroepen kunnen worden. In je voorbeeld moet de call naar test() er dus onder staan. Dat is hoe php werkt.
Nee, dat is niet hoe php werkt. Je kunt prima een functie aanroepen en daarna declareren. Je kunt ook twee functies maken die elkaar aanroepen zonder dat je daar spannende extra dingen voor hoeft te doen.
pi_137217353
quote:
0s.gif Op donderdag 27 februari 2014 19:28 schreef terdege het volgende:
Hoe werken functions in PHP? Ik gebruik een los PHP bestand om data in een database te manipuleren maar ik kan daarbij geen gebruik maken van functions. Bijvoorbeeld onderstaande code werkt niet, maar als ik dezelfde mysqli_query buiten de function zet werkt het prima. Werkt een php functie alleen als er een echo of return in zit?

test();

function test(){
mysqli_query(blalba);
}
Dat zou gewoon moeten werken. Maar het is wat lastig om je te helpen zolang niet duidelijk is wat er gebeurt als je de code in functies hebt staan.

Tip: plaats php code tussen [php] en [/php] voor leuke kleurtjes en regelnummers enzo.
  Moderator / Redactie Sport / Devops donderdag 27 februari 2014 @ 21:34:42 #108
176766 crew  zoem
zoemt
pi_137217441
quote:
0s.gif Op donderdag 27 februari 2014 21:29 schreef Light het volgende:

[..]

Nee, dat is niet hoe php werkt. Je kunt prima een functie aanroepen en daarna declareren. Je kunt ook twee functies maken die elkaar aanroepen zonder dat je daar spannende extra dingen voor hoeft te doen.
Dat werkt alleen als het binnen hetzelfde bestand staat. Hij heeft een losse file met functies die waarschijnlijk later pas geinclude wordt. En dan gaat je verhaal niet op. Heb even m'n reactie aangepast zodat het duidelijker is.
pi_137217888
quote:
0s.gif Op donderdag 27 februari 2014 21:34 schreef zoem het volgende:

[..]

Dat werkt alleen als het binnen hetzelfde bestand staat. Hij heeft een losse file met functies die waarschijnlijk later pas geinclude wordt. En dan gaat je verhaal niet op. Heb even m'n reactie aangepast zodat het duidelijker is.
Ja ok :) Je moet een file eerst includen voordat je de code daarin kunt aanspreken.
pi_137218347
quote:
0s.gif Op donderdag 27 februari 2014 21:42 schreef Light het volgende:

[..]

Ja ok :) Je moet een file eerst includen voordat je de code daarin kunt aanspreken.
Wat een stom principe zeg
In theory there is no difference between theory and practice. In practice there is.
pi_137218689
quote:
10s.gif Op donderdag 27 februari 2014 21:50 schreef slacker_nl het volgende:
Wat een stom principe zeg
Autoloaders _O_

[ Bericht 7% gewijzigd door #ANONIEM op 27-02-2014 21:57:47 ]
pi_137218961
quote:
Die werken voor classes, niet voor bestanden met losse functies.
pi_137219162
quote:
0s.gif Op donderdag 27 februari 2014 22:00 schreef Light het volgende:

[..]

Die werken voor classes, niet voor bestanden met losse functies.
Welke dinosaurus werkt er dan ook nog zonder classes :')

[ Bericht 7% gewijzigd door #ANONIEM op 27-02-2014 22:05:12 ]
pi_137220197
quote:
1s.gif Op donderdag 27 februari 2014 22:04 schreef CrashO het volgende:

[..]

Welke dinosaurus werkt er dan ook nog zonder classes :')
Terdege misschien?
pi_137220426
Dan zijn wij hier om hem te vertellen. Get to class(es) :+

[ Bericht 0% gewijzigd door #ANONIEM op 27-02-2014 22:26:11 ]
pi_137221390
quote:
1s.gif Op donderdag 27 februari 2014 22:04 schreef CrashO het volgende:

[..]

Welke dinosaurus werkt er dan ook nog zonder classes :')
niet alles hoeft OO te zijn he
In theory there is no difference between theory and practice. In practice there is.
  vrijdag 28 februari 2014 @ 09:15:38 #117
25889 Sitethief
Fulltime Flapdrol
pi_137229471
quote:
1s.gif Op donderdag 27 februari 2014 22:04 schreef CrashO het volgende:

[..]

Welke dinosaurus werkt er dan ook nog zonder classes :')
Niet alle functies wil je in een class hebben.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
pi_137232663
quote:
0s.gif Op vrijdag 28 februari 2014 09:15 schreef Sitethief het volgende:

[..]

Niet alle functies wil je in een class hebben.
Behalve de autoload functie, over wat voor functies heb jij het?
  vrijdag 28 februari 2014 @ 11:38:17 #119
187069 slacker_nl
Sicko pur sang
pi_137233006
quote:
1s.gif Op vrijdag 28 februari 2014 11:26 schreef totalvamp het volgende:

[..]

Behalve de autoload functie, over wat voor functies heb jij het?
Een bunch aan helper functies? Waarom zou je dat in een class willen frotten?
In theory there is no difference between theory and practice. In practice there is.
pi_137233499
quote:
0s.gif Op vrijdag 28 februari 2014 11:38 schreef slacker_nl het volgende:

[..]

Een bunch aan helper functies? Waarom zou je dat in een class willen frotten?
Zodat je alle die functies op 1 centrale overzichtelijke plek hebt.
Daarnaast heb je verschillende soorten helpers, miss wil je het wel opdelen.

Html helpers
Url helpers
Helper helpers
Parse helpers

Met classes blijf je overzichtelijk en is het duidelijk waar een functie vandaan komt.

En je kunt functienamen normaal houden, zodat je niet met dezelfde functienamen eindigt voor verschillende dingen.
  vrijdag 28 februari 2014 @ 12:31:50 #121
187069 slacker_nl
Sicko pur sang
pi_137234346
quote:
1s.gif Op vrijdag 28 februari 2014 11:54 schreef totalvamp het volgende:

[..]

Zodat je alle die functies op 1 centrale overzichtelijke plek hebt.
Daarnaast heb je verschillende soorten helpers, miss wil je het wel opdelen.

Html helpers
Url helpers
Helper helpers
Parse helpers

Met classes blijf je overzichtelijk en is het duidelijk waar een functie vandaan komt.

En je kunt functienamen normaal houden, zodat je niet met dezelfde functienamen eindigt voor verschillende dingen.
En dan moet je... wat doen precies?

1
2
3
4
include_once("Utils.php");

my $helper = new Helper;
$helper->parse_url();

of..

1
2
3
include_once("Utils.php");

parse_url();

Ik mis je punt. Of word alles een static functie?

Er is een plek voor OO en er is een plek voor non-OO en die werelden kun je best mixen. Wij doen redelijk aan OO, maar we hebben ook zeker non-OO componenten, dat zijn Util functies, het fijne is wel dat we precies kunnen zeggen wat we willen gebruiken uit een module.

[ Bericht 8% gewijzigd door slacker_nl op 28-02-2014 12:37:28 ]
In theory there is no difference between theory and practice. In practice there is.
pi_137236071
quote:
0s.gif Op vrijdag 28 februari 2014 12:31 schreef slacker_nl het volgende:
Ik mis je punt. Of word alles een static functie?
De include kan je weglaten bij de OO versie want die kan je met autoload laten afhandelen.
Dan is het dus precies evenlang als de niet OO versie. En imo een stuk onderhoudbaarder want je kunt helpers specifiek inrichten op een taak en alles netjes bij elkaar gouden, in dit geval een url helper.

En die dan niet static maken, maar wel inladen via bijv een (static) loader. Waarbij Loader bijhoudt of er al een instantie draait en die dan teruggeven, of een nieuwe aanmaken.

Dan krijg je iets als:
1
2
$uh = Loader::helper('url');
$uh->parse_url();


[ Bericht 14% gewijzigd door #ANONIEM op 28-02-2014 13:27:47 ]
pi_137238039
1
2
3
4
<?php
$url 
= new Url('http://www.fok.nl');
echo 
$url->getHost();
?>

+ psr-0 autoloader en de rest gaat automatisch. geen includes, geen loader class. eleganter kan niet denk ik :P
..///
pi_137239794
quote:
0s.gif Op vrijdag 28 februari 2014 14:23 schreef wipes66 het volgende:

[ code verwijderd ]

+ psr-0 autoloader en de rest gaat automatisch. geen includes, geen loader class. eleganter kan niet denk ik :P
_O_
pi_137239964
quote:
0s.gif Op vrijdag 28 februari 2014 14:23 schreef wipes66 het volgende:

[ code verwijderd ]

+ psr-0 autoloader en de rest gaat automatisch. geen includes, geen loader class. eleganter kan niet denk ik :P
Zo doe ik het ook ^^
  vrijdag 28 februari 2014 @ 18:22:19 #126
187069 slacker_nl
Sicko pur sang
pi_137245644
quote:
0s.gif Op vrijdag 28 februari 2014 14:23 schreef wipes66 het volgende:

[ code verwijderd ]

+ psr-0 autoloader en de rest gaat automatisch. geen includes, geen loader class. eleganter kan niet denk ik :P
Huiverig wordt ik ervan, automatisch files laden, expliciet aangeven welke klasse je wilt gebruiken in je module.

Hoe werkt autoloader eigenlijk, als ik t/inc/Net/LDAP.php heb en een lib/Net/LDAP.php, kan ik dan zeggen dat t/inc gebruikt moet worden of dat lib gebruikt moet worden?
In theory there is no difference between theory and practice. In practice there is.
  Moderator / Redactie Sport / Devops vrijdag 28 februari 2014 @ 18:36:00 #127
176766 crew  zoem
zoemt
pi_137245943
quote:
0s.gif Op vrijdag 28 februari 2014 18:22 schreef slacker_nl het volgende:

[..]

Huiverig wordt ik ervan, automatisch files laden, expliciet aangeven welke klasse je wilt gebruiken in je module.

Hoe werkt autoloader eigenlijk, als ik t/inc/Net/LDAP.php heb en een lib/Net/LDAP.php, kan ik dan zeggen dat t/inc gebruikt moet worden of dat lib gebruikt moet worden?
Ja, want de classloaders kunnen het pad achterhalen dmv de classname of namespace. Vroeger zag je vaak de "Vendor_My_Awesome_Class" constructie, waarbij underscores door slashes werden vervangen in de autoloader. Moderne frameworks gebruiken nu namespaces, waarbij de namespace separator wordt gebruikt voor het resolven van het pad. Een vereiste is dus dat er een toplevel namespace moet zijn.

Zie verder https://github.com/php-fi(...)er/accepted/PSR-0.md
pi_137246605
@ OO discussie. Ik weet hoe ik OO moet programmeren maar ik heb geen ervaring met PHP. Ik heb vervolgens geleerd om aparte PHP bestanden te maken voor verschillende taken die dan aan te roepen met behulp van JSON. Bijvoorbeeld: als iemand op een rode knop drukt wordt rodeknop.php uitgevoerd. Dit is dus geen goede manier om PHP te gebruiken?

quote:
0s.gif Op donderdag 27 februari 2014 21:33 schreef Light het volgende:

[..]

Dat zou gewoon moeten werken. Maar het is wat lastig om je te helpen zolang niet duidelijk is wat er gebeurt als je de code in functies hebt staan.

Tip: plaats php code tussen
[ code verwijderd ]

voor leuke kleurtjes en regelnummers enzo.
Vanuit HTML wordt een PHP bestand met deze code aangeroepen als iemand ergens op klikt. Het is vrij simpel. Alles werkt gewoon zoals het hoort, alleen de functies worden niet uitgevoerd.

1
2
3
4
5
6
7
8
9
<?php
    
include 'dbconnect.php';
    
test();

    function 
test(){
        
mysqli_query($link'UPDATE tablename SET Rowname=5');
    }
    
mysqli_close($link);
?>
pi_137246907
quote:
0s.gif Op vrijdag 28 februari 2014 18:59 schreef terdege het volgende:
Alles werkt gewoon zoals het hoort, alleen de functies worden niet uitgevoerd.
$link binnen je functie `test` gaat niet werken. Die zit in een andere scope. Als je hem daar wilt gebruiken zal je hem moeten meegeven. (of OO gaan en een property binnen je class aanspreken O-) )
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.


[ Bericht 16% gewijzigd door #ANONIEM op 28-02-2014 19:09:51 ]
pi_137246962
quote:
0s.gif Op vrijdag 28 februari 2014 18:59 schreef terdege het volgende:
@ OO discussie. Ik weet hoe ik OO moet programmeren maar ik heb geen ervaring met PHP. Ik heb vervolgens geleerd om aparte PHP bestanden te maken voor verschillende taken die dan aan te roepen met behulp van JSON. Bijvoorbeeld: als iemand op een rode knop drukt wordt rodeknop.php uitgevoerd. Dit is dus geen goede manier om PHP te gebruiken?

[..]

Vanuit HTML wordt een PHP bestand met deze code aangeroepen als iemand ergens op klikt. Het is vrij simpel. Alles werkt gewoon zoals het hoort, alleen de functies worden niet uitgevoerd.
[ code verwijderd ]

Wat je doet heeft niets met OO te maken, maar dat wil niet zeggen dat het 'geen goede manier'is. Als je OO wilt programmeren zul je toch echt classes, namespaces, methods enz. moeten gaan gebruiken.

Je functie in dat voorbeeld zal waarschijnlijk een foutmelding geven dat $link niet gedefinieerd is maar ik zie niet waarom hij niet uitgevoerd zou worden.
  Moderator / Redactie Sport / Devops vrijdag 28 februari 2014 @ 19:12:06 #131
176766 crew  zoem
zoemt
pi_137247023
Daarom ook altijd error reporting aanzetten :)
pi_137247758
OOP vind ik vreselijk werken in PHP. Het is niet lekker om MVC te programmeren zonder dat je die frameworks gebruikt.
pi_137248349
Waarom wordt er voor require_once/require/include haakjes gebruikt met daarin het bestand, terwijl het ook zonder haakjes kan?
pi_137248384
quote:
9s.gif Op vrijdag 28 februari 2014 19:29 schreef robin007bond het volgende:
OOP vind ik vreselijk werken in PHP. Het is niet lekker om MVC te programmeren zonder dat je die frameworks gebruikt.
PHP was in beginsel ook niet voor OOP gemaakt. Als je graag OOP wilt doen, dan zou ik m'n licht opsteken bij C++/Java/C#.
pi_137248440
quote:
0s.gif Op vrijdag 28 februari 2014 19:42 schreef Robuustheid het volgende:
Waarom wordt er voor require_once/require/include haakjes gebruikt met daarin het bestand, terwijl het ook zonder haakjes kan?
Netheid? Dat je ook dit "kan" doen met echo's betekend ook niet dat je het moet.
1
2
3
<?php
echo "ik echo deze $waarde naar buiten op een nekshot waardige manier";
?>
Zoals zoveel dingen in php kan je het netjes doen en het ranzig doen.
Shorthand notaties zijn ook zoiets. :r
1
2
3
<?php
echo ($ditIsTrue) ? 'dit was dus waar' 'dit niet';
?>
En vanaf PHP5 kan je heel aardig OO werken en vanaf PHP 5.3/5.4 is het imo prima voor elkaar.

[ Bericht 12% gewijzigd door #ANONIEM op 28-02-2014 19:52:29 ]
  Moderator / Redactie Sport / Devops vrijdag 28 februari 2014 @ 19:53:16 #136
176766 crew  zoem
zoemt
pi_137248775
Wat is er mis met de ternary operator? Daar zijn prima use cases voor, maar niet elk conditional statement leent zich ervoor.
pi_137249330
quote:
99s.gif Op vrijdag 28 februari 2014 19:45 schreef CrashO het volgende:

[..]

Netheid? Dat je ook dit "kan" doen met echo's betekend ook niet dat je het moet.
[ code verwijderd ]

Zoals zoveel dingen in php kan je het netjes doen en het ranzig doen.
Shorthand notaties zijn ook zoiets. :r
[ code verwijderd ]

En vanaf PHP5 kan je heel aardig OO werken en vanaf PHP 5.3/5.4 is het imo prima voor elkaar.
Haakjes gebruiken met include etc is iets van de vroegere PHP versies, tegenwoordig zou ik ze niet meer gebruiken.

Shorthand is juist onwijs handig en maak ik dankbaar gebruik van.

1
2
3
4
5
6
7
8
9
<?php
if($true) {
  return 
'ja';
} else {
  return 
'nee';
}

return 
$true?'ja':'nee';
?>
pi_137249815
quote:
0s.gif Op vrijdag 28 februari 2014 19:53 schreef zoem het volgende:
Wat is er mis met de ternary operator? Daar zijn prima use cases voor, maar niet elk conditional statement leent zich ervoor.
Ik denk dat CrashO doelde op de <?= shorthand.
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
  Moderator / Redactie Sport / Devops vrijdag 28 februari 2014 @ 20:27:47 #139
176766 crew  zoem
zoemt
pi_137249994
quote:
3s.gif Op vrijdag 28 februari 2014 20:21 schreef papernote het volgende:

[..]

Ik denk dat CrashO doelde op de <?= shorthand.
Ik zie geen short open tag staan in zijn reactie :?
pi_137250114
quote:
0s.gif Op vrijdag 28 februari 2014 20:27 schreef zoem het volgende:

[..]

Ik zie geen short open tag staan in zijn reactie :?
Dat fixte de php tag van Fok ongewild automagisch voor me :P, stond er wel.
Maar ik bedoel ook op beide de shorthand (shorthand echo en shorthand if/else (met tarnary operator).
Wilde eigenlijk zoiets neerzetten.
<?=($ditIsTrue) ? 'dit was dus waar' : 'dit niet'?>

[ Bericht 1% gewijzigd door #ANONIEM op 28-02-2014 20:32:00 ]
pi_137250833
Met PHP,

In plaats van <?php en ?>

Kun je ook slechts bij <?= houden.

Maar dan krijg ik vreemde dingen te zien.

Als ik zo doe:

1
2
3
4
<?=

require 'test.php';
echo 1;

Dan is de output 11.

Als ik vervolgens require weglaat, dan krijg ik een error met melding dat-ie de echo niet verwachtte. Hoe zit dit precies?
pi_137250993
quote:
0s.gif Op vrijdag 28 februari 2014 20:51 schreef Robuustheid het volgende:
Met PHP,
In plaats van <?php en ?>

Kun je ook slechts bij <?= houden.
Eh. Nee. Dat probeerden we hierboven ook allemaal uit te leggen :P
<?=$henk?> doet feitelijk hetzelfde als <?php echo $henk; ?>

Wat jij nodig hebt is <? (shorttags) . Dit doet hetzelfde als <?php
(maar het is netter omdat overal altijd gewoon <?php te gebruiken omdat shorttags in de config aan moeten staan om ze te kunnen gebruiken. En <?php gewoon overal werkt.

Wat bij jou nu gebeurt is dat <?=require 'test.php'; de response van de require echo't (dat is true wanneer het includen lukt, dus 1). en daarna de echo '1'. Dus dan krijg je 11. Als je de require weglaat doe je eigenlijk echo echo '1'; en staat er dus een echo teveel waarop hij dood gaat :P

[ Bericht 8% gewijzigd door #ANONIEM op 28-02-2014 20:58:04 ]
pi_137251612
Zeer verhelderende uitleg, thanks CrashO!
pi_137255485
quote:
0s.gif Op vrijdag 28 februari 2014 19:42 schreef Robuustheid het volgende:
Waarom wordt er voor require_once/require/include haakjes gebruikt met daarin het bestand, terwijl het ook zonder haakjes kan?
In PHP heb je bij language constructs als require/include/reuquire_once/include_once (en ook echo, en nog een aantal) geen haakjes nodig. Je mag ze wel gebruiken, dan ziet het er iets meer uit als een gewone functie-aanroep.
  Moderator / Redactie Sport / Devops zaterdag 1 maart 2014 @ 00:15:32 #145
176766 crew  zoem
zoemt
pi_137260427
Op SO staat wel een leuke uitleg over language constructs, mocht iemand zin hebben om er meer over te lezen. Zie ook de list of keywords op php.net.
pi_137260670
quote:
1s.gif Op vrijdag 28 februari 2014 19:43 schreef Robuustheid het volgende:

[..]

PHP was in beginsel ook niet voor OOP gemaakt. Als je graag OOP wilt doen, dan zou ik m'n licht opsteken bij C++/Java/C#.

Die talen kan ik ook wel. Het probleem is dat het niet zo geschikt is voor web development. Je hebt wel JSP, maar dat schijnt niet zo lekker te werken. C# kan i.c.m. ASP.net, maar ik heb een gruwelijke hekel aan Microsoft dus dat gaat 'em niet worden. ;(

Misschien is Python i.c.m. Django dan nog het beste.
  zaterdag 1 maart 2014 @ 00:25:57 #147
12221 Tijn
Powered by MS Paint
pi_137260675
quote:
99s.gif Op vrijdag 28 februari 2014 20:31 schreef CrashO het volgende:

[..]

Dat fixte de php tag van Fok ongewild automagisch voor me :P, stond er wel.
Maar ik bedoel ook op beide de shorthand (shorthand echo en shorthand if/else (met tarnary operator).
Wilde eigenlijk zoiets neerzetten.
<?=($ditIsTrue) ? 'dit was dus waar' : 'dit niet'?>
In views/templates is deze syntax echt superhandig. Sowieso zou ik bij het toewijzen van een waarde aan een variabele op basis van een conditie altijd de ternary operator gebruiken, dan heb je maar 1x de variabele nodig die je wilt vullen.
pi_137263102
quote:
1s.gif Op zaterdag 1 maart 2014 00:25 schreef robin007bond het volgende:

[..]

Die talen kan ik ook wel. Het probleem is dat het niet zo geschikt is voor web development. Je hebt wel JSP, maar dat schijnt niet zo lekker te werken. C# kan i.c.m. ASP.net, maar ik heb een gruwelijke hekel aan Microsoft dus dat gaat 'em niet worden. ;(

Misschien is Python i.c.m. Django dan nog het beste.
Python was oorspronkelijk niet zo gericht op OO, omdat de bedenker ervan de OO niet zo relevant vond. Maar het leent zich ook beter voor dan PHP. Python is sowieso een betere taal dan PHP, er zitten geen rare syntax-gewoonten in. En PHP is sterk gefragmenteerd met al die frameworks zoals Symfony, Zend, CodeIgniter, etc. Dat kost je meer tijd om te leren dan de taal zelf. Met Python zit je meestal vast aan Django, dus dat scheelt je naar verhouding minder tijd.
pi_137263106
Trouwens, een vraag:
1
2
3
4
5
6
7
8
<script>
  document.write("test")
</script>
<?php 

echo 0; 

?> 

Output:
quote:
test 0
Waar komt die spatie vandaan? Die kan toch niet door Javascript geïmplementeerd zijn?
  zaterdag 1 maart 2014 @ 08:46:38 #150
187069 slacker_nl
Sicko pur sang
pi_137263953
quote:
0s.gif Op zaterdag 1 maart 2014 03:00 schreef Robuustheid het volgende:

[..]

Python was oorspronkelijk niet zo gericht op OO, omdat de bedenker ervan de OO niet zo relevant vond. Maar het leent zich ook beter voor dan PHP. Python is sowieso een betere taal dan PHP, er zitten geen rare syntax-gewoonten in. En PHP is sterk gefragmenteerd met al die frameworks zoals Symfony, Zend, CodeIgniter, etc. Dat kost je meer tijd om te leren dan de taal zelf. Met Python zit je meestal vast aan Django, dus dat scheelt je naar verhouding minder tijd.
Python was juist gemaakt voor OO.
In theory there is no difference between theory and practice. In practice there is.
  zaterdag 1 maart 2014 @ 09:06:52 #151
91039 mstx
2x1/2 = 1/2 x 1/2
pi_137264128
quote:
0s.gif Op zaterdag 1 maart 2014 03:01 schreef Robuustheid het volgende:
Trouwens, een vraag:
[ code verwijderd ]

Output:

[..]

Waar komt die spatie vandaan? Die kan toch niet door Javascript geïmplementeerd zijn?
Dat komt door de newline tussen </script> en <?php.
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_137267917
quote:
0s.gif Op zaterdag 1 maart 2014 03:00 schreef Robuustheid het volgende:

[..]

Python was oorspronkelijk niet zo gericht op OO, omdat de bedenker ervan de OO niet zo relevant vond. Maar het leent zich ook beter voor dan PHP. Python is sowieso een betere taal dan PHP, er zitten geen rare syntax-gewoonten in. En PHP is sterk gefragmenteerd met al die frameworks zoals Symfony, Zend, CodeIgniter, etc. Dat kost je meer tijd om te leren dan de taal zelf. Met Python zit je meestal vast aan Django, dus dat scheelt je naar verhouding minder tijd.
Over PHP is wel een shitload aan documentatie beschikbaar. Python wordt minder gebruikt.

Maar je hebt gelijk. Wat ik ook mooi vind aan Python is dat het mensen dwingt om mooie code te schrijven met indenting. :D

PHP is ook heel inconsequent in naamgeving en dergelijke. Sommige methodes beginnen met str_ en andere methodes weer zonder de lage streep.

[ Bericht 0% gewijzigd door #ANONIEM op 01-03-2014 12:22:35 ]
  FOK!-Schrikkelbaas zaterdag 1 maart 2014 @ 15:56:01 #153
1972 Swetsenegger
Egocentrische Narcist
pi_137273770
Wat doe ik fout?

1
2
RewriteEngine On
RewriteRule ^\/index\/kids/(.*)$ http://www.domein.nl/index/school/$1 [L,R=301]

Ik wil dat bijvoorbeeld
http://www.domein.nl/index/kids/Pink

wordt geredirect naar
http://www.domein.nl/index/school/Pink
pi_137274484
Is het niet gewoon:
1RewriteRule ^/index/kids/(.*)$ /index/school/$1 [R=301,L]
Spoilers: geen rewrite held, gebruik het nooit.
  FOK!-Schrikkelbaas zaterdag 1 maart 2014 @ 16:32:52 #155
1972 Swetsenegger
Egocentrische Narcist
pi_137274963
quote:
0s.gif Op zaterdag 1 maart 2014 16:16 schreef Diabox het volgende:
Is het niet gewoon:
[ code verwijderd ]

Spoilers: geen rewrite held, gebruik het nooit.
got it. Was deze bijna :)
pi_137282764
quote:
5s.gif Op zaterdag 1 maart 2014 15:56 schreef Swetsenegger het volgende:
Wat doe ik fout?
[ code verwijderd ]

Ik wil dat bijvoorbeeld
http://www.domein.nl/index/kids/Pink

wordt geredirect naar
http://www.domein.nl/index/school/Pink
Ik zou dit eerlijk gezegd anders oplossen :)

gewoon met een router class.
pi_137284259
Hoi een vraagje ik krijg een error betreft de volgende regel:
while ($row = mysql_fetch_array($result))

De error die vermeldt werd, is dit:

De error is dit:
Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in C:\Users\yomac_000\Documents\GitHub\website\getcourse.php on line 15

Ik had al naar stackoverflow gekeken o.a. hiernaar:
link: http://stackoverflow.com/(...)esource-string-given

Maar de oplossing leek al heel erg op mijn eigen code.

Mochten jullie mijn code zien, dan staat hij hieronder:

courses.php

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
 <form>
                <select name="courses" onchange="showCourse(this.value)">
                    <option value="">Select a year:</option>
                    <option value="1">Year 1</option>
                    <option value="2">year 2</option>
                    <option value="3">Year 3</option>
                    <option value="4">Year 4</option>
                </select>
            </form>
            <br>

<div id="txtHint"><b>All courses of a year will be listed here.</b></div>

  <script>
                    function showCourse(str)
                    {
                        if (str == "")
                        {
                            document.getElementById("txtHint").innerHTML = "";
                            return;
                        }
                        if (window.XMLHttpRequest)
                        {// code for IE7+, Firefox, Chrome, Opera, Safari
                            xmlhttp = new XMLHttpRequest();
                        }
                        else
                        {// code for IE6, IE5
                            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                        }
                        xmlhttp.onreadystatechange = function()
                        {
                            if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
                            {
                                document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
                            }
                        }
                        xmlhttp.open("GET", "getcourse.php?q=" + str, true);
                        xmlhttp.send();
                    }

        </script>



getcourse.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php

require ('core/init.php');

$q = intval($_GET['q']);
echo $q;
$result = "SELECT `course_id`,`name` FROM `courses` WHERE `categoryId` = '" . $q . "'";

echo"<table border='1'> 
    <tr>   <td><b>Course id</b></td>
            <td><b>Course naam</b></td>

        </tr>";

while ($row = mysql_fetch_array($result)) {

    echo "<tr>";
    echo "<td>" . $row['course_id'] . "</td>";
    echo "<td>" . $row['name'] . "</td>";
    echo "</tr>";
}
echo "</table>";
?>

Alvast bedankt voor uw antwoord :)
  Moderator / Redactie Sport / Devops zaterdag 1 maart 2014 @ 20:53:09 #158
176766 crew  zoem
zoemt
pi_137284374
De oplossing voor jouw probleem wordt gegeven in de eerste reactie van de link die je geeft :?
quote:
You are passing in $query which is your sql string, when you need to pass in $result which is your db result object
  zaterdag 1 maart 2014 @ 20:53:43 #159
91039 mstx
2x1/2 = 1/2 x 1/2
pi_137284397
quote:
0s.gif Op zaterdag 1 maart 2014 20:50 schreef superky het volgende:
Hoi een vraagje ik krijg een error betreft de volgende regel:
while ($row = mysql_fetch_array($result))

De error die vermeldt werd, is dit:

De error is dit:
Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in C:\Users\yomac_000\Documents\GitHub\website\getcourse.php on line 15

Ik had al naar stackoverflow gekeken o.a. hiernaar:
link: http://stackoverflow.com/(...)esource-string-given

Maar de oplossing leek al heel erg op mijn eigen code.

Mochten jullie mijn code zien, dan staat hij hieronder:

courses.php
[ code verwijderd ]

getcourse.php
[ code verwijderd ]

Alvast bedankt voor uw antwoord :)
Die $result is nu een string, die moet je nog door mysql_query() halen om een query op de database uit te voeren, en dan geeft hij een resource terug.

Onder deze lijn mensen die gaan vertellen dat je PDO moet gebruiken.
----------------------------------------------------------------------------------------------------------------
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_137284525
De MySQL API is al tijden deprecated, gebruik alsjeblieft PDO.
pi_137284723
quote:
0s.gif Op zaterdag 1 maart 2014 20:53 schreef mstx het volgende:

[..]

Die $result is nu een string, die moet je nog door mysql_query() halen om een query op de database uit te voeren, en dan geeft hij een resource terug.

Onder deze lijn mensen die gaan vertellen dat je PDO moet gebruiken.
----------------------------------------------------------------------------------------------------------------

Ja klopt xD nu werkt het bedankt! Ja klopt ik werd al eerder aangesproken dat ik PDO moet gebruiken xD. Maarja als het werkt dan werkt het :p
  zaterdag 1 maart 2014 @ 21:23:26 #162
12221 Tijn
Powered by MS Paint
pi_137285739
quote:
0s.gif Op zaterdag 1 maart 2014 21:02 schreef superky het volgende:

[..]

Maarja als het werkt dan werkt het :p
De vraag is alleen hoe lang nog, aangezien mysql_query() zeker verwijderd gaat worden uit PHP in toekomstige versies.
pi_137285758
quote:
0s.gif Op zaterdag 1 maart 2014 21:02 schreef superky het volgende:

[..]

Ja klopt xD nu werkt het bedankt! Ja klopt ik werd al eerder aangesproken dat ik PDO moet gebruiken xD. Maarja als het werkt dan werkt het :p
Maar als de mysql_* functies eenmaal zijn verwijderd dan werkt het niet meer. En ja, dat zit wel in de planning, dat die functies verwijderd worden.
pi_137288923
quote:
0s.gif Op zaterdag 1 maart 2014 21:02 schreef superky het volgende:

[..]

Ja klopt xD nu werkt het bedankt! Ja klopt ik werd al eerder aangesproken dat ik PDO moet gebruiken xD. Maarja als het werkt dan werkt het :p
dit is een gevaarlijke gedachte als ontwikkelaar. Door dit soort geintjes worden veel dingen gehackt.
Nalatigheid ;)
pi_137289790
quote:
0s.gif Op zaterdag 1 maart 2014 22:43 schreef totalvamp het volgende:

[..]

dit is een gevaarlijke gedachte als ontwikkelaar. Door dit soort geintjes worden veel dingen gehackt.
Nalatigheid ;)
True. mysql_ functies zijn deprecated, en PDO is een goede oplossing, maar waar je ook voor kiest je moet altijd zorgen dat de user input veilig gemaakt is als je die richting een database (of iets anders) stuurt. Anders merk je vanzelf wanneer Bobby op bezoek is geweest. :)

[ Bericht 1% gewijzigd door Light op 01-03-2014 23:52:27 ]
pi_137293616
quote:
0s.gif Op zaterdag 1 maart 2014 23:04 schreef Light het volgende:

[..]

True. mysql_ functies zijn deprecated, en PDO is een goede oplossing, maar waar je ook voor kiest je moet altijd zorgen dat de user input veilig gemaakt is als je die richting een database (of iets anders) stuurt. Anders merk je vanzelf wanneer Bobby op bezoek is geweest. :)
Je kan ook nog gaan voor mysqli, die is (voorlopig) niet deprecated en kan alles wat PDO ook kan (behalve verbinden met een dozijn andere databases dan mysql en named parameters). Is nog sneller dan PDO ook kwa performance (ok, is maar ~2% ofzo, maar toch :') )
  zondag 2 maart 2014 @ 17:46:01 #167
272287 henrivo
Tikt tegen jassies
pi_137315053
Moet zeggen, ik keek op tegen Symfony2 als een berg, maar 't is eigenlijk best een leuk framework :)

// Overgestapt vanaf ZF2
pi_137321745
quote:
99s.gif Op zondag 2 maart 2014 00:56 schreef CrashO het volgende:

[..]

Je kan ook nog gaan voor mysqli, die is (voorlopig) niet deprecated en kan alles wat PDO ook kan (behalve verbinden met een dozijn andere databases dan mysql en named parameters). Is nog sneller dan PDO ook kwa performance (ok, is maar ~2% ofzo, maar toch :') )
die performance wordt weer driedubbel teniet gedaan omdat je zelf nog een wrapperclass moet schrijven om het praktisch bruikbaar te maken, wat je geheid niet zo efficiënt doet als de native wrapper pdo.
  zondag 2 maart 2014 @ 22:02:13 #169
166255 Maringo
Bèhèhèhèh
pi_137326965
quote:
2s.gif Op zaterdag 1 maart 2014 21:23 schreef Tijn het volgende:

[..]

De vraag is alleen hoe lang nog, aangezien mysql_query() zeker verwijderd gaat worden uit PHP in toekomstige versies.
In 5.5 is het er al uit.
Die volg topic-knop hè...
Op 02-06-2014 16:38 schreef Moeraskat
Je bent te goed voor de mensheid.
  zondag 2 maart 2014 @ 22:03:56 #170
166255 Maringo
Bèhèhèhèh
pi_137327076
quote:
0s.gif Op zondag 2 maart 2014 17:46 schreef henrivo het volgende:
Moet zeggen, ik keek op tegen Symfony2 als een berg, maar 't is eigenlijk best een leuk framework :)

// Overgestapt vanaf ZF2
Ik ben net overgestapt van Symfony naar Silex voor kleinere projecten. :+
Die volg topic-knop hè...
Op 02-06-2014 16:38 schreef Moeraskat
Je bent te goed voor de mensheid.
pi_137327549
quote:
1s.gif Op zondag 2 maart 2014 22:02 schreef Maringo het volgende:

[..]

In 5.5 is het er al uit.
Nee, het is officieel deprecated. En het gaat worden verwijderd in een volgende versie. Dus je kunt het nog steeds gebruiken, maar je krijgt nu een melding dat je deprecated code gebruikt. En die melding kun je weer uitzetten, waardoor alles gewoon werkt. Je komt dan wel in de toekomst in de problemen.
  zondag 2 maart 2014 @ 22:58:10 #172
12221 Tijn
Powered by MS Paint
pi_137330584
quote:
1s.gif Op zondag 2 maart 2014 22:02 schreef Maringo het volgende:

[..]

In 5.5 is het er al uit.
Nee, je krijgt alleen een warning als je het gebruikt.
  zondag 2 maart 2014 @ 23:23:47 #173
272287 henrivo
Tikt tegen jassies
pi_137331791
quote:
1s.gif Op zondag 2 maart 2014 22:03 schreef Maringo het volgende:

[..]

Ik ben net overgestapt van Symfony naar Silex voor kleinere projecten. :+
Dat overweeg ik nu ook moet ik zeggen, als soort van tussenstap (ivm het leerproces). Aan te raden? Of juist niet? Anyone?
pi_137336719
Klein vraagje, wat vinden de Zend certified mensen van deze cursus:
http://www.eduvision.nl/c(...)mpaign=php%20dag%205
  maandag 3 maart 2014 @ 09:39:23 #175
166255 Maringo
Bèhèhèhèh
pi_137337753
quote:
2s.gif Op zondag 2 maart 2014 22:58 schreef Tijn het volgende:

[..]

Nee, je krijgt alleen een warning als je het gebruikt.
Oja.. Van mij hadden het er al wel uit mogen halen. :+
Die volg topic-knop hè...
Op 02-06-2014 16:38 schreef Moeraskat
Je bent te goed voor de mensheid.
  maandag 3 maart 2014 @ 09:41:30 #176
166255 Maringo
Bèhèhèhèh
pi_137337793
quote:
0s.gif Op zondag 2 maart 2014 23:23 schreef henrivo het volgende:

[..]

Dat overweeg ik nu ook moet ik zeggen, als soort van tussenstap (ivm het leerproces). Aan te raden? Of juist niet? Anyone?
Niet als tussenstap, maar gewoon als framework voor de kleinere projecten. Scheelt een hoop ruimte en laadtijd. :)
Die volg topic-knop hè...
Op 02-06-2014 16:38 schreef Moeraskat
Je bent te goed voor de mensheid.
pi_137339264
quote:
2s.gif Op maandag 3 maart 2014 09:41 schreef Maringo het volgende:

[..]

Niet als tussenstap, maar gewoon als framework voor de kleinere projecten. Scheelt een hoop ruimte en laadtijd. :)
Is dat echt iets waar je je sappel om moet maken? Bij "kleinere" projecten?
Ik zou het gebruiken als het makkelijker/sneller ontwikkelen is (kan ik me wel voorstellen, met SF2 ben je relatief veel tijd kwijt aan "overhead" wat voor single-file projectjes inderdaad tegen je kan werken). De rest is vooral placebo.
  maandag 3 maart 2014 @ 11:01:51 #178
166255 Maringo
Bèhèhèhèh
pi_137339790
quote:
14s.gif Op maandag 3 maart 2014 10:43 schreef KomtTijd... het volgende:

[..]

Is dat echt iets waar je je sappel om moet maken? Bij "kleinere" projecten?
Ik zou het gebruiken als het makkelijker/sneller ontwikkelen is (kan ik me wel voorstellen, met SF2 ben je relatief veel tijd kwijt aan "overhead" wat voor single-file projectjes inderdaad tegen je kan werken). De rest is vooral placebo.
Het is ook niet het enige verschil. Maar er zit duidelijk verschil tussen laadtijd van pagina's van Symfony2 en Silex. Dus ja, dat is iets waar ik me druk om maak. Met grotere projecten krijg je dat ook wel met Silex, vanwege onder andere de hoeveelheid aan modules die gebruikt worden. En daarom dus het genoemde verschil tussen de kleinere en grotere projecten.
Die volg topic-knop hè...
Op 02-06-2014 16:38 schreef Moeraskat
Je bent te goed voor de mensheid.
pi_137343240
Hallo hallo, ik ben net bezig met SQL en heb nu een vraagje. Ik zal het zo goed mogelijk proberen te omschrijven zodat mijn manier van denken te zien is:

-Ik heb een database met daarin een table met alle spelers van de eredivisie van een bepaalde tijd genaamd 'person'. Al deze spelers hebben oa een 'playerID' en een 'name'.
-Ook heb ik een table met alle clubs(club), welke ook oa een 'clubID' en een 'name' hebben.
-Daarnast nog een table met alle gespeelde matches(participation) met oa 'clubID' en 'playerID' zodat ik kan zien welke spelers er een bepaalde match gespeeld hebben voor hun club.

Stel ik wil nu alle spelers die voor de club Ajax gespeeld hebben als output krijgen.

Dan zal ik als eerst naar de table CLUB moeten gaan om te zoeken welke clubID Ajax heeft ->
SELECT clubID
FROM CLUB
WHERE NAME = 'Ajax'

De clubID is 1. Vervolgens kan ik dan in de participation table dit doen:

SELECT playerID
FROM PARTICIPATION
WHERE clubID = '1'

Dit geeft mij dan de lijst van alle spelers die voor club '1' gespeeld hebben.

Mijn eerste vraag is nu hoe ik er voor kan zorgen dat ik de clubID die ik in mijn 1e query heb opgevraagd door kan spelen naar mijn 2e query. Dus dat ik niet handmatig eerst de 1e query doe en daar '1' als uitkomst krijg en het vervolgens in de 2e query invul.

Mijn tweede vraag is hoe ik er voor kan zorgen dat ik van alle playerID's die ik heb opgevraagd de naam kan weergeven, zonder de query telkens te moeten aanpassen.
SELECT name
FROM PERSON
WHERE playerID ='x'
Waar x dan de playerID's zijn die ik net heb opgevraagd.
Bestaat er een FOR loop in SQL oid?

Ik hoop dat iemand me kan helpen, en mocht ik iets niet duidelijk genoeg hebben neergezet laat het me dan even weten! :Y)
pi_137343416
quote:
0s.gif Op maandag 3 maart 2014 13:07 schreef DannyDeko het volgende:
Dan zal ik als eerst naar de table CLUB moeten gaan om te zoeken welke clubID Ajax heeft ->
SELECT clubID
FROM CLUB
WHERE NAME = 'Ajax'

De clubID is 1. Vervolgens kan ik dan in de participation table dit doen:

SELECT playerID
FROM PARTICIPATION
WHERE clubID = '1'

Dit geeft mij dan de lijst van alle spelers die voor club '1' gespeeld hebben.

Mijn eerste vraag is nu hoe ik er voor kan zorgen dat ik de clubID die ik in mijn 1e query heb opgevraagd door kan spelen naar mijn 2e query. Dus dat ik niet handmatig eerst de 1e query doe en daar '1' als uitkomst krijg en het vervolgens in de 2e query invul.
De meeste databases zijn relatiedatabases; m.a.w. er worden tussen verschillende tabellen relaties gelegd door bijvoorbeeld IDs.

De twee queries kun je samenvoegen en een koppeling (relatie) maken door de IDs te koppelen.
Je kunt dit als één query schrijven door JOIN te gebruiken:
1
2
3
4
5
SELECT c.clubID, p.playerID
  FROM CLUB c
  JOIN PARTICIPATION p
    ON p.clubID = c.clubID
 WHERE c.NAME = 'Ajax'
Omdat er met meerdere tabellen gewerkt wordt is het vaak handiger om aliassen te gebruiken in de query.
‘FROM CLUB c’ betekent dat de tabel CLUB de alias ‘c’ krijgt. Bij de verwijzing naar velden wordt dan deze alias gebruikt (‘c.clubID’). Je zou dit ook als ‘CLUB.clubID’ kunnen schrijven wanneer geen alias wordt gebruikt.
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_137343506
Voor de eerste

1SELECT playerID FROM PARCIPATION WHERE clubID = (SELECT clubID FROM CLUB WHERE NAME = 'ajax');

Is even uit mn hoofd zo. Zit nu mobiel.
pi_137345854
quote:
1s.gif Op maandag 3 maart 2014 13:17 schreef d4v1d het volgende:
Voor de eerste
[ code verwijderd ]

Is even uit mn hoofd zo. Zit nu mobiel.
Daar heb je joins voor.
pi_137347082
quote:
99s.gif Op vrijdag 28 februari 2014 19:09 schreef CrashO het volgende:

[..]

$link binnen je functie `test` gaat niet werken. Die zit in een andere scope. Als je hem daar wilt gebruiken zal je hem moeten meegeven. (of OO gaan en een property binnen je class aanspreken O-) )
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Waarom werkt $link dan wel als het niet in een functie zit? Ik zie de logica er niet van.
pi_137347258
quote:
0s.gif Op maandag 3 maart 2014 15:24 schreef terdege het volgende:

[..]

Waarom werkt $link dan wel als het niet in een functie zit? Ik zie de logica er niet van.
Andere scope.
Lees deze uitleg over scopes maar even goed door.
pi_137349010
quote:
0s.gif Op maandag 3 maart 2014 14:42 schreef Diabox het volgende:

[..]

Daar heb je joins voor.
Wat is er dan mis met subquerys? Waarom zijn joins zoveel beter? :P

(Ik heb t zo gevonden ooit, en sindsdien zo gedaan:@)

[ Bericht 8% gewijzigd door #ANONIEM op 03-03-2014 16:22:23 ]
  † In Memoriam † maandag 3 maart 2014 @ 16:48:22 #186
159335 Boze_Appel
Vrij Fruit
pi_137349957
quote:
2s.gif Op maandag 3 maart 2014 16:22 schreef d4v1d het volgende:

[..]

Wat is er dan mis met subquerys? Waarom zijn joins zoveel beter? :P

(Ik heb t zo gevonden ooit, en sindsdien zo gedaan:@)
Joins zijn technisch veel sneller, mits je constraints, indexes enzo goed zijn. Sub queries zijn soms debiel traag, zeker als je NOT IN enzo gaat gebruiken.

Dan maakt het bij een simpele Wordpress niet uit, maar als je over een paar miljoen records gaat dan gaat het wel meetellen.
Carpe Libertatem
pi_137350184
quote:
2s.gif Op maandag 3 maart 2014 16:22 schreef d4v1d het volgende:

[..]

Wat is er dan mis met subquerys? Waarom zijn joins zoveel beter? :P

(Ik heb t zo gevonden ooit, en sindsdien zo gedaan:@)
Joins zijn sneller en subqueries lezen lelijk (al ken ik genoeg mensen die het juist andersom vinden).
  maandag 3 maart 2014 @ 19:47:55 #188
134783 papernote
Een echte.
pi_137356482
quote:
0s.gif Op maandag 3 maart 2014 16:54 schreef Diabox het volgende:

[..]

Joins zijn sneller en subqueries lezen lelijk (al ken ik genoeg mensen die het juist andersom vinden).
1) niet waar en 2) subjectief. JOINs zijn niet per definitie sneller, dat is van talloze factoren afhankelijk.
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
pi_137366724
quote:
2s.gif Op maandag 3 maart 2014 19:47 schreef papernote het volgende:

[..]

1) niet waar en 2) subjectief. JOINs zijn niet per definitie sneller, dat is van talloze factoren afhankelijk.
JOINs zijn wel beter te optimaliseren voor MySQL. Bij een subquery moet eerst die subquery worden gedaan voordat de hoofdquery uitgevoerd kan worden, terwijl MySQL bij een JOIN zelf kan bepalen welke tabel eerst gefilterd wordt. Goede indexes zijn uiteraard belangrijk.
pi_137367436
quote:
2s.gif Op maandag 3 maart 2014 19:47 schreef papernote het volgende:

[..]

1) niet waar en 2) subjectief. JOINs zijn niet per definitie sneller, dat is van talloze factoren afhankelijk.
Als jij niet gehandicapt je queries aan het schrijven bent zijn joins doorgaans sneller. En fantastische constatering dat het tweede subjectief is, volgens mij liet ik dat ook al doorschemeren in m'n post en lijkt me dat ook duidelijk.
pi_137372533
quote:
2s.gif Op maandag 3 maart 2014 19:47 schreef papernote het volgende:

[..]

1) niet waar en 2) subjectief. JOINs zijn niet per definitie sneller, dat is van talloze factoren afhankelijk.
ok, ok, joins zijn slechts in 99,9% van de gevallen aanzienlijk sneller.

En voor zoiets simpels als het voorbeeld waar het over ging, absoluut. Er is geen enkele reden om voor zoiets simpels een subquery te gebruiken.

Zo je zin? :*
pi_137373238
Misschien handig: SQL Fiddle.
Keuze uit MySQL, SQLite, PostgreSQL, Oracle, MSSQL.
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_137373622
quote:
0s.gif Op maandag 3 maart 2014 08:15 schreef Darkomen het volgende:
Klein vraagje, wat vinden de Zend certified mensen van deze cursus:
http://www.eduvision.nl/c(...)mpaign=php%20dag%205
Niemand die een opmerking? Heb nog maar tot de 8ste om te beslissen?
  dinsdag 4 maart 2014 @ 10:45:20 #194
134783 papernote
Een echte.
pi_137373969
quote:
0s.gif Op dinsdag 4 maart 2014 10:30 schreef Darkomen het volgende:

[..]

Niemand die een opmerking? Heb nog maar tot de 8ste om te beslissen?
Ben je al bekend met ZF? Als ik zo de omschrijving van de cursus lees zijn het ook dingen die je jezelf kunt aanleren door veel uit te proberen en de tutorial te volgen. Maar als je, zoals de omschrijving ook zegt, een "vliegende start" wilt is het wellicht een goed idee.
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
pi_137374445
quote:
2s.gif Op dinsdag 4 maart 2014 10:45 schreef papernote het volgende:

[..]

Ben je al bekend met ZF? Als ik zo de omschrijving van de cursus lees zijn het ook dingen die je jezelf kunt aanleren door veel uit te proberen en de tutorial te volgen. Maar als je, zoals de omschrijving ook zegt, een "vliegende start" wilt is het wellicht een goed idee.
bedankt voor je antwoord, nee helaas nog geen ervaring met ZF, wel codeigniter framework.
  dinsdag 4 maart 2014 @ 11:16:30 #196
187069 slacker_nl
Sicko pur sang
pi_137374818
quote:
7s.gif Op dinsdag 4 maart 2014 10:11 schreef Aether het volgende:
Misschien handig: SQL Fiddle.
Keuze uit MySQL, SQLite, PostgreSQL, Oracle, MSSQL.
Thnx
In theory there is no difference between theory and practice. In practice there is.
  dinsdag 4 maart 2014 @ 16:37:29 #197
272287 henrivo
Tikt tegen jassies
pi_137384640
Ik heb het idee dat Symfony2 beter wordt opgenomen door de community dan ZF2. Waarom? Geen idee.
pi_137385094
Omdat SF2 O+
  dinsdag 4 maart 2014 @ 20:01:35 #199
134783 papernote
Een echte.
pi_137391335
quote:
0s.gif Op dinsdag 4 maart 2014 11:04 schreef Darkomen het volgende:

[..]

bedankt voor je antwoord, nee helaas nog geen ervaring met ZF, wel codeigniter framework.
Maar dan zul je vast al wel ervaring hebben met alle concepten (MVC ontwerppatroon, databases, authenticatie en autorisatie, caching, zoeken, webservices, JavaScript integratie en internationalisatie). Alleen dan niet in ZF maar in CI. Ik weet niet of het dan nog zo'n toegevoegde waarde heeft t.o.v. het zelf even aanleren middels de documentatie.

Als alle concepten je ook nog onbekend voor komen, dan is het wellicht wel goed.
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
pi_137391497
quote:
2s.gif Op dinsdag 4 maart 2014 20:01 schreef papernote het volgende:

[..]

Maar dan zul je vast al wel ervaring hebben met alle concepten (MVC ontwerppatroon, databases, authenticatie en autorisatie, caching, zoeken, webservices, JavaScript integratie en internationalisatie). Alleen dan niet in ZF maar in CI. Ik weet niet of het dan nog zo'n toegevoegde waarde heeft t.o.v. het zelf even aanleren middels de documentatie.

Als alle concepten je ook nog onbekend voor komen, dan is het wellicht wel goed.
Het voordeel van zo'n cursus is dat je na afloop kunt gaan zwaaien met een papiertje waarop staat dat je het geheel snapt(e).
  dinsdag 4 maart 2014 @ 20:09:34 #201
134783 papernote
Een echte.
pi_137391668
quote:
0s.gif Op dinsdag 4 maart 2014 20:05 schreef Light het volgende:

[..]

Het voordeel van zo'n cursus is dat je na afloop kunt gaan zwaaien met een papiertje waarop staat dat je het geheel snapt(e).
Dat wel ja.
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
pi_137398969
quote:
0s.gif Op zaterdag 1 maart 2014 09:06 schreef mstx het volgende:

[..]

Dat komt door de newline tussen </script> en <?php.
Waarom krijg ik de spatie dan niet bij dit:

1
2
3
4
5
6
7
8
<?php  

$test = 0; 
echo $test
?>
<script>
  document.write("hello")
</script>

Output is dan:

quote:
0hello
zonder spatie.
pi_137403272
quote:
99s.gif Op maandag 3 maart 2014 15:31 schreef CrashO het volgende:

[..]

Andere scope.
Lees deze uitleg over scopes maar even goed door.
Bedankt, ik begrijp het nou. Ik vind het niet echt handig om telkens global te moeten gebruiken maar er zal vast een goede reden voor zijn.
pi_137404087
.

[ Bericht 99% gewijzigd door Diabox op 05-03-2014 02:25:52 ]
pi_137404878
quote:
0s.gif Op woensdag 5 maart 2014 00:42 schreef terdege het volgende:

[..]

Bedankt, ik begrijp het nou. Ik vind het niet echt handig om telkens global te moeten gebruiken maar er zal vast een goede reden voor zijn.
Je gebruikt nooit globals :P

Als je omschrijft wat je precies wilt kunnen we je misschien op weg helpen.
pi_137405107
quote:
0s.gif Op woensdag 5 maart 2014 08:00 schreef totalvamp het volgende:
Je gebruikt nooit globals :P
Precies dit ja. Als je een global nodig "hebt", doe je iets fout :P
pi_137405770
Klopt, de concepten snap ik, maar er valt zeker meer te leren.
En het papiertje staat me ook wel aan, gewoon voor mezelf.
pi_137405900
quote:
0s.gif Op dinsdag 4 maart 2014 22:36 schreef Robuustheid het volgende:

[..]

Waarom krijg ik de spatie dan niet bij dit:
[ code verwijderd ]

Output is dan:

[..]

zonder spatie.
Ik denk dat je dit zult moeten zoeken in de ecma specificaties. Maar heb je al gekeken hoe in beide gevallen de php-output eruit ziet?
pi_137410675
quote:
7s.gif Op maandag 3 maart 2014 13:14 schreef Aether het volgende:

[..]

De meeste databases zijn relatiedatabases; m.a.w. er worden tussen verschillende tabellen relaties gelegd door bijvoorbeeld IDs.

De twee queries kun je samenvoegen en een koppeling (relatie) maken door de IDs te koppelen.
Je kunt dit als één query schrijven door JOIN te gebruiken:
[ code verwijderd ]

Omdat er met meerdere tabellen gewerkt wordt is het vaak handiger om aliassen te gebruiken in de query.
‘FROM CLUB c’ betekent dat de tabel CLUB de alias ‘c’ krijgt. Bij de verwijzing naar velden wordt dan deze alias gebruikt (‘c.clubID’). Je zou dit ook als ‘CLUB.clubID’ kunnen schrijven wanneer geen alias wordt gebruikt.
Thanks voor de uitleg, daar was ik inderdaad naar op zoek :)
pi_137419561
Ik heb een functions.php waarin ik wil aangeven dat mijn afbeeldingen in de map "images" staan:
1
2
3
4
<?php
define
('THEMEROOT'get_stylesheet_directory_uri());
define ('IMAGES'THEMEROOT '/wordpress/wp-content/themes/mytheme/images');
?>
De .php staat op een localhost (xampp) en ik wil een relative path naar mijn images map.

Htdocs is de root en van daaruit heb ik dus het pad beschreven. Probleem is dus dat hij het alt attribuut laat zien en niet de afbeelding; dus mijn relative path klopt niet.
Als ik een absolute path test in de browser dan werkt het wel gewoon, bijv. http://localhost/wordpress/wp-content/themes/mytheme/images/logo.png.
Wat zie ik over het hoofd?
pi_137420724
Had je al overwogen om te kijken wát er precies niet klopt aan je relatieve pad?
  † In Memoriam † woensdag 5 maart 2014 @ 18:14:41 #212
159335 Boze_Appel
Vrij Fruit
pi_137420853
Trailing slash wellicht?
Carpe Libertatem
pi_137425331
quote:
14s.gif Op woensdag 5 maart 2014 18:10 schreef KomtTijd... het volgende:
Had je al overwogen om te kijken wát er precies niet klopt aan je relatieve pad?
Ja natuurlijk.
Nu start hij in htdocs en werkt zijn weg via /wordpress/etc naar de images map.

Als ik dit had gehad:
index.html
images/autos/bmw.png

Dan had ik in index.html "images/autos/bmw.png" geschreven; simpel.
Nu heb ik eenzelfde situatie en pakt hij het relatieve pad niet op. Ik opnieuw de uitleg van relatieve paden gelezen om te kijken of ik wat gemist heb, nee.
Ik heb zitten experimenteren met "../", korter pad, langer pad, ook geen oplossing.


quote:
7s.gif Op woensdag 5 maart 2014 18:14 schreef Boze_Appel het volgende:
Trailing slash wellicht?
Nee, helaas.
pi_137425458
Maar je gaat verder niet vertellen wat er nou mis gaat?

Dan rest ons niets anders dan je veel succes te wensen met zoeken naar een oplossing! ^O^
  woensdag 5 maart 2014 @ 20:39:01 #215
118585 Crutch
Filantroop || Taalzwengel
pi_137426041
Al in je netpanel gekeken welke url je browser daadwerkelijk opvraagt?
Je moeder is een hamster
pi_137427890
quote:
14s.gif Op woensdag 5 maart 2014 20:26 schreef KomtTijd... het volgende:
Maar je gaat verder niet vertellen wat er nou mis gaat?

Dan rest ons niets anders dan je veel succes te wensen met zoeken naar een oplossing! ^O^
Goed, opnieuw:

Ik heb een functions.php voor een wordpress theme waar ik wil aangeven in welke folder de afbeeldingen staan.
Het probleem is dat hij alleen de alt van de afbeelding laat zien en dus niet de afbeelding zelf, dus fout in het pad.

De php code die ik heb:
1
2
3
4
<?php
define
('THEMEROOT'get_stylesheet_directory_uri());
define ('IMAGES'THEMEROOT '/wordpress/wp-content/themes/mytheme/images');
?>

Als ik met dat pad een afbeelding uit "images" absoluut maak pakt hij het direct op in de browser.
Kijk ik met firebug naar de code van de website krijg ik:
1
2
<img alt="WordPress Localhost | En nog een WordPress site" 
data-src="http://localhost/wordpress/wp-content/themes/mytheme/wordpress/wp-content/themes/mytheme/images/images/logo.png" style="visibility:hidden;">

Een totaal ander (dubbel) pad dan wat ik heb opgegeven.
Wat ik ook doe hij pakt de afbeelding niet op.
Als ik als bij wijze van test een korter (en zeker fout) pad opgeef: /mytheme/images/
doet hij exact hetzelfde: verdubbelen van het pad.

1
2
<img alt="WordPress Localhost | En nog een WordPress site" 
src="http://localhost/wordpress/wp-content/themes/mytheme/adaptive/images/images/logo.png">

Ik heb geen idee wat voor informatie ik je nog meer kan geven dan wat ik gepost heb.

quote:
0s.gif Op woensdag 5 maart 2014 20:39 schreef Crutch het volgende:
Al in je netpanel gekeken welke url je browser daadwerkelijk opvraagt?
Als dat het "Net" tabblad is waar jij het over hebt dan komt daar bovenaan bij logo.png een "404 Not Found" te staan.
De url achter die .png is "http://localhost/wordpress/wp-content/themes/mytheme/wordpress/wp-content/themes/mytheme/images/images/logo.png".
Krijg daar hetzelfde te zien als wat ik als reactie op KomtTijd heb geschreven.
  woensdag 5 maart 2014 @ 21:47:45 #217
118585 Crutch
Filantroop || Taalzwengel
pi_137429880
quote:
0s.gif Op woensdag 5 maart 2014 21:13 schreef karton2 het volgende:

[..]

Goed, opnieuw:

Ik heb een functions.php voor een wordpress theme waar ik wil aangeven in welke folder de afbeeldingen staan.
Het probleem is dat hij alleen de alt van de afbeelding laat zien en dus niet de afbeelding zelf, dus fout in het pad.

De php code die ik heb:
[ code verwijderd ]

Als ik met dat pad een afbeelding uit "images" absoluut maak pakt hij het direct op in de browser.
Kijk ik met firebug naar de code van de website krijg ik:
[ code verwijderd ]

Een totaal ander (dubbel) pad dan wat ik heb opgegeven.
Wat ik ook doe hij pakt de afbeelding niet op.
Als ik als bij wijze van test een korter (en zeker fout) pad opgeef: /mytheme/images/
doet hij exact hetzelfde: verdubbelen van het pad.
[ code verwijderd ]

Ik heb geen idee wat voor informatie ik je nog meer kan geven dan wat ik gepost heb.

[..]

Als dat het "Net" tabblad is waar jij het over hebt dan komt daar bovenaan bij logo.png een "404 Not Found" te staan.
De url achter die .png is "http://localhost/wordpress/wp-content/themes/mytheme/wordpress/wp-content/themes/mytheme/images/images/logo.png".
Krijg daar hetzelfde te zien als wat ik als reactie op KomtTijd heb geschreven.
En hoe heb je het in je template staan?
1<img src="<?php echo IMAGES?>images/logo.png" /> 
Zo?
Je moeder is een hamster
pi_137431777
quote:
0s.gif Op woensdag 5 maart 2014 21:47 schreef Crutch het volgende:

[..]

En hoe heb je het in je template staan?
[ code verwijderd ]

Zo?
Ja.
Het logo is klikbaar en moet naar home verwijzen. Dat werkt als ik op de naam klik.
Het enigste wat hij niet doet is de afbeelding laten zien.

header.php
1
2
<a href="<?php echo home_url(); ?>">
<img src="<?php echo IMAGES?>/wordpress/wp-content/themes/mytheme/images/" alt="<?php bloginfo('name'); ?> | <?php bloginfo('description'); ?>" /></a>

functions.php
1
2
3
4
<?php
define
('THEMEROOT'get_stylesheet_directory_uri()); //path to stylesheet and assigns it to THEMEROOT
define('IMAGES'THEMEROOT .'/wordpress/wp-content/themes/adaptive/images/');
?>

Firebug:
1
2
<img alt="WordPress Localhost | En nog een WordPress site" 
data-src="http://localhost/wordpress/wp-content/themes/mytheme/wordpress/wp-content/themes/mytheme/images/images/logo.png" style="visibility:hidden;">
pi_137434482
Dan is er toch duidelijk wat er fout gaat? Je string klopt niet. Ofwel THEMEROOT bevat niet de string die je verwacht/wilt, ofwel de string die je append is niet wat je wilt. Eén van de twee zul je aan moeten passen.
pi_137439249
Kan iemand mij vertellen waarom ik geen output krijg met het volgende?

1
2
3
4
5
6
<?php
exec
('"c:\Program Files\ImageMagick-6.8.8-Q16\compare.exe"  -metric PSNR ' $current ' ' $next ' NULL:'$test);
echo 
'5e: ' print_r($test,true) . ';' '</td><td>';
exec('"c:\Program Files\ImageMagick-6.8.8-Q16\compare.exe" ' $current ' ' $next ' NULL:'$test);
echo 
'6e: ' print_r($test,true) . ';' '</td><td>';
?>

Ik heb al shell_exec geprobeerd, als ik dezelfde exec handmatig via de commandline uitvoer zie ik bv dit

quote:
"c:\Program Files\ImageMagick-6.8.8-Q16\compare.exe" -metric PSNR d:\photos\snapshots\2014
0228\snapshot-20140228225510-152.jpg d:\photos\snapshots\20140228\snapshot-20140228225500-152.jpg NULL
35.0194


[ Bericht 4% gewijzigd door Chandler op 06-03-2014 09:46:22 ]
Just say hi!
pi_137439369
Volgens mij kan je print_r niet in een echo gebruiken.
pi_137439417
quote:
0s.gif Op donderdag 6 maart 2014 09:27 schreef Darkomen het volgende:
Volgens mij kan je print_r niet in een echo gebruiken.
Moet werken,

12014-03-06 09:27:47;389;    1e: 72.39%;    2e: 4;    3e: 88.5%;    5e: Array ( ) ;    6e: Array ( ) ;    d:/photos/snapshots/20140228/snapshot-20140228225510-152.jpg;    d:/photos/snapshots/20140228/snapshot-20140228225500-152.jpg;

:X
Just say hi!
  donderdag 6 maart 2014 @ 09:39:31 #223
91039 mstx
2x1/2 = 1/2 x 1/2
pi_137439604
quote:
0s.gif Op donderdag 6 maart 2014 09:27 schreef Darkomen het volgende:
Volgens mij kan je print_r niet in een echo gebruiken.
Jawel, daar is de tweede parameter voor
Op donderdag 2 juli 2009 22:41 schreef RTB het volgende:
als ik elk rap"liedje" een kans moest geven was ik aan het eind van dit millennium nog bezig met het tempo waarin die kotshoop uitgebraakt wordt.
👾
pi_137439646
mybad, daarom hou ik ook meestal mn mond in dit topic :D
pi_137439670
quote:
0s.gif Op donderdag 6 maart 2014 09:41 schreef Darkomen het volgende:
mybad, daarom hou ik ook meestal mn mond in dit topic :D
Hoeft niet hoor, daar leer je weer van ;)
Just say hi!
pi_137439775
Heb je die string die je execute al eens geecho'd?
Hoort die : erachter?
pi_137439847
Yup, voorbeeld:

1
2
3
4
5
6
7
<?php
$cmd 
'"c:\Program Files\ImageMagick-6.8.8-Q16\compare.exe -metric PSNR d:\photos\snapshots\20140228\snapshot-20140228225510-152.jpg d:\photos\snapshots\20140228\snapshot-20140228225500-152.jpg NULL:"';
// $cmd = str_replace("\\", "/", $cmd);
echo exec('%SystemRoot%\system32\cmd.exe ' $cmd$output$err);
echo 
exec($cmd);
exit;
?>

geeft als output
d:\www>
.. niets..

en die : hoort er achter, anders wordt een bestand genaamd NULL gemaakt ;)
Just say hi!
pi_137440698
En die dubbele aanhalingstekens? Horen er ook bij? Sorry ik heb echt de ballen verstand van windows hoor.
pi_137440781
quote:
14s.gif Op donderdag 6 maart 2014 10:34 schreef KomtTijd... het volgende:
En die dubbele aanhalingstekens? Horen er ook bij? Sorry ik heb echt de ballen verstand van windows hoor.
Correct, dat idd niet, maar als ik het zo aanpas.

1"c:\Program Files\ImageMagick-6.8.8-Q16\compare.exe" -metric PSNR d:\photos\snapshots\20140228\snapshot-20140228225510-152.jpg d:\photos\snapshots\20140228\snapshot-20140228225500-152.jpg NULL:

geeft hij in de 'terminal/cmd' gewoon een getal weer, deze krijg ik niet binnen als ik het via php probeer te draaien....
Just say hi!
  donderdag 6 maart 2014 @ 10:38:29 #230
84244 Scorpie
Abject en infaam!
pi_137440802
Windows paden altijd met \\ escapen
Op dinsdag 13 augustus schreef Xa1pt:
Neuh, fraude mag best aangepakt worden. Maar dat het de maatschappij meer oplevert of beter is voor de samenleving, is nog maar de vraag.
Op donderdag 25 juni 2015 schreef KoosVogels:
Klopt. Ik ben een racist.
pi_137440894
quote:
7s.gif Op donderdag 6 maart 2014 10:38 schreef Scorpie het volgende:
Windows paden altijd met \\ escapen
Dat dacht ik eerst ook, maar geeft totaal geen verschil ;)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php

$cmd = 'echo "c:\Program Files\ImageMagick-6.8.8-Q16\compare.exe" -metric PSNR d:\photos\snapshots\20140228\snapshot-20140228225510-152.jpg d:\photos\snapshots\20140228\snapshot-20140228225500-152.jpg NULL:';
$cmd = str_replace("\\", "\\\\", $cmd);
echo exec('%SystemRoot%\system32\cmd.exe ' . $cmd, $output, $err);
echo exec($cmd);
foreach ($output as $item){
    print_r($item);
}
echo '<hr>';
foreach ($err as $item){
    print_r($item);
}
?>

is output

1
2
3
D:\www>"c:\\Program Files\\ImageMagick-6.8.8-Q16\\compare.exe" -metric PSNR d:\\photos\\snapshots\\20140228\\snapshot-20140228225510-152.jpg d:\\photos\\snapshots\\20140228\\snapshot-20140228225500-152.jpg NULL:Microsoft Windows [versie 6.1.7601]Copyright (c) 2009 Microsoft Corporation. Alle rechten voorbehouden.D:\www>

Warning: Invalid argument supplied for foreach() in D:\www\exectest.php on line 11 <!-- ignore :P

zonder echo

1
2
3
D:\www>Microsoft Windows [versie 6.1.7601]Copyright (c) 2009 Microsoft Corporation. Alle rechten voorbehouden.D:\www>

Warning: Invalid argument supplied for foreach() in D:\www\exectest.php on line 11
Just say hi!
pi_137441661
*O* *O* *O* *O*

Ik heb het uitgevonden.

Voeg 2>&1 dit aan het einde toe en hoppa, de tekst is yours.

oftewel dit

1
2
3
<?php
echo exec('"c:\Program Files\ImageMagick-6.8.8-Q16\compare.exe" -metric PSNR d:\photos\snapshots\20140228\snapshot-20140228225510-152.jpg d:\photos\snapshots\20140228\snapshot-20140228225500-152.jpg NULL: >2&1');
?>
geeft in mijn geval: 35.0194
Just say hi!
  donderdag 6 maart 2014 @ 12:35:10 #233
187069 slacker_nl
Sicko pur sang
pi_137443726
quote:
7s.gif Op donderdag 6 maart 2014 10:38 schreef Scorpie het volgende:
Windows paden altijd met \\ escapen
Wil je dan niet liever: http://www.php.net/manual/en/function.realpath.php gebruiken? Maak je geen fouten enzo.. vet kek!!

En je hebt ook:

http://www.php.net/manual/en/imagick.compareimagechannels.php
http://www.php.net/manual/en/imagick.compareimagelayers.php
http://www.php.net/manual/en/imagick.compareimages.php

Heb je geen system calls voor nodig.
In theory there is no difference between theory and practice. In practice there is.
pi_137449223
Als je een variabele aanmaakt, gaat dat als volgt:
1$test = "voorbeeld";
Dus eerst variabele, en dan vervolgens zijn eigenschap/inhoud.
Doen we vervolgens een klasje:
1
2
3
4
5
6
7
class Person {

var $name;

function __construct($init_name) { 
$this->name = $init_name; 
Waarom kan het dan niet zo als volgt?

1$init_name = $this->name;
pi_137450165
$this kan je alleen binnen de class gebruiken.

maak een functie in je class
1
2
3
4
5
<?php
function getInitName(){
return 
$this->name;
}
?>
  Moderator / Redactie Sport / Devops donderdag 6 maart 2014 @ 16:30:56 #236
176766 crew  zoem
zoemt
pi_137451065
quote:
1s.gif Op donderdag 6 maart 2014 15:38 schreef Robuustheid het volgende:
Waarom kan het dan niet zo als volgt?
[ code verwijderd ]

Je draait daar de assignment om? Nu wijs je de (lege) inhoud van de class property toe aan een lokale variabele. In php is $this altijd nodig als je binnen de class één van zijn properties wil wijzigen. In andere talen zoals C++ of Java is de this pointer alleen noodzakelijk als een lokale variabele dezelfde naam heeft als de property.

Btw: de class properties kun je beter een expliciete visibility geven (public, protected, private) ipv 'var' (=public). Var stamt nog uit de tijd van php 4.
pi_137456520
quote:
Klopt, daar heb ik ook al even naar gekeken maar dacht eerst maar eens de system call proberen ;)

Best pittig nog imagemagick installeren onder windows.....

[ Bericht 2% gewijzigd door Chandler op 06-03-2014 19:34:13 ]
Just say hi!
pi_137461398
quote:
0s.gif Op donderdag 6 maart 2014 16:30 schreef zoem het volgende:
Btw: de class properties kun je beter een expliciete visibility geven (public, protected, private) ipv 'var' (=public). Var stamt nog uit de tijd van php 4.
Waarom zou het beter zijn om een expliciete visibility er aan te geven?
pi_137461840
Nog een vraag. Waarom worden erScope resolution operator gebruikt in plaats van een pointer als $this-> ?

De scope resolution operator (::) refereert dus naar constanten en statics. Maar waarom kan dat niet gewoon met $this?
  Moderator / Redactie Sport / Devops donderdag 6 maart 2014 @ 21:11:59 #240
176766 crew  zoem
zoemt
pi_137461870
Omdat

1) een property soms afgeschermd dient te worden middels protected/private, en dat kan niet met var
2) var nog een overblijfsel is uit het php 4-tijdperk
3) het duidelijker is wat de visibility is waardoor het beter onderhoudbare code oplevert
  Moderator / Redactie Sport / Devops donderdag 6 maart 2014 @ 21:15:29 #241
176766 crew  zoem
zoemt
pi_137462090
Staat toch in de documentatie die je linkt :? Je kunt er class constants of static properties/methods mee aanspreken.
pi_137465049
quote:
0s.gif Op donderdag 6 maart 2014 21:11 schreef Robuustheid het volgende:
Nog een vraag. Waarom worden erScope resolution operator gebruikt in plaats van een pointer als $this-> ?

De scope resolution operator (::) refereert dus naar constanten en statics. Maar waarom kan dat niet gewoon met $this?
$this verwijst naar eigenschappen van het object, en met :: verwijs je naar eigenschappen van de class. Het grote verschil is dat je voor dat laatste geen instance van de class nodig hebt.
pi_137467158
Hallo ik heb een site gemaakt waar ik een tabel had welke de waarde liet zien welke ingevoerd werd door de gebruiker en na bevestiging te zien is in een tabel, alleen heb ik een nieuw ''map' aangemaakt en de bestanden gekopieerd en geplakt en de database gegevens veranderd, waar eigenlijk alle ingevoerde waarden dus al verwijderd moeten zijn en dus alles op 0 staat en fris eruit moet zien (nieuw), echter zie ik in 1 tabel op een specifiek pagina nog steeds de waarden van wat er in het verleden is ingevoerd. Als ik naar de SQL bestanden kijk in phpmyadmin dan zijn er 0 waarden ingevoerd...

hoe kan ik dit oplossen?

P.S; als ik op een waarde klik (de waarde bevat een link naar de pagina met de gegevens van de waarde) dan krijg ik ''ID in de URL komt niet overeen met onze database''' wat echter correct is, maar de oude database waarden worden echter wel in de vorige pagina getoond van een andere map in htdocs (bijv test1, terwijl de nieuwe site in test2 zit), terwijl dat niet eens de bedoeling is
pi_137467302
quote:
0s.gif Op donderdag 6 maart 2014 22:38 schreef Andijvie_ het volgende:
Hallo ik heb een site gemaakt waar ik een tabel had welke de waarde liet zien welke ingevoerd werd door de gebruiker en na bevestiging te zien is in een tabel, alleen heb ik een nieuw ''map' aangemaakt en de bestanden gekopieerd en geplakt en de database gegevens veranderd, waar eigenlijk alle ingevoerde waarden dus al verwijderd moeten zijn en dus alles op 0 staat en fris eruit moet zien (nieuw), echter zie ik in 1 tabel op een specifiek pagina nog steeds de waarden van wat er in het verleden is ingevoerd. Als ik naar de SQL bestanden kijk in phpmyadmin dan zijn er 0 waarden ingevoerd...

hoe kan ik dit oplossen?

P.S; als ik op een waarde klik (de waarde bevat een link naar de pagina met de gegevens van de waarde) dan krijg ik ''ID in de URL komt niet overeen met onze database''' wat echter correct is, maar de oude database waarden worden echter wel in de vorige pagina getoond van een andere map in htdocs (bijv test1, terwijl de nieuwe site in test2 zit), terwijl dat niet eens de bedoeling is
Dit is makkelijker te overzien als je de code plaatst
pi_137467325
quote:
0s.gif Op donderdag 6 maart 2014 22:40 schreef totalvamp het volgende:

[..]

Dit is makkelijker te overzien als je de code plaatst
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
<?php
include './init.php';

if (empty($_GET['markt'])){
} else {
$markt_id = $_GET['markt'];
}

if (empty($_GET['zoeken'])){
} else {
$zoeken = $_GET['zoeken'];
header("Location: zoeken.php?zoeken=$zoeken");
}

if (empty($_POST) === false) {
    $required_fields = array('cijfer','reactie');
    foreach($_POST as $key=>$value){
        if (empty($value) && in_array($key, $required_fields) == true){
        $errors[] = 'Alle velden zijn verplicht!';
        break 1;
        }
    }
    if (empty($errors) === true) {
        $user_data_name = $user_data["user_username"];
        if (check_name_reacties($user_data_name) === true) {
            $errors[] = 'Je mag maar 1X reageeren per markt';
        }
        if (logged_in() === false) {
            $errors[] = 'Login om een reactie te plaatsen';
        }
        if (strlen($_POST['reactie']) < 20) {
            $errors[] = 'De reactie moet minimaal 20 tekens lang zijn';
        }
        if (strlen($_POST['reactie']) > 250) {
            $errors[] = 'De reactie mag niet langer zijn dan 250 tekens';
        }
        if (empty($_POST) === false && empty($errors) === true) {
            $date = date("d-m-Y");
            $reactie = $_POST['reactie'];
            $reactie = nl2br($reactie);
            $reactie = stripslashes($reactie);
            $reactie_data = array(
            'reactie_voor'        => $markt_id,
            'reactie_user'        => $user_data["user_username"],
            'reactie_inhoud'    => $reactie,
            'reactie_tijd'        => $date,
            'reactie_voor_naam' => $markt_data["markten_naam"]
            );
            reactie_post($reactie_data);
        }
    }
}

?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Marktreview.nl</title>
    <!-- css -->
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
    <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.min.css" rel="stylesheet">
        <link rel="stylesheet" href="css/custom.css">
    <!-- /css -->
  </head>
<body>
<nav class="navbar navbar-default" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
        <span class="sr-only">Open navigatiebalk</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="./index.php" style="width: 250px; height: 25px;">
<img src='./images/logo.png' height="32">

</a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class='nav navbar-nav'>
<li>
<a href='index.php'>
<i class="fa fa-home"></i>
Startpagina
</a>
</li>
<li  class="active">
<a href='./markt.php'>
<i class="fa fa-calendar"></i>
Alle markten
</a>
</li>
<li class='dropdown'>
<a href='/shop'>
<i class="fa fa-envelope"></i>
Contact
</a>
</li>
<li>
<a href='./disclaimer.php'>
<i class="fa fa-calendar"></i>
Disclaimer
</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<?php 
if (logged_in() === false) {
    echo '<a data-toggle="dropdown"><i class="fa fa-user"></i> <b class="caret"></b></a>
    <ul class="dropdown-menu" role="menu" aria-labelledby="Acc">
        <li><a href="./login.php">Login</a></li>
        <li><a href="./register.php">Register</a></li>
    </ul>';
} else {
    echo '<a data-toggle="dropdown"><i class="fa fa-user"></i> <b class="caret"></b></a>
    <ul class="dropdown-menu" role="menu" aria-labelledby="Acc">
        <li><a href="#">change password</a></li>
        <li><a href="./logout.php">logout</a></li>
    </ul>';
}?>
</li>
</ul>
</div>
</div>
</nav>

<div class="row">
 <div class="col-md-1 fixed">
    <center>
    <div class="well well-sm" style="background-color: rgba(255,255,255,0.4); border: rgba(255,255,255,0.4); box-shadow: 10px 10px 5px #610000;">
     <a href="http://www.fb.com" style="color:#3B5998;"><i class="fa fa-facebook fa-4x"></a></i><br>
     <a href="http://www.twitter.com" style="color:#1BB2E9;"><i class="fa fa-twitter fa-4x"></a></i>
    </div>
    </center>
 </div>
</div>

<div class="container">
<?php 
if (empty($errors) === false) {
echo output_errors($errors);
}?>
<div class="row">
  <div class="col-md-8">
     <div class="well well-sm">
        <?php    if (empty($_GET['markt'])){
                    echo '
                    <form class="form-inline" action"zoeken.php" methode="post">
                        <div class="form-group has-error">
                            <input type="text" class="col-xs-2 form-control" id="zoeken" name="zoeken" placeholder="zoek">
                            <button type="submit" class="btn btn-danger">zoek</button>
                            <a href="./markt.php?filter=naam" type="button" class="btn btn-danger">filter op naam</a>
                            <a href="./markt.php?filter=provincie" type="button" class="btn btn-danger">filter op provincie</a>
                            <a href="./markt.php?filter=stad" type="button" class="btn btn-danger">filter op stad</a>
                            <a href="./markt.php" type="button" class="btn btn-danger">geen filter</a><br><br>
                        </div>
                    </form>
            <table class="table table-striped table-bordered">
                <thead>
                    <tr>
                        <td>Naam</td>
                        <td>Provincie</td>
                        <td>Stad</td>
                        <td>Organisator</td>
                        <td>Type</td>
                    </tr>
                </thead>
                <tbody>
                    <tr>';
                         if (empty($_GET["filter"])){
                        include 'list_nofilter.php';
                    } else {
                        $filter_input = $_GET["filter"];
                        $filter_1 = 'naam';
                        $filter_2 = 'provincie';
                        $filter_3 = 'stad';
                        if(strpos($filter_input, $filter_1) !== false){
                            include 'list_name.php';
                        }
                        if(strpos($filter_input, $filter_2) !== false){
                            include 'list_provincie.php';
                        }
                        if(strpos($filter_input, $filter_3) !== false){
                            include 'list_stad.php';
                        }
                    }
                    
                    echo '
                    </tr>
                </tbody>
            </table>
        </div>';
                } else {
                if (markt_exists($markt_id) === true) {
                    echo'
                    <h2> ' . $markt_data["markten_naam"] . ' - ' . $cijfer_data["cijfer_totaal"] . ' </h2>
                    naam:<b> ' . $markt_data["markten_naam"] . '</b><br>
                    provincie:<b> ' . $markt_data["markten_provincie"] . '</b><br>
                    stad:<b> ' . $markt_data["markten_stad"] . '</b><br>
                    dagen aanwezig:<b> ' . $markt_data["markten_dag1"] . ', ' . $markt_data["markten_dag2"] . '</b><br>
                    type markt:<b> ' . $markt_data["markten_type"] . '</b>
                    <h2> Cijfers </h2>
                    Totaal:<b> ' . $cijfer_data["cijfer_totaal"] . '</b><br>
                    Algemeen:<b> ' . $cijfer_data["cijfer_algemeen"] . '</b><br>
                    Klantvriendelijkheid:<b> ' . $cijfer_data["cijfer_klantvriendelijkheid"] . '</b><br>
                    service:<b> ' . $cijfer_data["cijfer_service"] . '</b><br>
                    prijs:<b> ' . $cijfer_data["cijfer_prijs"] . '</b><br>
                    kwaliteit:<b> ' . $cijfer_data["cijfer_kwaliteit"] . '</b><br>
                    hygiene:<b> ' . $cijfer_data["cijfer_hygiene"] . '</b><br>
                    presentatie:<b> ' . $cijfer_data["cijfer_presentatie"] . '</b><br>
                    product:<b> ' . $cijfer_data["cijfer_product"] . '</b><br>
                    <a href="http://localhost/update/cijfer.php?markt=' . $markt_id . '">geef een cijfer</a>
                    </div>
                    <div class="well well-sm">
                    <h2> Reviews </h2>
                    <hr>
                    ';
                    $result = mysql_query("SELECT * FROM site_reacties WHERE reactie_voor = '$markt_id'");
                    if ($result) {
                        if (mysql_num_rows($result) == 0){
                            echo 'er zijn nog geen reacties geplaatst! <hr>';
                        } else {
                            while($row = mysql_fetch_array($result)){
                                echo '<div style="background-color:#E6E6E6;><p class="text-left">reactie door:' . $row["reactie_user"] . '</p><p class="text-center">' . $row["reactie_inhoud"] . '</p><p class="text-right">geplaatst op: ' . $row["reactie_tijd"] . '</p></div><hr>';
                            }
                        }
                    }
                    echo '
                    <form role="forum" method="post" action"">';
                    $reactie_voor = $markt_id;
                    $reactie_user = $user_data["id"];
                    echo '
                    <textarea class="form-control" id="reactie" name="reactie" rows="3" maxlength="250" placeholder="Geef een revieuw over deze markt"></textarea><br>
                    <br><button type="submit" class="btn btn-danger">plaats</button>
                    </form>
                    
                    
                    </div>';
                } else {
                    echo'Markt ID in de URL komt niet overeen met een markt in onze database </div>';
                }
                }
        ?>
  </div>
  <div class="col-md-4">
  <?php
  if (logged_in() === false) {
  echo '
    <div class="well well-sm">
         <form role="form" method="post" action="login_pc.php">
            <div class="form-group">
            <input type="text" class="form-control" id="username" name="username" placeholder="Voer hier uw gebruikersnaam in">
            </div> 
            <div class="form-group">
            <input type="password" class="form-control" id="password" name="password" placeholder="Voer hier uw wachtwoord in">
            </div> 
            <div class="form-group">
            <button type="submit" class="btn btn-default">Inloggen</button>
            </div> 
         </form>
        <hr>
        <a href="./register.php">Nog geen lid?</a> <br>
        <a href="./changepassword.php?type=Offline">wachtwoord vergeten</a><br>
        <a href="./markttoevoegen.php">Markt toevoegen</a> <br>
        
        
    </div>'; } else {
    echo '
    <div class="well well-sm">
        <p>
        welkom, ' . $user_data["user_name"] . '.<br>
        
        </p>
        <hr>
        log uit <br>
        <a href="./markttoevoegen.php">Markt toevoegen</a><br>
        
    </div>';
    }?>
  </div>

</div>
</div>

<!-- JS -->
<script data-src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" style="visibility:hidden;"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
<!-- /js -->
</body>
</html>
  Moderator / Redactie Sport / Devops donderdag 6 maart 2014 @ 22:41:46 #246
176766 crew  zoem
zoemt
pi_137467350
quote:
0s.gif Op donderdag 6 maart 2014 22:40 schreef totalvamp het volgende:

[..]

Dit is makkelijker te overzien als je de code plaatst
Succes :D
pi_137467513
quote:
0s.gif Op donderdag 6 maart 2014 22:40 schreef totalvamp het volgende:

[..]

Dit is makkelijker te overzien als je de code plaatst
quote:
0s.gif Op donderdag 6 maart 2014 22:39 schreef ludicrous_monk het volgende:
Ik snap geen fuck van je OP. Over wat voor map en bestanden heb je het?
Nou het probleem is als volgt;

Ik heb een site gemaakt en getest welke bijvoorbeeld in htdocs/test1 staat en vervolgens heb je bijvoorbeeld op de hoofdpagina een DIV met tabel welke laat zien ''recent toegevoegde auto's door users''. In dat tabel zie je dus de recent toegevoegde auto's door users.

Echter wou ik de site weer even fris hebben, dus zonder gebruikssporen, dus heb ik een nieuw map gemaakt; htdocs/test2 en vervolgens alle bestanden uit test1 in test2 gezet en de connection.php aangepast, zodat nieuwe db gegevens overeenkomen met test2 haar eigen db.

Het probleem is dus dat er nog steeds de recent toegevoegde auto's te zien zijn welke ook al was in het map test1, terwijl dat niet de bedoeling is. Als ik er echter op klik is er te zien ''Dit id komt niet voor in de database'', dat klopt ook, want er moeten geen gebruikssporen te zien zijn... maar toch wordt dit op de hoofdpagina getoond, welke behoren bij test1 en niet bij test2.
pi_137467575
quote:
0s.gif Op donderdag 6 maart 2014 22:41 schreef Andijvie_ het volgende:

[..]
[ code verwijderd ]
Ik weiger tijd te steken in code waar de programmeur duidelijk ook geen tijd in heeft gestoken.
De helft is voorzien van tabs en de andere helft is getabt als een randdebiel. Copy pastes van code blokken? |:( En zie ik daar een regelmatig een echo van 20 regels? :X En dat hele gedoe is nog een ranzige crosspost ook :r

[ Bericht 5% gewijzigd door #ANONIEM op 06-03-2014 22:53:26 ]
pi_137467877
quote:
0s.gif Op donderdag 6 maart 2014 22:41 schreef Andijvie_ het volgende:

[..]
[ code verwijderd ]

Hier kan ik niks in terugvinden over de database verbindingen.
Sowieso was hierdoorheen kijken pijnlijk xD
  Moderator / Redactie Sport / Devops donderdag 6 maart 2014 @ 22:57:05 #250
176766 crew  zoem
zoemt
pi_137468082
De lap code is zo groot en onduidelijk dat het ondoenlijk is om het te debuggen. Twee keer knipperen met je ogen en je bent een uur verder.
pi_137468170
quote:
donderdag 6 maart 2014 22:46 schreef CrashO het volgende:[/b]

[..]

Ik weiger tijd te steken in code waar de programmeur duidelijk ook geen tijd in heeft gestoken.
De helft is voorzien van tabs en de andere helft is getabt als een randdebiel. Copy pastes van code blokken? |:( En zie ik daar een regelmatig een echo van 20 regels? :X En dat hele gedoe is nog een ranzige crosspost ook :r
quote:
0s.gif Op donderdag 6 maart 2014 22:57 schreef zoem het volgende:
De lap code is zo groot en onduidelijk dat het ondoenlijk is om het te debuggen. Twee keer knipperen met je ogen en je bent een uur verder.
Dan heb je nog nooit ergens gewerkt waar ze het concept OOP nog niet kenden...
een keer een index.php gezien van ongeveer 3000 regels aan code, dit is niks vergeleken dat xD

Deze code is alleen nutteloos om tot een oplossing te komen, aangezien we niet zien waar de data vandaan komt.

[ Bericht 14% gewijzigd door #ANONIEM op 06-03-2014 22:59:51 ]
pi_137468280
quote:
0s.gif Op donderdag 6 maart 2014 22:58 schreef totalvamp het volgende:
Dan heb je nog nooit ergens gewerkt waar ze het concept OOP nog niet kenden...
Wordpress? :+
  Moderator / Redactie Sport / Devops donderdag 6 maart 2014 @ 23:01:23 #253
176766 crew  zoem
zoemt
pi_137468297
quote:
0s.gif Op donderdag 6 maart 2014 22:58 schreef totalvamp het volgende:
Dan heb je nog nooit ergens gewerkt waar ze het concept OOP nog niet kenden...
een keer een index.php gezien van ongeveer 3000 regels aan code, dit is niks vergeleken dat xD

Deze code is alleen nutteloos om te een oplossing te komen, aangezien we niet zien waar de data vandaan komt.
Duizenden regels binnen dezelfde file is wel treurig inderdaad. Dan wordt het tijd voor een stevige refactor :P
pi_137468307
quote:
99s.gif Op donderdag 6 maart 2014 23:01 schreef CrashO het volgende:

[..]

Wordpress? :+
Nee :( eigen CMS voor een voetbalsite.
Soms droom ik nog over die brei aan code..

een miljoen aan includes en bullshit overal.

[ Bericht 3% gewijzigd door #ANONIEM op 06-03-2014 23:02:19 ]
  Moderator / Redactie Sport / Devops donderdag 6 maart 2014 @ 23:03:56 #255
176766 crew  zoem
zoemt
pi_137468415
Tegenwoordig zou handmatig includen amper meer nodig hoeven te zijn met een (psr-0) autoloader. Mijn handen gaat altijd jeuken als ik spaghetti zie. Ach ja, iedereen is zo begonnen.
pi_137468506
Btw.
Om toch OT te blijven (en zonder die crap code van Andijvie_ door te lezen) Wanneer je de database gevens aangepast hebt (en een schone tabel... ) is het gewoon onmogelijk om oude gevens te krijgen. Of je hebt de db info niet aangepast, of het komt niet uit de tabel, of je hebt gewoon de oude tabel gekopieërd en laat die info zien.

Dus los van eventuele code.

[ Bericht 2% gewijzigd door #ANONIEM op 06-03-2014 23:06:20 ]
pi_137468580
quote:
99s.gif Op donderdag 6 maart 2014 23:05 schreef CrashO het volgende:
Btw.
Om toch OT te blijven (en zonder die crap code van Andijvie_ door te lezen) Wanneer je de database gevens aangepast hebt (en een schone tabel... ) is het gewoon onmogelijk om oude gevens te krijgen. Of je hebt de db info niet aangepast, of het komt niet uit de tabel, of je hebt gewoon de oude tabel gekopieërd en laat die info zien.

Dus los van eventuele code.
Dit, vandaar ook dat ik ernaar vroeg.

Ik zou andijvie ook aanraden met classes te leren werken :)
  donderdag 6 maart 2014 @ 23:10:33 #258
187069 slacker_nl
Sicko pur sang
pi_137468698
If iets dan niks anders doe wat. Mooi stukje code...
In theory there is no difference between theory and practice. In practice there is.
pi_137468709
quote:
0s.gif Op donderdag 6 maart 2014 23:07 schreef totalvamp het volgende:
Ik zou andijvie ook aanraden met classes te leren werken :)
Andijvie is momenteel actief in zijn crosspost topic. Waar hij al 2x gereageert heeft (sinds de laatste 9 replies in dit topic) :')
pi_137469758
quote:
99s.gif Op donderdag 6 maart 2014 23:10 schreef CrashO het volgende:

[..]

Andijvie is momenteel actief in zijn crosspost topic. Waar hij al 2x gereageert heeft (sinds de laatste 9 replies in dit topic) :')
Misschien kan het slecht tegen kritiek. Maar zonder het complete script kunnen we sowieso niet helpen.
  Moderator / Redactie Sport / Devops donderdag 6 maart 2014 @ 23:48:23 #261
176766 crew  zoem
zoemt
pi_137470127
Mét het complete script ook niet. Debug-begeleiding geven aan iemand die niet goed weet waar hij mee bezig is (nofi) kost gewoon te veel tijd. Dan zal die persoon zelf eerst aan de slag moeten om de basisbeginselen te leren.
  zaterdag 8 maart 2014 @ 17:12:24 #262
25889 Sitethief
Fulltime Flapdrol
pi_137516894
Zelfs toen ik zelf nog lelijke code schreef die lekker niet OOP compleet in een bestand stond wist ik wel waar ik mijn tabs(4 spaties) moest plaatsen...
Je maakt het jezelf alleen maar lastig, zeker met debuggen, als je code nauwelijks leesbaar is.
Stroek: Sitethief, die is heel groot en sterk :Y.
Faat: *zucht* zoals gewoonlijk hoor Sitethief weer in de bocht &gt;:)
  FOK!mycroftheld zaterdag 8 maart 2014 @ 17:36:22 #263
128465 verified  bondage
niet meer aanwezig op FOK!
pi_137517654
quote:
0s.gif Op donderdag 6 maart 2014 23:03 schreef zoem het volgende:
Ach ja, iedereen is zo begonnen.
Helaas wel... Als ik code van mezelf van 4 jaar terug bekijk schaam ik me ervoor. Uiteindelijk ga ik het wel herbouwen maar kost gewoon erg veel tijd en blijft daardoor lang liggen.
pi_137518780
quote:
0s.gif Op donderdag 6 maart 2014 23:03 schreef zoem het volgende:
Tegenwoordig zou handmatig includen amper meer nodig hoeven te zijn met een (psr-0) autoloader. Mijn handen gaat altijd jeuken als ik spaghetti zie. Ach ja, iedereen is zo begonnen.
Hmm. Als ik een simpele form action heb dan ga ik echt niet alle klassen autoloaden. Dan doe ik alleen de benodigde klassen.
pi_137518828
quote:
1s.gif Op zaterdag 8 maart 2014 18:15 schreef robin007bond het volgende:

[..]

Hmm. Als ik een simpele form action heb dan ga ik echt niet alle klassen autoloaden. Dan doe ik alleen de benodigde klassen.
Met een autoloader laadt je sowieso nooit meer dan nodig, dat is het voordeel ervan.
pi_137519017
quote:
1s.gif Op zaterdag 8 maart 2014 18:17 schreef totalvamp het volgende:

[..]

Met een autoloader laadt je sowieso nooit meer dan nodig, dat is het voordeel ervan.
Oh, dat wist ik eerlijk gezegd niet. Mooi. :)
pi_137519366
quote:
11s.gif Op zaterdag 8 maart 2014 17:36 schreef bondage het volgende:

[..]

Helaas wel... Als ik code van mezelf van 4 jaar terug bekijk schaam ik me ervoor. Uiteindelijk ga ik het wel herbouwen maar kost gewoon erg veel tijd en blijft daardoor lang liggen.
Zo heb ik 10 jaar geleden voor mijn sportvereniging een wedstrijdprogramma geschreven voor het jaarlijkse toernooi, ik heb in een overeenkomst laten vastleggen dat het niet mag worden verspreid. Puur omdat ik niet wil dat anderen die code zien :@ :P
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
  Moderator / Redactie Sport / Devops zaterdag 8 maart 2014 @ 19:39:10 #268
176766 crew  zoem
zoemt
pi_137521474
quote:
0s.gif Op zaterdag 8 maart 2014 18:24 schreef robin007bond het volgende:

[..]

Oh, dat wist ik eerlijk gezegd niet. Mooi. :)
Om het moment dat een object wordt gecreëerd en php de class niet kan vinden wordt de autoloader-functie aangesproken. Je kunt daar je eigen functie(s) aan koppelen die op basis van de classnaam de juiste file opzoekt en deze include. Op deze manier worden dus alleen de bestanden geinclude die daadwerkelijk nodig zijn. De term psr-0 slaat op de autloader-standaard, zodat niet iedereen zijn eigen constructie gaat bedenken.
pi_137522638
quote:
0s.gif Op zaterdag 8 maart 2014 19:39 schreef zoem het volgende:

[..]

Om het moment dat een object wordt gecreëerd en php de class niet kan vinden wordt de autoloader-functie aangesproken. Je kunt daar je eigen functie(s) aan koppelen die op basis van de classnaam de juiste file opzoekt en deze include. Op deze manier worden dus alleen de bestanden geinclude die daadwerkelijk nodig zijn. De term psr-0 slaat op de autloader-standaard, zodat niet iedereen zijn eigen constructie gaat bedenken.
Helder. Ik heb het al even doorgenomen. Erg handig. :)
  † In Memoriam † zaterdag 8 maart 2014 @ 20:15:41 #270
159335 Boze_Appel
Vrij Fruit
pi_137523113
quote:
0s.gif Op zaterdag 8 maart 2014 20:06 schreef robin007bond het volgende:

[..]

Helder. Ik heb het al even doorgenomen. Erg handig. :)
http://www.php-fig.org/psr/psr-0/

Beter dan die github-link. (want meteen linkjes naar de andere psr's)
Carpe Libertatem
pi_137523660
quote:
7s.gif Op zaterdag 8 maart 2014 20:15 schreef Boze_Appel het volgende:

[..]

http://www.php-fig.org/psr/psr-0/

Beter dan die github-link. (want meteen linkjes naar de andere psr's)
Thanks. :)
  zondag 9 maart 2014 @ 01:42:04 #272
272287 henrivo
Tikt tegen jassies
pi_137535109
Wat een gedoe zeg om Bootstrap 3 werkend te krijgen onder Symfony2 ;(
pi_137571972
Iemand ervaring met het uitzoeken van verschillen in afbeeldingen (motion detection) m.b.v. php ?

Ik ben nu meerdere classes aan het testen (gevonden op't internet) en imagemagick maar moet zeggen dat ik op dit moment nog niet echt heel tevreden ben met de resultaten dus zou ik willen weten of hier er al mensen mee hebben gespeeld?

Classes:
http://www.phpclasses.org(...)hey-are-similar.html
http://www.robert-lerner.com/imagecompare.php

Mijn gecombineerde versie:
http://pastebin.com/x6sZ1YFU

Resultaten ;)
http://pastebin.com/VSdQUtLJ (nog niet klaar, draait nog steeds). (Je kunt er weinig mee aangezien ik zelf de plaatjes wel kan zien en het zo kan vergelijken.. of de waarden juist zijn.). Tot nu toe is de waarde 4 het meest accuraat (exec met imagemagick) maar als script doet de 2e functie anders ook goed zijn werk (resultaat vs snelheid)

Anyone? :D
Just say hi!
pi_137578891
Ik heb weer een vraagstukje waar ik niet uit kom:

Ik wil een lijst maken met daarin alle spelers die in een bepaalde tijd voor slechts 1 club hebben gespeeld, en ook hoeveel wedstrijden ze voor die club hebben gespeeld.

De tabel "participation" is opgebouwd uit de volgende kolommen: "gameID,clubID,playerID,minuteIn,minuteOut"

Naar mijn idee zou ik dus voor elke speler het aantal clubs waar die voor gespeeld heeft moeten tellen en daarna een WHERE ....... < 2 er in gooien zodat enkel de spelers overblijven die slechts voor 1 club gespeeld hebben.
Maar ik krijg het simpelweg niet voor elkaar om per playerID het aantal clubs weer te geven.

Hier een voorbeeld van een speler die dus voor meerdere clubs heeft gespeeld:
(gameID,clubID,playerID,minuteIn,minuteOut)
570,20,1317,78,90,8
1225,2,1317,1,90,8

Hoop dat iemand me een zetje in de goede richting kan geven :)
pi_137579003
quote:
5s.gif Op maandag 10 maart 2014 13:04 schreef DannyDeko het volgende:
Ik heb weer een vraagstukje waar ik niet uit kom:

Ik wil een lijst maken met daarin alle spelers die in een bepaalde tijd voor slechts 1 club hebben gespeeld, en ook hoeveel wedstrijden ze voor die club hebben gespeeld.

De tabel "participation" is opgebouwd uit de volgende kolommen: "gameID,clubID,playerID,minuteIn,minuteOut"

Naar mijn idee zou ik dus voor elke speler het aantal clubs waar die voor gespeeld heeft moeten tellen en daarna een WHERE ....... < 2 er in gooien zodat enkel de spelers overblijven die slechts voor 1 club gespeeld hebben.
Maar ik krijg het simpelweg niet voor elkaar om per playerID het aantal clubs weer te geven.

Hier een voorbeeld van een speler die dus voor meerdere clubs heeft gespeeld:
(gameID,clubID,playerID,minuteIn,minuteOut)
570,20,1317,78,90,8
1225,2,1317,1,90,8

Hoop dat iemand me een zetje in de goede richting kan geven :)
Zo even snel uit mijn hoofd:
1
2
3
4
SELECT playerID 
FROM participation 
GROUP BY playerID 
HAVING COUNT(clubID) < 2
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
pi_137579386
quote:
0s.gif Op maandag 10 maart 2014 13:08 schreef Rockfire het volgende:

[..]

Zo even snel uit mijn hoofd:
[ code verwijderd ]

Edit: Werkt toch niet helaas. Die query telt welke playerID's slechts 1 wedstrijd gespeeld hebben, ipv hoeveel wedstrijd voor slechts 1 club.

Edit 2:
Met de volgende code heb ik kunnen tellen voor hoeveel clubs ze hebben gespeeld, alleen nu het selecteren van alleen diegene die bij "clubs" 1 hebben.
"WHERE count(DISTINCT clubID) = 1" mag helaas niet :p

1
2
3
4
SELECT p.name, count(p.name) AS games, part.clubID, count(DISTINCT clubID) AS clubs
FROM person p
JOIN participation part ON part.playerID = p.personID
GROUP BY p.name


[ Bericht 16% gewijzigd door DannyDeko op 10-03-2014 13:47:24 ]
pi_137580299
quote:
0s.gif Op maandag 10 maart 2014 13:19 schreef DannyDeko het volgende:

[..]

Edit: Werkt toch niet helaas. Die query telt welke playerID's slechts 1 wedstrijd gespeeld hebben, ipv hoeveel wedstrijd voor slechts 1 club.
1
2
3
4
SELECT playerID 
FROM participation 
GROUP BY playerID 
HAVING COUNT(DISTINCT(clubID)) < 2
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
  Moderator / Redactie Sport / Devops maandag 10 maart 2014 @ 13:56:59 #278
176766 crew  zoem
zoemt
pi_137580697
quote:
0s.gif Op maandag 10 maart 2014 13:19 schreef DannyDeko het volgende:
Edit 2:
Met de volgende code heb ik kunnen tellen voor hoeveel clubs ze hebben gespeeld, alleen nu het selecteren van alleen diegene die bij "clubs" 1 hebben.
"WHERE count(DISTINCT clubID) = 1" mag helaas niet :p
Je kunt geen aggregate functie zoals COUNT combineren met WHERE. Daarvoor is HAVING uitgevonden.
  maandag 10 maart 2014 @ 14:43:46 #279
187069 slacker_nl
Sicko pur sang
pi_137582017
quote:
99s.gif Op maandag 10 maart 2014 07:58 schreef Chandler het volgende:
Iemand ervaring met het uitzoeken van verschillen in afbeeldingen (motion detection) m.b.v. php ?

Ik ben nu meerdere classes aan het testen (gevonden op't internet) en imagemagick maar moet zeggen dat ik op dit moment nog niet echt heel tevreden ben met de resultaten dus zou ik willen weten of hier er al mensen mee hebben gespeeld?

Classes:
http://www.phpclasses.org(...)hey-are-similar.html
http://www.robert-lerner.com/imagecompare.php

Mijn gecombineerde versie:
http://pastebin.com/x6sZ1YFU

Resultaten ;)
http://pastebin.com/VSdQUtLJ (nog niet klaar, draait nog steeds). (Je kunt er weinig mee aangezien ik zelf de plaatjes wel kan zien en het zo kan vergelijken.. of de waarden juist zijn.). Tot nu toe is de waarde 4 het meest accuraat (exec met imagemagick) maar als script doet de 2e functie anders ook goed zijn werk (resultaat vs snelheid)

Anyone? :D
Ik mis tests en ik ben zeker geen fan van je shell execution in je PHP script, volgens mij heb je daar al dingen voor. Verder zou ik je mimetype anders opvragen:

http://www.php.net/manual/en/function.finfo-file.php

je functie: imagetyte moet image_type zijn, ik ben geen fan je naamgeving: imagetype moet imo worden: image_type, imagehex => image_hex, etc etc. En verder ben ik ook geen fan van echo "meuk<br />", als je de modules op een shell gaat draaien gaan je linebreaks eraan. Laat die logica over aan je frontend.
In theory there is no difference between theory and practice. In practice there is.
pi_137584770
Weer een vraagje (:
Ik heb de volgende code waar ik weer een constraint aan wil meegeven, namelijk dat enkel diegene "average" > 45 hebben worden geselecteerd.

1
2
3
4
SELECT p.name, average(SUM(part.minuteOut-part.minuteIn),count(*))
FROM person p
JOIN participation part ON p.personID = part.playerID
GROUP BY p.name

Met zowel HAVING count(average) en WHERE average krijg ik te zien dat average geen kolom is in die clause.

[ Bericht 77% gewijzigd door DannyDeko op 10-03-2014 18:18:59 ]
pi_137588699
quote:
0s.gif Op maandag 10 maart 2014 16:23 schreef DannyDeko het volgende:
Weer een vraagje (:
Ik heb de volgende code waar ik weer een constraint aan wil meegeven, namelijk dat enkel diegene "average" > 45 hebben worden geselecteerd.
[ code verwijderd ]

Met zowel HAVING count(average) en WHERE average krijg ik te zien dat average geen kolom is in die clause.
Average is geen kolomnaam maar een functie.

In de WHERE clause kun je gebruik maken van kolomnamen zoals die in de tabeldefinities staan. In een HAVING clause heb je alleen de aliassen (of namen) van de kolommen die in de SELECT genoemd worden.

Als het mogelijk is, kun je beter WHERE dan HAVING gebruiken. WHERE wordt gebruikt bij het ophalen van de data, HAVING als filterlaag tussen het ophalen en het doorsturen naar de client.

Je kunt iets gebruiken als
WHERE average(SUM(part.minuteOut-part.minuteIn),count(*)) > 10

Ik zou die resultaatkolom sowieso een alias geven, al was het maar omdat je dan de kolom makkelijk aan de kant van PHP weer kunt benaderen. En met die alias is het ook mogelijk de kolom in een HAVING clause te benaderen:

1
2
3
4
5
SELECT p.name, average(SUM(part.minuteOut-part.minuteIn),count(*)) avg
FROM person p
JOIN participation part ON p.personID = part.playerID
GROUP BY p.name
HAVING avg > 10
pi_137617934
Ik heb PHP geleerd in de tijd van PHP 4 en heb daarna jaren lang niks meer gedaan. Er is een hoop veranderd, vooral ook de mysql functies.

Ik heb laatst een script gedownload.

Daarin heb ik:
1$result = $mysqli->query('SELECT id, rack, temperature, recordtime FROM temperatures WHERE rack = "O8" AND DATE(recordtime) = DATE(NOW())');

Iets verder op gebruik ik $result:
1foreach($result as $r) {

Ik wil in de query WHERE rack = "O8" veranderen naar WHERE rack = $rack. Dus in plaats van een statisch waarde, wil ik een $random waarde in de query.

Met de huidige code kan dat niet. Volgens mij moet ik met prepare statement werken, maar daar heb ik geen kaas van gegeten. Heb het een en ander geprobeerd, maar ik kom er niet uit.

Wie kan mij erbij helpen?
  dinsdag 11 maart 2014 @ 15:04:52 #283
166255 Maringo
Bèhèhèhèh
pi_137618089
quote:
0s.gif Op dinsdag 11 maart 2014 15:01 schreef xaban06 het volgende:
Ik heb PHP geleerd in de tijd van PHP 4 en heb daarna jaren lang niks meer gedaan. Er is een hoop veranderd, vooral ook de mysql functies.

Ik heb laatst een script gedownload.

Daarin heb ik:
[ code verwijderd ]

Iets verder op gebruik ik $result:
[ code verwijderd ]

Ik wil in de query WHERE rack = "O8" veranderen naar WHERE rack = $rack. Dus in plaats van een statisch waarde, wil ik een $random waarde in de query.

Met de huidige code kan dat niet. Volgens mij moet ik met prepare statement werken, maar daar heb ik geen kaas van gegeten. Heb het een en ander geprobeerd, maar ik kom er niet uit.

Wie kan mij erbij helpen?
http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html#10

Probeer die eens.
Die volg topic-knop hè...
Op 02-06-2014 16:38 schreef Moeraskat
Je bent te goed voor de mensheid.
pi_137618802
quote:
Dat is weer PDO en moet ik het script deels ombouwen.

Ik heb het volgende gepuzzeld, maar werkt nog niet helemaal:
1
2
3
4
5
6
7
$rackname = $_GET['rack'];
$stmt = $mysqli->prepare("SELECT id, rack, temperature, recordtime FROM temperatures WHERE rack = ? AND DATE(recordtime) = DATE(NOW())");

$stmt->bind_param("s", $rackname);
$stmt->execute();
$result = $stmt->fetch();
foreach($result as $r) {

1PHP Warning:  Invalid argument supplied for foreach() in /var/www/x.php on line 100, referer: http://x/x.php
pi_137619060
Is het mogelijk om in wordpress voordat de pagina geoutput wordt bepaalde strings te vervangen? Ik heb een aantal plugins en wil daarin woorden veranderen/ weghalen.
pi_137619690
quote:
99s.gif Op dinsdag 11 maart 2014 15:33 schreef boskameel het volgende:
Is het mogelijk om in wordpress voordat de pagina geoutput wordt bepaalde strings te vervangen? Ik heb een aantal plugins en wil daarin woorden veranderen/ weghalen.
http://codex.wordpress.or(...)eference/the_content
------___------ 53
----.(___).---- 42
---(o\_!_/o)---
  dinsdag 11 maart 2014 @ 16:22:43 #287
166255 Maringo
Bèhèhèhèh
pi_137620717
quote:
0s.gif Op dinsdag 11 maart 2014 15:25 schreef xaban06 het volgende:

[..]

Dat is weer PDO en moet ik het script deels ombouwen.

Ik heb het volgende gepuzzeld, maar werkt nog niet helemaal:
[ code verwijderd ]

[ code verwijderd ]

var_dump($result); en kijk wat er terug komt uit de database. Misschien ligt het aan je query zelf.
Die volg topic-knop hè...
Op 02-06-2014 16:38 schreef Moeraskat
Je bent te goed voor de mensheid.
pi_137622587
quote:
2s.gif Op dinsdag 11 maart 2014 16:22 schreef Maringo het volgende:

[..]

var_dump($result); en kijk wat er terug komt uit de database. Misschien ligt het aan je query zelf.
Wanneer ik geen $var gebruik in de query, werkt het gewoon, dus de query klopt gewoon.
pi_137623182
quote:
0s.gif Op dinsdag 11 maart 2014 17:13 schreef xaban06 het volgende:

[..]

Wanneer ik geen $var gebruik in de query, werkt het gewoon, dus de query klopt gewoon.
...en dat maakt het somehow een minder goed idee om even te debuggen en wat foutmeldingen danwel variabelen te outputten?
pi_137623387
quote:
1s.gif Op dinsdag 11 maart 2014 17:34 schreef KomtTijd... het volgende:

[..]

...en dat maakt het somehow een minder goed idee om even te debuggen en wat foutmeldingen danwel variabelen te outputten?
Sorry hoor.. :)

boolean true is de output.
pi_137623633
Oh mij heb je er niet mee hoor, ik dacht dat je zelf een oplossing zocht. :+.

Zo te zien mag je nog even terug de documentatie in want je gebruikt fetch verkeerd:

www.php.net/manual/en/mysqli-stmt.fetch.php

Zie procedural example
pi_137625265
Ik heb deze reeks een doorgespit. Hoe zijn jullie zo'n PHP/MySQL freaks geworden? Ik wil zou het ook dolgraag willen...

Hoe hebben jullie PHP/MySQL geleerd als ik vragen mag?
pi_137625452
quote:
0s.gif Op dinsdag 11 maart 2014 18:45 schreef BroodjeKebab het volgende:
Ik heb deze reeks een doorgespit. Hoe zijn jullie zo'n PHP/MySQL freaks geworden? Ik wil zou het ook dolgraag willen...

Hoe hebben jullie PHP/MySQL geleerd als ik vragen mag?
Veel uitproberen en php.net raadplegen. Daarnaast kun je simpele tutorials volgen om een beetje op weg te raken.

En veel geduld hebben
pi_137625879
Met iets eenvoudigs beginnen en steeds meer proberen. Php docs erbij, docs van je cms/framework erbij, google erbij, dit topic erbij...
pi_137626074
quote:
1s.gif Op dinsdag 11 maart 2014 18:50 schreef totalvamp het volgende:

[..]

Veel uitproberen en php.net raadplegen. Daarnaast kun je simpele tutorials volgen om een beetje op weg te raken.

En veel geduld hebben
quote:
14s.gif Op dinsdag 11 maart 2014 19:01 schreef KomtTijd... het volgende:
Met iets eenvoudigs beginnen en steeds meer proberen. Php docs erbij, docs van je cms/framework erbij, google erbij, dit topic erbij...
Ja joh? Php.net? Zijn daar losse tuts gewoon? Ik dacht dat er een boek voor nodig was joh ! Zelfs op school werd me boeken aangeraden, maar die zijn meestal heel dik (minimaal 500 pagina's)
  dinsdag 11 maart 2014 @ 19:11:39 #296
230788 n8n
Pragmatisch
pi_137626366
Boeken raadt ik alleen aan om design-filosofieen te leren. Best practice, naslagwerken en relvante voorbeelden zijn online beter beschikbaar
Specialization is for insects”.—Robert Heinlein
pi_137626376
De examples op php.net zijn zeer duidelijk. Echt tutorials volgen is leuk als je nog in het "hello world" stadium zit, maar daarna moet je het toch echt hebben van je eigen inzicht, de juiste dingen googlen om antwoorden te vinden op je vragen en de docs van de software waar je mee bezig bent uitpluizen om de juiste handvatten te vinden.
  dinsdag 11 maart 2014 @ 19:15:11 #298
12221 Tijn
Powered by MS Paint
pi_137626559
quote:
0s.gif Op dinsdag 11 maart 2014 18:45 schreef BroodjeKebab het volgende:
Ik heb deze reeks een doorgespit. Hoe zijn jullie zo'n PHP/MySQL freaks geworden? Ik wil zou het ook dolgraag willen...

Hoe hebben jullie PHP/MySQL geleerd als ik vragen mag?
Eerst leren programmeren (maakt niet zoveel uit in welke taal, het gaat om de concepten) en daarna gewoon de documentatie van PHP en MySQL lezen. Daar staat alles in dat je nodig hebt.

Voor speciefieke vragen/problemen is StackOverflow een goede hulp.
pi_137626573
quote:
14s.gif Op dinsdag 11 maart 2014 17:49 schreef KomtTijd... het volgende:
Oh mij heb je er niet mee hoor, ik dacht dat je zelf een oplossing zocht. :+.

Zo te zien mag je nog even terug de documentatie in want je gebruikt fetch verkeerd:

www.php.net/manual/en/mysqli-stmt.fetch.php

Zie procedural example
Gedaan, ik kom er niet uit :)

Iemand anders die mij ermee kan helpen?
pi_137626586
quote:
14s.gif Op dinsdag 11 maart 2014 19:11 schreef KomtTijd... het volgende:
De examples op php.net zijn zeer duidelijk. Echt tutorials volgen is leuk als je nog in het "hello world" stadium zit, maar daarna moet je het toch echt hebben van je eigen inzicht, de juiste dingen googlen om antwoorden te vinden op je vragen en de docs van de software waar je mee bezig bent uitpluizen om de juiste handvatten te vinden.
Ik had er wel aan gedacht om hier hulp te vragen of iig te vragen om een duwtje in de goede richting te krijgen voor bepaalde zaken, maar ik weet niet of deze reeks hiervoor bedoelt is?

Ik zit niet meer in de ''hello world'' stadium.. Die ben ik allang voorbij, evenals de stadium waarbij je echo leert en leert met variabelen om te gaan zoals $.

Ook begrijp ik het connecten met de mysql database, aanmaken van database en tabellen/queries zoals ID/username/ww etc. Moet alleen nog weten wanneer je NULL / NOT NULL/ Integer / Auto increasement en dat soort zaken gebruikt.

Registratie en loginsysteem ook, maar verder zoals sessions enzo nog niet.

De stadium waar ik nu in zit is, welke ik nog niet begrijp zijn arrays, loops, foreach en de rest van php.
pi_137626735
quote:
0s.gif Op dinsdag 11 maart 2014 19:15 schreef BroodjeKebab het volgende:

[..]

Ik had er wel aan gedacht om hier hulp te vragen of iig te vragen om een duwtje in de goede richting te krijgen voor bepaalde zaken, maar ik weet niet of deze reeks hiervoor bedoelt is?

Ik zit niet meer in de ''hello world'' stadium.. Die ben ik allang voorbij, evenals de stadium waarbij je echo leert en leert met variabelen om te gaan zoals $.

Ook begrijp ik het connecten met de mysql database, aanmaken van database en tabellen/queries zoals ID/username/ww etc. Moet alleen nog weten wanneer je NULL / NOT NULL/ Integer / Auto increasement en dat soort zaken gebruikt.

Registratie en loginsysteem ook, maar verder zoals sessions enzo nog niet.

De stadium waar ik nu in zit is, welke ik nog niet begrijp zijn arrays, loops, foreach en de rest van php.
eh, dan zit je dus nog volop in het 'hello world' stadium.
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')