FOK!forum / Digital Corner / [PHP/(My)SQL] voor dummies #117
Rockfiredinsdag 15 juli 2014 @ 13:29
php.jpg


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

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

Tutorials:
W3Schools PHP
W3Schools SQL

Succes heren met het volgende deeltje!
slacker_nldinsdag 15 juli 2014 @ 15:19
quote:
0s.gif Op dinsdag 15 juli 2014 12:55 schreef remi1986 het volgende:

[..]

Interface? Of de desbetreffende query?
Interface.

Want als ik DBIx::Class gebruik onder perl moet ik m'n queries zo maken:

1
2
3
4
5
6
7
my $rs = $schema->resultset('Bar')->search_rs({ naam => { '~' => '^foo' } , { order => 'id' });
if ($rs->count) { 
   print yay
}
else {
   print found nothink
}
remi1986dinsdag 15 juli 2014 @ 15:44
quote:
0s.gif Op dinsdag 15 juli 2014 15:19 schreef slacker_nl het volgende:

[..]

Interface.

Want als ik DBIx::Class gebruik onder perl moet ik m'n queries zo maken:
[ code verwijderd ]

Dat is gewoon het gebruik van een bepaalde class om je query te bouwen. Heeft niks te maken met interfaces. Een interface kan je dan ook niet aanmaken met een object.

Waar ik op doelde is die querybuilder (wat gewoon een class is).

In dat voorbeeld (en ook die van jou) is het nog wel makkelijk te lezen. Maar als je echter 3 of 4 tabellen moet joinen, vind ik het persoonlijk fijner en overzichtelijker om gewoon de SQL query uit te schrijven.
Rockfiredinsdag 15 juli 2014 @ 18:13
quote:
0s.gif Op dinsdag 15 juli 2014 15:44 schreef remi1986 het volgende:

[..]

Dat is gewoon het gebruik van een bepaalde class om je query te bouwen. Heeft niks te maken met interfaces. Een interface kan je dan ook niet aanmaken met een object.

Waar ik op doelde is die querybuilder (wat gewoon een class is).

In dat voorbeeld (en ook die van jou) is het nog wel makkelijk te lezen. Maar als je echter 3 of 4 tabellen moet joinen, vind ik het persoonlijk fijner en overzichtelijker om gewoon de SQL query uit te schrijven.
Eens, zodra de queries wat ingewikkelder worden gebruik ik voor de overzichtelijkheid ook liever gewoon SQL. Met Doctrine gebruik ik dan DQL wat hetzelfde effect heeft (ziet er ook vrijwel hetzelfde uit).
slacker_nldinsdag 15 juli 2014 @ 20:04
quote:
0s.gif Op dinsdag 15 juli 2014 15:44 schreef remi1986 het volgende:
Dat is gewoon het gebruik van een bepaalde class om je query te bouwen. Heeft niks te maken met interfaces. Een interface kan je dan ook niet aanmaken met een object.

Waar ik op doelde is die querybuilder (wat gewoon een class is).

In dat voorbeeld (en ook die van jou) is het nog wel makkelijk te lezen. Maar als je echter 3 of 4 tabellen moet joinen, vind ik het persoonlijk fijner en overzichtelijker om gewoon de SQL query uit te schrijven.
Volgens mij noemen we dat dan een interface, of een API, zoals je een module kan aanroepen.
Het voordeel van zulke modules is dat je onafhankelijk van de backend je query kan schrijven, je hoeft niet na te denken over de verschillende varianten SQL, dat doet de class voor je.

[ Bericht 14% gewijzigd door slacker_nl op 15-07-2014 20:12:01 ]
Super-Bdinsdag 15 juli 2014 @ 22:02
Even een vraag aan de web dev'ers: wat doen jullie zoal met de kennis?

Waarom zijn er overigens geen topics over andere programmeertalen zoals Java, Phyton etc. ? :P
Scorpiedinsdag 15 juli 2014 @ 23:26
quote:
0s.gif Op dinsdag 15 juli 2014 22:02 schreef Super-B het volgende:
Even een vraag aan de web dev'ers: wat doen jullie zoal met de kennis?

Waarom zijn er overigens geen topics over andere programmeertalen zoals Java, Phyton etc. ? :P
Die zijn er wel?
Super-Bdinsdag 15 juli 2014 @ 23:28
quote:
7s.gif Op dinsdag 15 juli 2014 23:26 schreef Scorpie het volgende:

[..]

Die zijn er wel?
Waar? Heb het niet kunnen vinden? :P
Tijnwoensdag 16 juli 2014 @ 00:34
quote:
0s.gif Op dinsdag 15 juli 2014 22:02 schreef Super-B het volgende:
Even een vraag aan de web dev'ers: wat doen jullie zoal met de kennis?
Euh, onthouden en toepassen? :?
Lightwoensdag 16 juli 2014 @ 00:48
quote:
0s.gif Op dinsdag 15 juli 2014 23:28 schreef Super-B het volgende:

[..]

Waar? Heb het niet kunnen vinden? :P
Hier heb je er alvast 1:
DIG / [Python] Voor de echte man - deel 1
slacker_nlwoensdag 16 juli 2014 @ 09:10
quote:
0s.gif Op dinsdag 15 juli 2014 22:02 schreef Super-B het volgende:
Even een vraag aan de web dev'ers: wat doen jullie zoal met de kennis?

Waarom zijn er overigens geen topics over andere programmeertalen zoals Java, Phyton etc. ? :P
Ik ben geen webdevver, ik schrijf backend calls die een frontend dude moet gebruiken, in Perl. Maar niemand op Fok lijkt het te gebruiken.
wipes66woensdag 16 juli 2014 @ 11:09
PHP NG now nearly TWICE as fast as PHP 5.6
http://ckon.wordpress.com/2014/07/14/php-5-7-twice-as-fast/ i

erg indrukwekkend :P
Super-Bwoensdag 16 juli 2014 @ 13:21
quote:
5s.gif Op woensdag 16 juli 2014 00:34 schreef Tijn het volgende:

[..]

Euh, onthouden en toepassen? :?
Scherp. Ik bedoelde meer of jullie een baan hebben binnen de IT of dat jullie het leren als hobby.
Aetherwoensdag 16 juli 2014 @ 14:29
State of the UNION :o _O-
Tijnwoensdag 16 juli 2014 @ 15:48
quote:
0s.gif Op woensdag 16 juli 2014 13:21 schreef Super-B het volgende:

[..]

Scherp. Ik bedoelde meer of jullie een baan hebben binnen de IT of dat jullie het leren als hobby.
Ik denk dat iedereen begint als hobby en iedereen er uiteindelijk z'n beroep van maakt. Zo ging het in elk geval bij mij :P
Maringowoensdag 16 juli 2014 @ 15:49
quote:
14s.gif Op woensdag 16 juli 2014 15:48 schreef Tijn het volgende:

[..]

Ik denk dat iedereen begint als hobby en iedereen er uiteindelijk z'n beroep van maakt. Zo ging het in elk geval bij mij :P
Same here.
TwenteFCwoensdag 16 juli 2014 @ 18:35
quote:
14s.gif Op woensdag 16 juli 2014 15:48 schreef Tijn het volgende:

[..]

Ik denk dat iedereen begint als hobby en iedereen er uiteindelijk z'n beroep van maakt. Zo ging het in elk geval bij mij :P
:P Hier ook. Leuk puzzelen altijd.
mstxwoensdag 16 juli 2014 @ 18:37
quote:
14s.gif Op woensdag 16 juli 2014 15:48 schreef Tijn het volgende:

[..]

Ik denk dat iedereen begint als hobby en iedereen er uiteindelijk z'n beroep van maakt. Zo ging het in elk geval bij mij :P
Hier ook
KomtTijd...woensdag 16 juli 2014 @ 18:50
Kwintet.
Lightwoensdag 16 juli 2014 @ 19:23
quote:
14s.gif Op woensdag 16 juli 2014 15:48 schreef Tijn het volgende:

[..]

Ik denk dat iedereen begint als hobby en iedereen er uiteindelijk z'n beroep van maakt. Zo ging het in elk geval bij mij :P
Bij mij ook :)
Rockfirewoensdag 16 juli 2014 @ 19:46
quote:
14s.gif Op woensdag 16 juli 2014 15:48 schreef Tijn het volgende:

[..]

Ik denk dat iedereen begint als hobby en iedereen er uiteindelijk z'n beroep van maakt. Zo ging het in elk geval bij mij :P
+1
raptorixdonderdag 17 juli 2014 @ 14:03
Hebben jullie trouwens wel eens naar Scala gekeken? Laatst demo gehad van collega en zitten echt toffe dingen in.
remi1986zaterdag 19 juli 2014 @ 02:52
Mede PHP-ers. Ik zit met een dilemma en zou graag jullie mening willen weten.

Zoals jullie waarschijnlijk weten, verdwijnen de mysql_ functies (deprecated in 5.5).

Dus ben ik wat aan het stoeien met PDO. PDO opzich is het probleem niet, dit is allemaal niet zo heel moeilijk. De vraag waar ik mee zit, is het handig om hier een hele database class omheen te bouwen? PDO is immers al een class.

Persoonlijk, een groot voordeel van PDO is dat je al een stukje validatie kan doen op type met bindParam(). Nu heb ik een dynamische insert functie gemaakt, waar je gewoon een tabelnaam en een array met waarden ingooit, maar daarmee kan je die validatie niet uitvoeren.

Ik zou graag willen weten wat jullie mening hierover is.
Tijnzaterdag 19 juli 2014 @ 09:04
Waarom zou je niet in je eigen class ook bindParam() kunnen aanroepen op de waarden in je array?
remi1986zaterdag 19 juli 2014 @ 09:12
quote:
5s.gif Op zaterdag 19 juli 2014 09:04 schreef Tijn het volgende:
Waarom zou je niet in je eigen class ook bindParam() kunnen aanroepen op de waarden in je array?
Omdat ik de functie zo had gemaakt dat je daar een array ingooit met column=>value.

Dit kan dus van alles zijn. Ik weet dus van tevoren niet wat voor waarde erin zit
Tijnzaterdag 19 juli 2014 @ 09:27
quote:
0s.gif Op zaterdag 19 juli 2014 09:12 schreef remi1986 het volgende:

[..]

Omdat ik de functie zo had gemaakt dat je daar een array ingooit met column=>value.

Dit kan dus van alles zijn. Ik weet dus van tevoren niet wat voor waarde erin zit
Er zijn maar een paar mogelijkheden met PDO (null, bool, int en string). Je kunt makkelijk via PHP achterhalen welk type je variabele is (bv met is_null(), is_bool() en is_int()). PDO::PARAM_STR gebruik je dan als fallback als het niet een van de andere typen is.
remi1986zaterdag 19 juli 2014 @ 09:43
quote:
14s.gif Op zaterdag 19 juli 2014 09:27 schreef Tijn het volgende:

[..]

Er zijn maar een paar mogelijkheden met PDO (null, bool, int en string). Je kunt makkelijk via PHP achterhalen welk type je variabele is (bv met is_null(), is_bool() en is_int()). PDO::PARAM_STR gebruik je dan als fallback als het niet een van de andere typen is.
Hmm ik zie het inderdaad. Dan kan ik beter gewoon validatie via PHP doen en dan heb ik dat hele bindParam niet nodig.
Tijnzaterdag 19 juli 2014 @ 09:47
quote:
0s.gif Op zaterdag 19 juli 2014 09:43 schreef remi1986 het volgende:

[..]

Hmm ik zie het inderdaad. Dan kan ik beter gewoon validatie via PHP doen en dan heb ik dat hele bindParam niet nodig.
Ik zou juist gebruik maken van het feit dat je met bindParam() automatische escaping kado krijgt waardoor SQL-injectie wordt voorkomen. Dat dat niet gebeurt met de mysql_-functies is de voornaamste reden dat ze het aan het uitfaseren zijn.
mstxzaterdag 19 juli 2014 @ 09:47
quote:
14s.gif Op zaterdag 19 juli 2014 09:27 schreef Tijn het volgende:

[..]

Er zijn maar een paar mogelijkheden met PDO (null, bool, int en string). Je kunt makkelijk via PHP achterhalen welk type je variabele is (bv met is_null(), is_bool() en is_int()). PDO::PARAM_STR gebruik je dan als fallback als het niet een van de andere typen is.
Zo doe ik het ook
remi1986zaterdag 19 juli 2014 @ 09:48
quote:
2s.gif Op zaterdag 19 juli 2014 09:47 schreef Tijn het volgende:

[..]

Ik zou juist gebruik maken van het feit dat je met bindParam() automatische escaping kado krijgt waardoor SQL-injectie wordt voorkomen. Dat dat niet gebeurt met de mysql_-functies is de voornaamste reden dat ze het aan het uitfaseren zijn.
escaping gebeurt toch middels de prepare functie? Of heb je daar echt de bindParam functie voor nodig?
Tijnzaterdag 19 juli 2014 @ 09:50
quote:
0s.gif Op zaterdag 19 juli 2014 09:48 schreef remi1986 het volgende:

[..]

escaping gebeurt toch middels de prepare functie? Of heb je daar echt de bindParam functie voor nodig?
Als je prepare gebruikt, hoe stop je de variabelen er dan in? Ik doe dat met bindParam, maar ik weet eigenlijk niet eens of het ook anders kan :P
remi1986zaterdag 19 juli 2014 @ 09:52
quote:
5s.gif Op zaterdag 19 juli 2014 09:50 schreef Tijn het volgende:

[..]

Als je prepare gebruikt, hoe stop je de variabelen er dan in? Ik doe dat met bindParam, maar ik weet eigenlijk niet eens of het ook anders kan :P
quote:
So what's going on here? The prepare method sends the query to the server, and it's compiled with the '?' placeholders to be used as expected arguments. The execute method sends the arguments to the server and runs the compiled statement. Since the query and the dynamic parameters are sent separately, there is no way that any SQL that is in those parameters can be executed... so NO SQL INJECTION can occur! This is a much better and safer solution than concatenating strings together.
Zo dus:
1
2
3
4
<?php
$stmt 
$db->prepare("INSERT INTO table(field1,field2,field3,field4,field5) VALUES(:field1,:field2,:field3,:field4,:field5)");
$stmt->execute(array(':field1' => $field1':field2' => $field2':field3' => $field3':field4' => $field4':field5' => $field5));
?>
Tijnzaterdag 19 juli 2014 @ 09:54
Ah, ja. Ik denk eigenlijk dat het dan niet zoveel uitmaakt.
remi1986zaterdag 19 juli 2014 @ 09:59
quote:
2s.gif Op zaterdag 19 juli 2014 09:54 schreef Tijn het volgende:
Ah, ja. Ik denk eigenlijk dat het dan niet zoveel uitmaakt.
Nee inderdaad. Ben er inmiddels al uit hoe ik het hebben wil. Ik laat dat bindParam gewoon weg, zodat ik dynamische insert, update en delete functies kan maken, waar ik gewoon een tabelnaam en array ingooi met column=>value.
Lightzaterdag 19 juli 2014 @ 10:02
quote:
0s.gif Op zaterdag 19 juli 2014 09:59 schreef remi1986 het volgende:

[..]

Nee inderdaad. Ben er inmiddels al uit hoe ik het hebben wil. Ik laat dat bindParam gewoon weg, zodat ik dynamische insert, update en delete functies kan maken, waar ik gewoon een tabelnaam en array ingooi met column=>value.
Let er dan wel op dat die tabelnaam niet automatisch ge-escaped wordt en dat je daarmee dus nog wel potentieel sql-injection hebt.
remi1986zaterdag 19 juli 2014 @ 10:10
quote:
0s.gif Op zaterdag 19 juli 2014 10:02 schreef Light het volgende:

[..]

Let er dan wel op dat die tabelnaam niet automatisch ge-escaped wordt en dat je daarmee dus nog wel potentieel sql-injection hebt.
dat zou ik kunnen opvangen door van de tabelnaam ook een parameter te maken

dus INSERT INTO :table

en dan :table meegeven in de array of voor deze wel bindParam te gebruiken.
Sitethiefzaterdag 19 juli 2014 @ 10:24
quote:
0s.gif Op zaterdag 19 juli 2014 10:10 schreef remi1986 het volgende:

[..]

dat zou ik kunnen opvangen door van de tabelnaam ook een parameter te maken

dus INSERT INTO :table

en dan :table meegeven in de array of voor deze wel bindParam te gebruiken.
Volgens mij kun je niet alle onderdelen van een query via bindParam meegeven, o.a. table names en velden achter de SELECT etc.
mstxzaterdag 19 juli 2014 @ 10:34
quote:
0s.gif Op zaterdag 19 juli 2014 10:02 schreef Light het volgende:

[..]

Let er dan wel op dat die tabelnaam niet automatisch ge-escaped wordt en dat je daarmee dus nog wel potentieel sql-injection hebt.
De tabelnaam door de gebruiker laten invullen lijkt me sowieso niet handig.
Als het niet door de gebruiker wordt ingevuld hoef je het ook niet te escapen.
Lightzaterdag 19 juli 2014 @ 10:49
quote:
0s.gif Op zaterdag 19 juli 2014 10:24 schreef Sitethief het volgende:

[..]

Volgens mij kun je niet alle onderdelen van een query via bindParam meegeven, o.a. table names en velden achter de SELECT etc.
Correct. Tabelnamen en kolomnamen kun je niet op die manier meegeven, al was het maar omdat je daar niets aan kunt 'preparen'.
Lightzaterdag 19 juli 2014 @ 10:51
quote:
0s.gif Op zaterdag 19 juli 2014 10:34 schreef mstx het volgende:

[..]

De tabelnaam door de gebruiker laten invullen lijkt me sowieso niet handig.
Als het niet door de gebruiker wordt ingevuld hoef je het ook niet te escapen.
True, maar het is wel iets waar je je bewust van moet zijn bij het schrijven van de code.
remi1986zaterdag 19 juli 2014 @ 11:10
quote:
0s.gif Op zaterdag 19 juli 2014 10:49 schreef Light het volgende:

[..]

Correct. Tabelnamen en kolomnamen kun je niet op die manier meegeven, al was het maar omdat je daar niets aan kunt 'preparen'.
Hardcoded via PHP meegeven, is het dan nog mogelijk? (SQL Injection?)
1
2
3
<?php
$db
->insert("games", array("game_start" => date("Y-m-d H:i:s")));
?>

1
2
3
4
5
6
7
<?php
function insert($table$data)}
 global 
$db;

$db->prepare("INSERT INTO $table .... ");
}
?>
Tijnzaterdag 19 juli 2014 @ 11:18
quote:
0s.gif Op zaterdag 19 juli 2014 11:10 schreef remi1986 het volgende:

[..]

Hardcoded via PHP meegeven, is het dan nog mogelijk? (SQL Injection?)
[ code verwijderd ]

[ code verwijderd ]

Nee, SQL-injectie gebeurt op het moment dat je gebruikersinput in je query stopt.
henrivodinsdag 22 juli 2014 @ 05:24
Nog even terugkomend op dat Doctrine-verhaal, klopt het dat je (afgezien van getters/setters) de entities volledig met de hand moet schrijven? Ik werk met ZF2 en hoopte dat er net als bij (ik meen) Symfony2 een "tooltje/optie" is om kolommen te declareren, waarna je bijv kunt aangeven welke opties je er bij wilt hebben (name, type, nullable etc.).

Hoe doen jullie dit?
KomtTijd...dinsdag 22 juli 2014 @ 09:45
Dat kun je aangeven dmv annotations.
http://symfony.com/doc/cu(...)ting-an-entity-class

De getters en setters en De fysieke database structuur maak je in een paar seconden aan dmv een command-line tool .
Maringodinsdag 22 juli 2014 @ 14:51
quote:
14s.gif Op dinsdag 22 juli 2014 09:45 schreef KomtTijd... het volgende:
Dat kun je aangeven dmv annotations.
http://symfony.com/doc/cu(...)ting-an-entity-class

De getters en setters en De fysieke database structuur maak je in een paar seconden aan dmv een command-line tool .
Dat is voor Symfony2, hij vraagt voor ZF2. :)

Voor Symfony2 is er inderdaad een hele reeks aan commands voor allerlei dingen van doctirne. Geen idee of dat ook voor ZF2 is.
KomtTijd...dinsdag 22 juli 2014 @ 14:59
Ja fuck, waarom maken ze dan ook 2 PHP frameworks die ze afkorten met ZF2 en SF2 :')
henrivodinsdag 22 juli 2014 @ 16:36
Wéér een gemiste kans voor ZF2 ;(
Tijndinsdag 22 juli 2014 @ 16:42
Kun je dit niet gewoon gebruiken?

http://docs.doctrine-project.org/en/2.0.x/reference/tools.html
henrivodinsdag 22 juli 2014 @ 16:52
quote:
Daar werk ik nu ook mee, ik vroeg me alleen af of er net als in Symfony2 een geautomatiseerd tooltje was om variabelen te declareren, waarna je bijv kon aangeven of het om een string of integer gaat. Ik begin net pas met Doctrine, dus dat zou het voor mij (in het begin in elk geval) wat makkelijker maken :)
Tijndinsdag 22 juli 2014 @ 16:55
Als je toch een beginner bent, waarom stap je dan niet over naar Symfony2? Dat is toch wel hét framework op het moment voor PHP. Tenzij je zwaar vastzit aan Zend Framework, zou ik lekker overstappen naar Symfony.
henrivodinsdag 22 juli 2014 @ 16:59
Omdat ik net ZF2 begon door te krijgen :')

Maar misschien heb je wel gelijk. De reden waarom ik voor ZF2 koos was omdat ik had begrepen dat het de industriestandaard is
Tijndinsdag 22 juli 2014 @ 17:06
Mja, dat zegt alleen Zend zelf eigenlijk :+
henrivodinsdag 22 juli 2014 @ 17:10
Met welke frameworks werken jullie hier zelf eigenlijk? Ik kom de laatste tijd ook steeds meer berichten tegen over Laravel

Keuzes... Keuzes... :P
TwenteFCdinsdag 22 juli 2014 @ 18:10
quote:
0s.gif Op dinsdag 22 juli 2014 17:10 schreef henrivo het volgende:
Met welke frameworks werken jullie hier zelf eigenlijk? Ik kom de laatste tijd ook steeds meer berichten tegen over Laravel

Keuzes... Keuzes... :P
Laravel, en wat CodeIgniter applicaties die we moeten onderhouden.
Drxxdinsdag 22 juli 2014 @ 18:40
Ook blij met Laravel.
Rockfiredinsdag 22 juli 2014 @ 18:42
quote:
5s.gif Op dinsdag 22 juli 2014 16:55 schreef Tijn het volgende:
Als je toch een beginner bent, waarom stap je dan niet over naar Symfony2? Dat is toch wel hét framework op het moment voor PHP. Tenzij je zwaar vastzit aan Zend Framework, zou ik lekker overstappen naar Symfony.
Wat hij zegt inderdaad, ik zou overwegen over te stappen naar Symfony2

quote:
0s.gif Op dinsdag 22 juli 2014 16:59 schreef henrivo het volgende:
Omdat ik net ZF2 begon door te krijgen :')

Maar misschien heb je wel gelijk. De reden waarom ik voor ZF2 koos was omdat ik had begrepen dat het de industriestandaard is
Als je ZF2 een beetje begint door te krijgen helpt dat ook voor de overstap naar Symfony2. Ik vond SF2 een stuk makkelijker dan ZF2. En ZF1 was misschien een standaard, maar ZF2 valt tegen waardoor steeds meer mensen overstappen naar SF2
quote:
0s.gif Op dinsdag 22 juli 2014 17:10 schreef henrivo het volgende:
Met welke frameworks werken jullie hier zelf eigenlijk? Ik kom de laatste tijd ook steeds meer berichten tegen over Laravel

Keuzes... Keuzes... :P
Voorlopig nog SF2, maar als er een klant komt die met Laravel werkt of wil werken dan gaan we dat vast ook proberen :P
henrivodinsdag 22 juli 2014 @ 19:12
Hmm... Tóch maar eens Symfony2 uitproberen dan, al is het alleen maar omdat daar beter documentatie voor te vinden is :)

Thanks voor de suggesties :)
#ANONIEMdinsdag 22 juli 2014 @ 19:21
Composer _O_
Rockfiredinsdag 22 juli 2014 @ 20:00
quote:
0s.gif Op dinsdag 22 juli 2014 19:21 schreef robin007bond het volgende:
Composer _O_
^O^
henrivodonderdag 24 juli 2014 @ 15:35
Toch wel een verademing, dat Symfony2 :)
TwenteFCdonderdag 24 juli 2014 @ 21:40
quote:
0s.gif Op donderdag 24 juli 2014 15:35 schreef henrivo het volgende:
Toch wel een verademing, dat Symfony2 :)
:P Dan zal je van Laravel helemaal klaar komen.
henrivodonderdag 24 juli 2014 @ 21:49
quote:
19s.gif Op donderdag 24 juli 2014 21:40 schreef TwenteFC het volgende:

[..]

:P Dan zal je van Laravel helemaal klaar komen.
Is dat nóg makkelijker dan? :P
TwenteFCdonderdag 24 juli 2014 @ 21:50
quote:
0s.gif Op donderdag 24 juli 2014 21:49 schreef henrivo het volgende:

[..]

Is dat nóg makkelijker dan? :P
Zitten wel leuke dingen in ja :P
http://laravel.com/docs
henrivodonderdag 24 juli 2014 @ 21:57
quote:
19s.gif Op donderdag 24 juli 2014 21:50 schreef TwenteFC het volgende:

[..]

Zitten wel leuke dingen in ja :P
http://laravel.com/docs
Ik zit even naar de tutorials te kijken, zag dat phpacademy laatst een aantal tutorials had gepost maar had er nog niet naar gekeken. Denk dat ik voorlopig toch maar even bij symfony blijf, anders kun je zowat elk half jaar wel overstappen denk ik zo. Maar misschien als laravel meer voordelen blijkt te hebben dat ik de overstap alsnog waag :)
TwenteFCdonderdag 24 juli 2014 @ 21:58
quote:
0s.gif Op donderdag 24 juli 2014 21:57 schreef henrivo het volgende:

[..]

Ik zit even naar de tutorials te kijken, zag dat phpacademy laatst een aantal tutorials had gepost maar had er nog niet naar gekeken. Denk dat ik voorlopig toch maar even bij symfony blijf, anders kun je zowat elk half jaar wel overstappen denk ik zo. Maar misschien als laravel meer voordelen blijkt te hebben dat ik de overstap alsnog waag :)
Welke voordelen zoek je, ligt ook maar net aan wat je wil maken natuurlijk.
Symfony heb ik zelf niet in productie gebruikt :P
henrivodonderdag 24 juli 2014 @ 22:02
quote:
19s.gif Op donderdag 24 juli 2014 21:58 schreef TwenteFC het volgende:

[..]

Welke voordelen zoek je, ligt ook maar net aan wat je wil maken natuurlijk.
Symfony heb ik zelf niet in productie gebruikt :P
Ja weet ik eigenlijk ook niet :') ik vind de doctrine-tools in symfony iig erg handig werken, die heb je bij zf2 bijvoorbeeld weer niet

Ben gewoon een amateur die wat aanklooit met frameworks :P
TwenteFCdonderdag 24 juli 2014 @ 22:42
quote:
1s.gif Op donderdag 24 juli 2014 22:02 schreef henrivo het volgende:

[..]

Ja weet ik eigenlijk ook niet :') ik vind de doctrine-tools in symfony iig erg handig werken, die heb je bij zf2 bijvoorbeeld weer niet

Ben gewoon een amateur die wat aanklooit met frameworks :P
Eloquent van Laravel is ook wel mooi.

Als je alle Topics met bij behorende reacties wil hebben bijvoorbeeld dan kan de code er zo uit zien:

1
2
3
<?php
Topic
::with('reacties')
?>
#ANONIEMdonderdag 24 juli 2014 @ 22:49
quote:
19s.gif Op donderdag 24 juli 2014 22:42 schreef TwenteFC het volgende:

[..]

Eloquent van Laravel is ook wel mooi.

Als je alle Topics met bij behorende reacties wil hebben bijvoorbeeld dan kan de code er zo uit zien:
[ code verwijderd ]

Netjes. Hebben ze een soort Builder pattern voor gebruikt?.
TwenteFCdonderdag 24 juli 2014 @ 23:46
quote:
11s.gif Op donderdag 24 juli 2014 22:49 schreef robin007bond het volgende:
[ code verwijderd ]

Je hebt 2 classes die de Eloquent extenden, en in die models geef je dus aan welke relaties die hebben.

'reacties' zoals hierboven verwijst dus naar een methode reacties() in de class Topic.

En die methode geeft aan wat de relatie van een topic is tot in dit geval reacties.

Je zou dan 2 classes krijgen die er zo uit zien:

1
2
3
4
5
6
7
8
9
10
<?php
class Topic extends Eloquent {

    public function 
reacties() 
    {
        return 
$this->hasMany('Reactie')
    }

}
?>
1
2
3
4
5
6
7
8
9
10
<?php
class Reactie extends Eloquent {

    public function 
topic()
    {
        return 
$this->belongsTo('Topic');
    }

}
?>

http://laravel.com/api/4.1/Illuminate/Database/Eloquent.html
http://laravel.com/api/4.(...)loquent/Builder.html
Lightvrijdag 25 juli 2014 @ 08:46
quote:
19s.gif Op donderdag 24 juli 2014 21:50 schreef TwenteFC het volgende:

[..]

Zitten wel leuke dingen in ja :P
http://laravel.com/docs
Ze hebben alleen wat te veel static methods gebruikt bij Laravel.
TwenteFCvrijdag 25 juli 2014 @ 18:30
quote:
0s.gif Op vrijdag 25 juli 2014 08:46 schreef Light het volgende:

[..]

Ze hebben alleen wat te veel static methods gebruikt bij Laravel.
Die je niet hoeft te gebruiken, het is een keuze die bij de developer ligt.
Gebeurt op deze manier volgens mij
http://php.net/manual/en/(...)hp#object.callstatic


Een uitgebreidere uitleg: http://usman.it/laravel-4-uses-static-not-true/
Super-Bvrijdag 25 juli 2014 @ 20:05
Iemand bekend met het zelf in elkaar knutselen van een CMS?

Ik heb namelijk een single page website gemaakt. Als er op de hyperlink 'voorraad' geklikt wordt, dan zal de voorraadartikelen tevoorschijn komen. Echter vraag ik mij af hoe ik hiervan een soort CMS systeem op kan toepassen, zodat de voorraadartikelen gewijzigd kunnen worden en er zo nodig voorraadartikelen toegevoegd kunnen worden?

Qua back-end (PHP/MySQL) heb ik dus nog niks gedaan. Ik heb in principe alles via de front-end gemaakt. Het punt is dus dat de front-end gewijzigd moet kunnen worden.

[ Bericht 7% gewijzigd door Super-B op 25-07-2014 20:11:17 ]
Faux.vrijdag 25 juli 2014 @ 20:22
quote:
0s.gif Op vrijdag 25 juli 2014 20:05 schreef Super-B het volgende:
Iemand bekend met het zelf in elkaar knutselen van een CMS?

Ik heb namelijk een single page website gemaakt. Als er op de hyperlink 'voorraad' geklikt wordt, dan zal de voorraadartikelen tevoorschijn komen. Echter vraag ik mij af hoe ik hiervan een soort CMS systeem op kan toepassen, zodat de voorraadartikelen gewijzigd kunnen worden en er zo nodig voorraadartikelen toegevoegd kunnen worden?

Qua back-end (PHP/MySQL) heb ik dus nog niks gedaan. Ik heb in principe alles via de front-end gemaakt. Het punt is dus dat de front-end gewijzigd moet kunnen worden.
Als je het zelf wil doen (en dat moet je sowieso even overwegen): kwestie van een database aanleggen, een backend inbouwen (met of zonder gebruikerssysteem, wel aan te raden) en je URLs routen.
Juicyhilvrijdag 25 juli 2014 @ 20:24
quote:
0s.gif Op vrijdag 25 juli 2014 20:05 schreef Super-B het volgende:
Iemand bekend met het zelf in elkaar knutselen van een CMS?

Ik heb namelijk een single page website gemaakt. Als er op de hyperlink 'voorraad' geklikt wordt, dan zal de voorraadartikelen tevoorschijn komen. Echter vraag ik mij af hoe ik hiervan een soort CMS systeem op kan toepassen, zodat de voorraadartikelen gewijzigd kunnen worden en er zo nodig voorraadartikelen toegevoegd kunnen worden?

Qua back-end (PHP/MySQL) heb ik dus nog niks gedaan. Ik heb in principe alles via de front-end gemaakt. Het punt is dus dat de front-end gewijzigd moet kunnen worden.
Wiel opnieuw uitvinden?
TwenteFCvrijdag 25 juli 2014 @ 20:34
quote:
0s.gif Op vrijdag 25 juli 2014 20:24 schreef Juicyhil het volgende:

[..]

Wiel opnieuw uitvinden?
Of flexibiliteit waarmee je veel eenvoudiger jouw bedrijfslogica kan beheren zonder onzinnige troep die je niet nodig hebt, of lastig aan te passen is.
Juicyhilvrijdag 25 juli 2014 @ 20:38
quote:
19s.gif Op vrijdag 25 juli 2014 20:34 schreef TwenteFC het volgende:

[..]

Of flexibiliteit waarmee je veel eenvoudiger jouw bedrijfslogica kan beheren zonder onzinnige troep die je niet nodig hebt, of lastig aan te passen is.
Verreweg de meeste CMS'en zijn eenvoudig uitbreidbaar en kun je inhaken op pipelines. Ik ben in ieder geval nog geen CMS tegengekomen waarmee me zoiets niet is gelukt.
Super-Bvrijdag 25 juli 2014 @ 22:41
quote:
10s.gif Op vrijdag 25 juli 2014 20:22 schreef Faux. het volgende:

[..]

Als je het zelf wil doen (en dat moet je sowieso even overwegen): kwestie van een database aanleggen, een backend inbouwen (met of zonder gebruikerssysteem, wel aan te raden) en je URLs routen.
quote:
0s.gif Op vrijdag 25 juli 2014 20:24 schreef Juicyhil het volgende:

[..]

Wiel opnieuw uitvinden?
quote:
19s.gif Op vrijdag 25 juli 2014 20:34 schreef TwenteFC het volgende:

[..]

Of flexibiliteit waarmee je veel eenvoudiger jouw bedrijfslogica kan beheren zonder onzinnige troep die je niet nodig hebt, of lastig aan te passen is.
quote:
0s.gif Op vrijdag 25 juli 2014 20:38 schreef Juicyhil het volgende:

[..]

Verreweg de meeste CMS'en zijn eenvoudig uitbreidbaar en kun je inhaken op pipelines. Ik ben in ieder geval nog geen CMS tegengekomen waarmee me zoiets niet is gelukt.
Dank voor de reacties! ^O^

Het is maar een los projectje, om zodoende zowel JS als PHP/MySQL onder de knie te krijgen.
Faux.vrijdag 25 juli 2014 @ 22:44
quote:
0s.gif Op vrijdag 25 juli 2014 22:41 schreef Super-B het volgende:

[..]

[..]

[..]

[..]

Dank voor de reacties! ^O^

Het is maar een los projectje, om zodoende zowel JS als PHP/MySQL onder de knie te krijgen.
Ah, dan is het beter te begrijpen. Tips:

• WYSIWYG-editor
• Werk met een systeem van categorieën en pagina's
• Zorg voor mooie URL's, zoals website.nl/categorie/pagina (bijv. bakker-jansen.nl/etalage/volkorenbrood)
• Gebruikerssysteem met rechten, zodat je in de backend zelf kan bepalen wie wat mag

Succes ^O^
Super-Bvrijdag 25 juli 2014 @ 22:47
quote:
14s.gif Op vrijdag 25 juli 2014 22:44 schreef Faux. het volgende:

[..]

Ah, dan is het beter te begrijpen. Tips:

• WYSIWYG-editor
• Werk met een systeem van categorieën en pagina's
• Zorg voor mooie URL's, zoals website.nl/categorie/pagina (bijv. bakker-jansen.nl/etalage/volkorenbrood)
• Gebruikerssysteem met rechten, zodat je in de backend zelf kan bepalen wie wat mag

Succes ^O^
Moet nog veel leren. :P Ik heb onlangs pas JS onder de knie gekregen. Dan heb ik het dus over de basis. Alleen nog PHP/MySQL en Jquery die ik graag onder de knie zou willen hebben.

Ik gebruik op dit moment Notepad++. Lekkere programma! ^O^

Maar dank voor je snelle respons. :)
Faux.vrijdag 25 juli 2014 @ 22:48
quote:
0s.gif Op vrijdag 25 juli 2014 22:47 schreef Super-B het volgende:

[..]

Moet nog veel leren. :P Ik heb onlangs pas JS onder de knie gekregen. Dan heb ik het dus over de basis. Alleen nog PHP/MySQL en Jquery die ik graag onder de knie zou willen hebben.

Ik gebruik op dit moment Notepad++. Lekkere programma! ^O^

Maar dank voor je snelle respons. :)
Ah, in dat geval: lees in over MySQLi en XSS, en zorg dat je niet van mysql_query(); etc gebruikmaakt (wat in veel oude tutorials nog gedaan wordt)
Super-Bvrijdag 25 juli 2014 @ 22:49
quote:
11s.gif Op vrijdag 25 juli 2014 22:48 schreef Faux. het volgende:

[..]

Ah, in dat geval: lees in over MySQLi en XSS, en zorg dat je niet van mysql_query(); etc gebruikmaakt (wat in veel oude tutorials nog gedaan wordt)
Wat is XSS? Ik kan het opzoeken, maar vraag het maar even aan jou. ;)

Wat is er mis met mysql_query(); ?
Faux.vrijdag 25 juli 2014 @ 22:51
quote:
0s.gif Op vrijdag 25 juli 2014 22:49 schreef Super-B het volgende:

[..]

Wat is XSS? Ik kan het opzoeken, maar vraag het maar even aan jou. ;)

Wat is er mis met mysql_query(); ?
XSS staat voor Cross Site Scripting en kan een beveiligingslek in je software vormen als je gebruikersinput niet escaped. mysql_query() (en alle andere functies met mysql_) is verouderd. Zie http://php.net/manual/en/function.mysql-query.php
#ANONIEMvrijdag 25 juli 2014 @ 23:12
quote:
14s.gif Op vrijdag 25 juli 2014 22:51 schreef Faux. het volgende:

[..]

XSS staat voor Cross Site Scripting en kan een beveiligingslek in je software vormen als je gebruikersinput niet escaped. mysql_query() (en alle andere functies met mysql_) is verouderd. Zie http://php.net/manual/en/function.mysql-query.php
PDO _O_
Faux.vrijdag 25 juli 2014 @ 23:13
quote:
1s.gif Op vrijdag 25 juli 2014 23:12 schreef robin007bond het volgende:

[..]

PDO _O_
^O^
#ANONIEMvrijdag 25 juli 2014 @ 23:13
quote:
14s.gif Op vrijdag 25 juli 2014 23:13 schreef Faux. het volgende:

[..]

^O^
Of gewoon een ORM. Mensen die nog mysql conmect gebruiken. :')
Faux.vrijdag 25 juli 2014 @ 23:14
quote:
1s.gif Op vrijdag 25 juli 2014 23:13 schreef robin007bond het volgende:

[..]

Of gewoon een ORM. Mensen die nog mysql conmect gebruiken. :')
komt door de shitload aan oude tutorials die nog overal zijn.
#ANONIEMvrijdag 25 juli 2014 @ 23:15
quote:
9s.gif Op vrijdag 25 juli 2014 23:14 schreef Faux. het volgende:

[..]

komt door de shitload aan oude tutorials die nog overal zijn.
Ja, maar dan nog. Je zou een beetje gedegen onderzoek van mensen verwachten in plaats van hapklare tutorials te volgen.

Programmeer dan gewoon niet denk ik dan. :{w
Faux.vrijdag 25 juli 2014 @ 23:17
quote:
1s.gif Op vrijdag 25 juli 2014 23:15 schreef robin007bond het volgende:

[..]

Ja, maar dan nog. Je zou een beetje gedegen onderzoek van mensen verwachten in plaats van hapklare tutorials te volgen.

Programmeer dan gewoon niet denk ik dan. :{w
Ach, die weten ook niet beter :P
Lightvrijdag 25 juli 2014 @ 23:37
quote:
1s.gif Op vrijdag 25 juli 2014 23:15 schreef robin007bond het volgende:

[..]

Ja, maar dan nog. Je zou een beetje gedegen onderzoek van mensen verwachten in plaats van hapklare tutorials te volgen.

Programmeer dan gewoon niet denk ik dan. :{w
True, maar dan nog. Je moet ergens beginnen. En het duurt even voor je weet wat wel en niet handig is. En als je net begint, realiseer je je ook niet dat tutorials uit 2011 al zwaar verouderd (kunnen) zijn.
#ANONIEMvrijdag 25 juli 2014 @ 23:38
quote:
0s.gif Op vrijdag 25 juli 2014 23:37 schreef Light het volgende:

[..]

True, maar dan nog. Je moet ergens beginnen. En het duurt even voor je weet wat wel en niet handig is. En als je net begint, realiseer je je ook niet dat tutorials uit 2011 al zwaar verouderd (kunnen) zijn.
Ja dat is inderdaad waar. Maar mensen snappen ook lijkt me dat de referentie op PHP.net de beste referentie is voor up2date PHP-documentatie.
Tijnvrijdag 25 juli 2014 @ 23:41
quote:
0s.gif Op vrijdag 25 juli 2014 22:49 schreef Super-B het volgende:

[..]

Wat is er mis met mysql_query(); ?
Voornamelijk dat het in de huidige versie van PHP al wordt gemarkeerd als "deprecated" en vanaf de volgende versie überhaupt niet meer beschikbaar is.
Lightvrijdag 25 juli 2014 @ 23:45
quote:
0s.gif Op vrijdag 25 juli 2014 23:38 schreef robin007bond het volgende:

[..]

Ja dat is inderdaad waar. Maar mensen snappen ook lijkt me dat de referentie op PHP.net de beste referentie is voor up2date PHP-documentatie.
Da's niet altijd de site die als eerste verschijnt in de zoekresultaten. En daarbij moet je ook nog op het idee komen om op php.net naar mysql_query te zoeken als je net drie tutorials hebt gelezen waarin die functie wordt gebruikt / aangeraden.
#ANONIEMvrijdag 25 juli 2014 @ 23:46
quote:
0s.gif Op vrijdag 25 juli 2014 23:45 schreef Light het volgende:

[..]

Da's niet altijd de site die als eerste verschijnt in de zoekresultaten. En daarbij moet je ook nog op het idee komen om op php.net naar mysql_query te zoeken als je net drie tutorials hebt gelezen waarin die functie wordt gebruikt / aangeraden.
Tsja, via omwegen kun je nog steeds niet beter weten inderdaad. Maar als je naast letterlijk tutorials volgen ook gewoon interesse hebt kom je ook snel dingen tegen over PDO bijvoorbeeld.

Het is denk ik ook een verschil in leren die mensen hebben. Sommige mensen willen tutorials, anderen willen gewoon documentatie van klassen.

[ Bericht 8% gewijzigd door #ANONIEM op 25-07-2014 23:47:06 ]
Tijnvrijdag 25 juli 2014 @ 23:48
quote:
0s.gif Op vrijdag 25 juli 2014 23:46 schreef robin007bond het volgende:

[..]

Tsja, via omwegen kun je nog steeds niet beter weten inderdaad. Maar als je naast letterlijk tutorials volgen ook gewoon interesse hebt kom je ook snel dingen tegen over PDO bijvoorbeeld.

Het is denk ik ook een verschil in leren die mensen hebben. Sommige mensen willen tutorials, anderen willen gewoon documentatie van klassen.
Je hebt als echte beginner niks aan de documentatie, want daarin staat niet uitgelegd hoe je moet programmeren.
Lightvrijdag 25 juli 2014 @ 23:49
quote:
1s.gif Op vrijdag 25 juli 2014 23:12 schreef robin007bond het volgende:

[..]

PDO _O_
En idealiter is er in de hele applicatie maar 1 class die PDO aanroept, zodat je eventueel morgen kunt bedenken dat je toch liever alles in een NoSQL database zet.
#ANONIEMvrijdag 25 juli 2014 @ 23:51
quote:
0s.gif Op vrijdag 25 juli 2014 23:49 schreef Light het volgende:

[..]

En idealiter is er in de hele applicatie maar 1 class die PDO aanroept, zodat je eventueel morgen kunt bedenken dat je toch liever alles in een NoSQL database zet.
Dat klopt inderdaad.

Jammer genoeg zijn de verschillen in geaccepteerde queries vaak nog verschillend, dus schrijf je soms nog steeds verschillende queries. Het is sowieso een valkuil dus om als beginner veel specifieke dingen te gebruiken die enkel in MySQL zijn toegestaan en dan bijvoorbeeld niet zijn toegestaan in Postgres.

Vroeger gebruikte ik het factory pattern ervoor. DAOFactory wordt het ook wel genoemd als je het met databases en werd vooral veel gebruikt in de Javawereld.
#ANONIEMzaterdag 26 juli 2014 @ 01:56
Ik heb een (navigatie)menu waarbij de actieve item met een css-class op een opvallende manier wordt weergegeven, en de niet-actieve items op een normale manier...

LpiMkUl.png

De opmaak van het menu is dus afhankelijk van de pagina die op dat moment geopend is. Om dit handmatig per pagina te regelen is niet onderhoudsvriendelijk, vooral als er een wijziging plaatsvindt aan het menustructuur.

Is er een noobproof-manier om dit gemakkelijk te regelen door middel van PHP? Iets dat op één of andere manier kan tracken op welke pagina je bent en dus weet welke menu-item op 'active' moet staan...
Reemizaterdag 26 juli 2014 @ 01:59
quote:
0s.gif Op zaterdag 26 juli 2014 01:56 schreef zarGon het volgende:
Ik heb een (navigatie)menu waarbij de actieve item met een css-class op een opvallende manier wordt weergegeven, en de niet-actieve items op een normale manier...

[ afbeelding ]

De opmaak van het menu is dus afhankelijk van de pagina die op dat moment geopend is. Om dit handmatig per pagina te regelen is niet onderhoudsvriendelijk, vooral als er een wijziging plaatsvindt aan het menustructuur.

Is er een noobproof-manier om dit gemakkelijk te regelen door middel van PHP? Iets dat op één of andere manier kan tracken op welke pagina je bent en dus weet welke menu-item op 'active' moet staan...
Een variabele setten in het PHP bestand en opvragen bij het laden van het menu? Of denk ik te simpel?
#ANONIEMzaterdag 26 juli 2014 @ 02:04
quote:
1s.gif Op zaterdag 26 juli 2014 01:59 schreef Reemi het volgende:

[..]

Een variabele setten in het PHP bestand en opvragen bij het laden van het menu? Of denk ik te simpel?
Vast niet, maar dat geeft mijn PHP-kennis wellicht ook aan. :P.

Kun je me hier meer over vertellen? Links naar informatie anders?
Reemizaterdag 26 juli 2014 @ 02:10
quote:
0s.gif Op zaterdag 26 juli 2014 02:04 schreef zarGon het volgende:

[..]

Vast niet, maar dat geeft mijn PHP-kennis wellicht ook aan. :P.

Kun je me hier meer over vertellen? Links naar informatie anders?
Vóórdat je menu wordt geladen kun je een PHP variabele setten, bijvoorbeeld $page = 'stats';. Bij het opbouwen van het menu kun je dan checken welke waarde de variabele heeft (met een simpele if, of met een switch-statement), en zodoende bepalen op welke pagina je bent en hoe het menu eruit moet zien.

Werk je met een template systeem, of plaats je de HTML in ieder PHP bestand? :P Een simpel voorbeeld van een heel simpel template systeem: klik. Scheelt een boel werk, omdat je dan de HTML voor alle pagina's tegelijk kunt aanpassen. De $page kun je dan boven het includen van de header setten, en in header.php staat het menu.
#ANONIEMzaterdag 26 juli 2014 @ 02:15
quote:
0s.gif Op zaterdag 26 juli 2014 02:10 schreef Reemi het volgende:

[..]

Vóórdat je menu wordt geladen kun je een PHP variabele setten, bijvoorbeeld $page = 'stats';. Bij het opbouwen van het menu kun je dan checken welke waarde de variabele heeft (met een simpele if, of met een switch-statement), en zodoende bepalen op welke pagina je bent en hoe het menu eruit moet zien.
Hmhmm, klinkt haalbaar. Thanks!

quote:
Werk je met een template systeem, of plaats je de HTML in ieder PHP bestand? :P Een simpel voorbeeld van een template systeem: klik. Scheelt een boel werk, omdat je dan de HTML voor alle pagina's tegelijk kunt aanpassen.
Momenteel zijn het losse HTML-bestanden, maar ik ga ze inderdaad met includes opbouwen, net zoals in je link.
Reemizaterdag 26 juli 2014 @ 02:15
quote:
0s.gif Op zaterdag 26 juli 2014 02:15 schreef zarGon het volgende:

[..]

Hmhmm, klinkt haalbaar. Thanks!

[..]

Momenteel zijn het losse HTML-bestanden, maar ik ga ze inderdaad met includes opbouwen, net zoals in je link.
^O^ Succes!
djkoelkastdinsdag 29 juli 2014 @ 21:46
Ik heb nu een basiscursus MySQL gevolgd en ben bekend met de statements, maar dit ging verder niet in op de implementatie van SQL in een taal als php.

Weet iemand een heel basic tutorial voor bijvoorbeeld een cd collectie:

Album:
Artiest
Titel

Track:
Nummer
Artiest
Titel
Speelduur

Ik kon niet echt iets vinden, maar hoe je van zulke gegevens een:

Invoerpagina
Bladerpagina
Zoekpagina

maakt.
slacker_nldinsdag 29 juli 2014 @ 22:24
quote:
0s.gif Op dinsdag 29 juli 2014 21:46 schreef djkoelkast het volgende:
Ik heb nu een basiscursus MySQL gevolgd en ben bekend met de statements, maar dit ging verder niet in op de implementatie van SQL in een taal als php.

Weet iemand een heel basic tutorial voor bijvoorbeeld een cd collectie:

Album:
Artiest
Titel

Track:
Nummer
Artiest
Titel
Speelduur

Ik kon niet echt iets vinden, maar hoe je van zulke gegevens een:

Invoerpagina
Bladerpagina
Zoekpagina

maakt.
http://www.test-smoke.org/talks/dbix-class.pdf
djkoelkastdinsdag 29 juli 2014 @ 22:29
quote:
Dank je, maar ORM, CRUD? Ik dacht gewoon aan een html form, sturen naar mysql via php en andersom. Hier snap ik echt geen jota van :P
WyriHaximuswoensdag 30 juli 2014 @ 08:59
quote:
0s.gif Op dinsdag 29 juli 2014 22:29 schreef djkoelkast het volgende:

[..]

Dank je, maar ORM, CRUD? Ik dacht gewoon aan een html form, sturen naar mysql via php en andersom. Hier snap ik echt geen jota van :P
Slap er Slim tegen aan en lees PHP The Right Way ook nog even en je bent al een heel eind.
Maringowoensdag 30 juli 2014 @ 09:55
quote:
0s.gif Op dinsdag 29 juli 2014 22:29 schreef djkoelkast het volgende:

[..]

Dank je, maar ORM, CRUD? Ik dacht gewoon aan een html form, sturen naar mysql via php en andersom. Hier snap ik echt geen jota van :P
Zal ik het wel simpel voor je houden:
Met de PDO statements van PHP kan je communiceren met MySQL: http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers.
Wat je ook vind over communiceren met MySQL, gebruik nooit en te nimmer de 'mysql_' statements.

Beetje aanklooien tot het werkt en je het begrijpt. Daarna kan je het optimaliseren met bovenstaande linkjes en het project naar een 2.0 versie brengen met een micro framework als Slim of Silex; met een CRUD Controller in een bundle; en een ORM systeem er aan vast.
remi1986woensdag 30 juli 2014 @ 10:28
quote:
6s.gif Op woensdag 30 juli 2014 09:55 schreef Maringo het volgende:

[..]

Zal ik het wel simpel voor je houden:
Met de PDO statements van PHP kan je communiceren met MySQL: http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers.
Wat je ook vind over communiceren met MySQL, gebruik nooit en te nimmer de 'mysql_' statements.

Beetje aanklooien tot het werkt en je het begrijpt. Daarna kan je het optimaliseren met bovenstaande linkjes en het project naar een 2.0 versie brengen met een micro framework als Slim of Silex; met een CRUD Controller in een bundle; en een ORM systeem er aan vast.
Je kan beter echt eerst goed core PHP/MySQL leren. Dan is de overstap naar welk framework dan ook veel makkelijker. En je zal je nog verbazen hoeveel webontwikkelbureau's nog met een eigen CMS werken. Tenminste dat is mijn ervaring
djkoelkastwoensdag 30 juli 2014 @ 10:43
Dat was ook eigenlijk mijn idee: gewoon simpel beginnen met een html-form waarmee ik een database kan vullen met de data naar keuze, dat moet het meest simpele zijn wat er is.
Gewoon wat in die forms komt via INSERT INTO-statements in de database in de juiste velden zetten.

Anders lijkt het me heel lastig leren.
mscholwoensdag 30 juli 2014 @ 10:46
quote:
6s.gif Op woensdag 30 juli 2014 09:55 schreef Maringo het volgende:

[..]

Zal ik het wel simpel voor je houden:
Met de PDO statements van PHP kan je communiceren met MySQL: http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers.
Wat je ook vind over communiceren met MySQL, gebruik nooit en te nimmer de 'mysql_' statements.

Beetje aanklooien tot het werkt en je het begrijpt. Daarna kan je het optimaliseren met bovenstaande linkjes en het project naar een 2.0 versie brengen met een micro framework als Slim of Silex; met een CRUD Controller in een bundle; en een ORM systeem er aan vast.
mysql_ is dan ook deprecated
mysqli_ werkt (ook) prima t.b.h. :)
Maringowoensdag 30 juli 2014 @ 17:29
quote:
0s.gif Op woensdag 30 juli 2014 10:28 schreef remi1986 het volgende:

[..]

Je kan beter echt eerst goed core PHP/MySQL leren. Dan is de overstap naar welk framework dan ook veel makkelijker. En je zal je nog verbazen hoeveel webontwikkelbureau's nog met een eigen CMS werken. Tenminste dat is mijn ervaring
Dat was inderdaad de insteek van mijn post. :Y
quote:
0s.gif Op woensdag 30 juli 2014 10:46 schreef mschol het volgende:

[..]

mysql_ is dan ook deprecated
mysqli_ werkt (ook) prima t.b.h. :)
Tja, als hij lokaal een oude WAMP heeft draaien met PHP5.3 erop, krijg je die meldingen niet. Een gewaarschuwd man telt voor twee. :)
n8nwoensdag 30 juli 2014 @ 18:50
Meedo is een single file database interactie framework. Vet handig, handelt alles netjes af met pdo
n8nwoensdag 30 juli 2014 @ 18:50
-

[ Bericht 100% gewijzigd door n8n op 30-07-2014 18:50:46 ]
n8nwoensdag 30 juli 2014 @ 18:50
- zo lekker bezig :')
#ANONIEMwoensdag 30 juli 2014 @ 19:08
quote:
1s.gif Op woensdag 30 juli 2014 18:50 schreef n8n het volgende:
Meedo is een single file database interactie framework. Vet handig, handelt alles netjes af met pdo
quote:
1s.gif Op woensdag 30 juli 2014 18:50 schreef n8n het volgende:
-
quote:
1s.gif Op woensdag 30 juli 2014 18:50 schreef n8n het volgende:
- zo lekker bezig :')
Spammer :')
n8nwoensdag 30 juli 2014 @ 19:26
quote:
0s.gif Op woensdag 30 juli 2014 19:08 schreef totalvamp het volgende:

[..]

[..]

[..]

Spammer :')
Was verkeerde knop jongen
Juicyhilwoensdag 30 juli 2014 @ 19:38
PHP 7 is de nieuwe komende versie :)

http://news.php.net/php.internals/76254
Tijnwoensdag 30 juli 2014 @ 20:43
quote:
0s.gif Op woensdag 30 juli 2014 19:38 schreef Juicyhil het volgende:
PHP 7 is de nieuwe komende versie :)

http://news.php.net/php.internals/76254
Haha 8)7
#ANONIEMwoensdag 30 juli 2014 @ 21:05
In 5.5 is trouwens de oude MySQL-zooi niet meer included. Zou er als freelancer werk zitten in bedrijven die hun zooi voor PHP 5.5+ ondersteund willen hebben? Van die eenmalige sites die zijn gemaakt (en waar ze geen developers intern hebben) en nu door een update niet meer werken.
Tijnwoensdag 30 juli 2014 @ 21:06
quote:
1s.gif Op woensdag 30 juli 2014 21:05 schreef robin007bond het volgende:
In 5.5 is trouwens de oude MySQL-zooi niet meer included. Zou er als freelancer werk zitten in bedrijven die hun zooi voor PHP 5.5+ ondersteund willen hebben? Van die eenmalige sites die zijn gemaakt (en waar ze geen developers intern hebben) en nu door een update niet meer werken.
Zo zat ik ook al te denken :D

$$$$$ :9
Juicyhilwoensdag 30 juli 2014 @ 21:07
quote:
1s.gif Op woensdag 30 juli 2014 21:05 schreef robin007bond het volgende:
In 5.5 is trouwens de oude MySQL-zooi niet meer included. Zou er als freelancer werk zitten in bedrijven die hun zooi voor PHP 5.5+ ondersteund willen hebben? Van die eenmalige sites die zijn gemaakt (en waar ze geen developers intern hebben) en nu door een update niet meer werken.
Succes met het opknappen van crappy code ^O^ Ik zou m'n vingers er niet aan branden.
#ANONIEMwoensdag 30 juli 2014 @ 21:11
quote:
10s.gif Op woensdag 30 juli 2014 21:06 schreef Tijn het volgende:

[..]

Zo zat ik ook al te denken :D

$$$$$ :9
Zakelijk instinct. :D

Probleem is dat ik geen idee heb hoe je je voor zoiets de markt in zet.
#ANONIEMwoensdag 30 juli 2014 @ 21:12
quote:
0s.gif Op woensdag 30 juli 2014 21:07 schreef Juicyhil het volgende:

[..]

Succes met het opknappen van crappy code ^O^ Ik zou m'n vingers er niet aan branden.
Ach. Desnoods schrijf je alles opnieuw. De query's hebben ze toch nog. Maak je gewoon nieuwe DB-klasses en klaar.
slacker_nlwoensdag 30 juli 2014 @ 21:20
quote:
1s.gif Op woensdag 30 juli 2014 21:12 schreef robin007bond het volgende:

[..]

Ach. Desnoods schrijf je alles opnieuw. De query's hebben ze toch nog. Maak je gewoon nieuwe DB-klasses en klaar.
Ik denk dat je veel meer crap tegenkomt en dat je een hoop can of worms opent. Voel je verder vrij, volgens mij kan je er wel leuk je centen mee verdienen als je lichtelijk sadomasochistisch bent.
#ANONIEMwoensdag 30 juli 2014 @ 21:24
quote:
0s.gif Op woensdag 30 juli 2014 21:20 schreef slacker_nl het volgende:

[..]

Ik denk dat je veel meer crap tegenkomt en dat je een hoop can of worms opent. Voel je verder vrij, volgens mij kan je er wel leuk je centen mee verdienen als je lichtelijk sadomasochistisch bent.
:D
#ANONIEMwoensdag 30 juli 2014 @ 22:16
quote:
0s.gif Op woensdag 30 juli 2014 21:20 schreef slacker_nl het volgende:

[..]

Ik denk dat je veel meer crap tegenkomt en dat je een hoop can of worms opent. Voel je verder vrij, volgens mij kan je er wel leuk je centen mee verdienen als je lichtelijk sadomasochistisch bent.
Inderdaad, vaak ben je beter af met het te herschrijven.
Tijnwoensdag 30 juli 2014 @ 22:17
Als je je echt alleen concentreert op het vervangen van de mysql_-functies en verder alles laat zoals het is en er ook niet naar kijkt, is het volgens mij best te doen, hoor.
#ANONIEMwoensdag 30 juli 2014 @ 22:19
quote:
14s.gif Op woensdag 30 juli 2014 22:17 schreef Tijn het volgende:
Als je je echt alleen concentreert op het vervangen van de mysql_-functies en verder alles laat zoals het is en er ook niet naar kijkt, is het volgens mij best te doen, hoor.
maar als programmeur zijnde kom je vaak zulke slechte code tegen wat je niet zo kunt laten.
Doet pijn aan je ogen.
Juicyhilwoensdag 30 juli 2014 @ 22:23
quote:
0s.gif Op woensdag 30 juli 2014 22:19 schreef totalvamp het volgende:

[..]

maar als programmeur zijnde kom je vaak zulke slechte code tegen wat je niet zo kunt laten.
Doet pijn aan je ogen.
Laatst gewerkt met zo'n lutser van een freelancer. Die gast had 6 maanden zonder enig toezicht code kunnen kloppen. Toen hij wegging maakte hij nog wel even wat opmerkingen over onze code, dat we te weinig design patterns gebruikten enzo.

Dus we keken naar z'n code, maar die had echt letterlijk alles herbruikbaar gemaakt. Dus ergens een string die via vijf of zes proxy classes ergens alsnog in de config wordt uitgelezen, ben je dus makkelijk een kwartier aan het zoeken voor een statische waarde. Wtf. Uiteindelijk drie maanden zitten refactoren.
#ANONIEMwoensdag 30 juli 2014 @ 22:26
quote:
0s.gif Op woensdag 30 juli 2014 22:23 schreef Juicyhil het volgende:

[..]

Laatst gewerkt met zo'n lutser van een freelancer. Die gast had 6 maanden zonder enig toezicht code kunnen kloppen. Toen hij wegging maakte hij nog wel even wat opmerkingen over onze code, dat we te weinig design patterns gebruikten enzo.

Dus we keken naar z'n code, maar die had echt letterlijk alles herbruikbaar gemaakt. Dus ergens een string die via vijf of zes proxy classes ergens alsnog in de config wordt uitgelezen, ben je dus makkelijk een kwartier aan het zoeken voor een statische waarde. Wtf. Uiteindelijk drie maanden zitten refactoren.
Daarom heb je een duidelijke directory structuur nodig :P Dan heb je geen issues met dingen vinden xD
Juicyhilwoensdag 30 juli 2014 @ 22:27
quote:
0s.gif Op woensdag 30 juli 2014 22:26 schreef totalvamp het volgende:

[..]

Daarom heb je een duidelijke directory structuur nodig :P Dan heb je geen issues met dingen vinden xD
Oh ja, dat deed hij ook niet nee. Maar dat is zo fijn aan MVC, dat alles convention based is en je dus wel moet houden aan die structuren.
#ANONIEMwoensdag 30 juli 2014 @ 22:29
quote:
0s.gif Op woensdag 30 juli 2014 22:27 schreef Juicyhil het volgende:

[..]

Oh ja, dat deed hij ook niet nee. Maar dat is zo fijn aan MVC, dat alles convention based is en je dus wel moet houden aan die structuren.
Ja idd, ik ben ook een type die alles herbruikbaar maakt.
Maar ik zorg er dan wel voor dat het ook makkelijk kan.

Maarja als je zelf iets maakt heb je altijd een beter idee van hoe iets werkt.
Lightwoensdag 30 juli 2014 @ 22:41
quote:
0s.gif Op woensdag 30 juli 2014 22:23 schreef Juicyhil het volgende:

[..]

Laatst gewerkt met zo'n lutser van een freelancer. Die gast had 6 maanden zonder enig toezicht code kunnen kloppen.
Daar ging het imho al mis.
#ANONIEMwoensdag 30 juli 2014 @ 22:49
quote:
14s.gif Op woensdag 30 juli 2014 22:17 schreef Tijn het volgende:
Als je je echt alleen concentreert op het vervangen van de mysql_-functies en verder alles laat zoals het is en er ook niet naar kijkt, is het volgens mij best te doen, hoor.
Dat denk ik ook. :)
#ANONIEMwoensdag 30 juli 2014 @ 22:50
quote:
0s.gif Op woensdag 30 juli 2014 22:23 schreef Juicyhil het volgende:

[..]

Laatst gewerkt met zo'n lutser van een freelancer. Die gast had 6 maanden zonder enig toezicht code kunnen kloppen. Toen hij wegging maakte hij nog wel even wat opmerkingen over onze code, dat we te weinig design patterns gebruikten enzo.

Dus we keken naar z'n code, maar die had echt letterlijk alles herbruikbaar gemaakt. Dus ergens een string die via vijf of zes proxy classes ergens alsnog in de config wordt uitgelezen, ben je dus makkelijk een kwartier aan het zoeken voor een statische waarde. Wtf. Uiteindelijk drie maanden zitten refactoren.
_O-
Ik zie het al helemaal voor me. Die probeert geforceerd alle design patterns die hij kent zo'n beetje uit overal, ook waar het niet nodig is. :D
#ANONIEMwoensdag 30 juli 2014 @ 22:52
quote:
0s.gif Op woensdag 30 juli 2014 22:29 schreef totalvamp het volgende:

[..]

Ja idd, ik ben ook een type die alles herbruikbaar maakt.
Maar ik zorg er dan wel voor dat het ook makkelijk kan.

Maarja als je zelf iets maakt heb je altijd een beter idee van hoe iets werkt.
Dat is inderdaad goed. Sowieso een beetje documentatie kan nooit kwaad.

Voor bijvoorbeeld een API gebruik ik ApiGen.
Lightwoensdag 30 juli 2014 @ 23:25
quote:
1s.gif Op woensdag 30 juli 2014 22:52 schreef robin007bond het volgende:

Voor bijvoorbeeld een API gebruik ik ApiGen.
Ook al eens naar phpDocumentor gekeken? Die wordt nog actief ontwikkeld.
Boze_Appelwoensdag 30 juli 2014 @ 23:54
quote:
0s.gif Op woensdag 30 juli 2014 22:27 schreef Juicyhil het volgende:

[..]

Oh ja, dat deed hij ook niet nee. Maar dat is zo fijn aan MVC, dat alles convention based is en je dus wel moet houden aan die structuren.
Dat 'moeten' is lang niet altijd zo. Vaak genoeg dikke functies gezien in models, db-interacties in views en halve templates in controllers of zelfs hele sql-schema-declaraties in helpers. :'(
#ANONIEMdonderdag 31 juli 2014 @ 00:35
Ik ben m'n code aan het doccen met phpdoc maar ik krijg inline @links niet werkende...

Ik heb nu dit

1
2
3
4
5
6
7
8
9
10
<?php
/**
 * sends a {@link http://tools.ietf.org/html/rfc2812#section-3.3.1 PRIVMSG}
 * @param     string     $user         The user to send as
 * @param     string     $to         The reciever
 * @param     string     $message     The message to send
 * @see        write()
 */
function privmsg ($user$to$message)
?>

En in m'n docs ziet dat er dus zo uit..

20140730223047354.png

http://manual.phpdoc.org/(...).inlinelink.pkg.html

Kijk ik nou ergens overheen waardoor die geen mooi linkje ervan maakt?
Lightdonderdag 31 juli 2014 @ 00:58
quote:
2s.gif Op donderdag 31 juli 2014 00:35 schreef d4v1d het volgende:
Ik ben m'n code aan het doccen met phpdoc maar ik krijg inline @links niet werkende...

Ik heb nu dit
[ code verwijderd ]

En in m'n docs ziet dat er dus zo uit..

[ afbeelding ]

http://manual.phpdoc.org/(...).inlinelink.pkg.html

Kijk ik nou ergens overheen waardoor die geen mooi linkje ervan maakt?
Welke versie van phpDocumentor gebruik je? Je linkt naar een oude versie, en als je die nog gebruikt zou ik je phpDocumentor2 aanraden.
#ANONIEMdonderdag 31 juli 2014 @ 06:30
quote:
0s.gif Op woensdag 30 juli 2014 23:25 schreef Light het volgende:

[..]

Ook al eens naar phpDocumentor gekeken? Die wordt nog actief ontwikkeld.
Bedankt voor de tip. :)
slacker_nldonderdag 31 juli 2014 @ 07:19
quote:
2s.gif Op donderdag 31 juli 2014 00:35 schreef d4v1d het volgende:
Ik ben m'n code aan het doccen met phpdoc maar ik krijg inline @links niet werkende...

Ik heb nu dit
[ code verwijderd ]

En in m'n docs ziet dat er dus zo uit..

[ afbeelding ]

http://manual.phpdoc.org/(...).inlinelink.pkg.html

Kijk ik nou ergens overheen waardoor die geen mooi linkje ervan maakt?
Volgens mij moet je de { } weghalen. Never mind, ze beginnen het voorbeeld met hoe je het niet moet doen (ook zo handig).
#ANONIEMdonderdag 31 juli 2014 @ 11:55
quote:
0s.gif Op donderdag 31 juli 2014 00:58 schreef Light het volgende:

[..]

Welke versie van phpDocumentor gebruik je? Je linkt naar een oude versie, en als je die nog gebruikt zou ik je phpDocumentor2 aanraden.
Oh, zit ik in oude documentatie te neuzen? _O-

Ik heb phpdoc gister gedownload, heb nu de laatste versie 2.6.1. Even zoeken naar de juiste documentatie dan maar :')

edit: in de huidige docs staat het precies 't zelfde:

quote:
{@link [URI] [<description>]}
http://www.phpdoc.org/doc(...)hpdoc/tags/link.html

[ Bericht 15% gewijzigd door #ANONIEM op 31-07-2014 11:58:49 ]
Rockfiredonderdag 31 juli 2014 @ 12:40
quote:
2s.gif Op donderdag 31 juli 2014 11:55 schreef d4v1d het volgende:

[..]

Oh, zit ik in oude documentatie te neuzen? _O-

Ik heb phpdoc gister gedownload, heb nu de laatste versie 2.6.1. Even zoeken naar de juiste documentatie dan maar :')

edit: in de huidige docs staat het precies 't zelfde:

[..]

http://www.phpdoc.org/doc(...)hpdoc/tags/link.html

In dat grote zwarte blok bovenaan de pagina staat duidelijk:
quote:
The effects of the inline version of this tag are not yet fully implemented in PhpDocumentor2. There’s only URI support (i.e. no support for Structural Elements), and even that is available only in long descriptions. This is a known issue that is sure to be fixed before the final release of PhpDocumentor 2.0.
#ANONIEMdonderdag 31 juli 2014 @ 12:42
quote:
12s.gif Op donderdag 31 juli 2014 12:40 schreef Rockfire het volgende:

[..]

In dat grote zwarte blok bovenaan de pagina staat duidelijk:

[..]

EN daarachter staat "There is only URL support", dat wil ik dus juist. :P

[ Bericht 1% gewijzigd door #ANONIEM op 31-07-2014 12:43:07 ]
Rockfiredonderdag 31 juli 2014 @ 12:45
quote:
2s.gif Op donderdag 31 juli 2014 12:42 schreef d4v1d het volgende:

[..]

EN daarachter staat "There is only URL support", dat wil ik dus juist. :P
Nee, jij wil ook een description ;)
#ANONIEMdonderdag 31 juli 2014 @ 12:47
quote:
0s.gif Op donderdag 31 juli 2014 12:45 schreef Rockfire het volgende:

[..]

Nee, jij wil ook een description ;)
Oh, dan ben ik nog niet helemaal wakker :')
Lightdonderdag 31 juli 2014 @ 23:20
quote:
0s.gif Op donderdag 31 juli 2014 12:45 schreef Rockfire het volgende:

[..]

Nee, jij wil ook een description ;)
Dat "only URI support" slaat op waar je naar toe kunt linken. Je kunt niet verwijzen naar iets anders dan een link, zoals bijvoorbeeld een variabele.
En die description slaat op de opbouw van een DocBlock. In het kort heb je 3 onderdelen, een summary, een description en tags. De volgorde is belangrijk. De notatie {@link } werkt alleen in descriptions en niet in summaries (dus niet in de eerste regel).
Lightdonderdag 31 juli 2014 @ 23:25
quote:
2s.gif Op donderdag 31 juli 2014 00:35 schreef d4v1d het volgende:
Ik ben m'n code aan het doccen met phpdoc maar ik krijg inline @links niet werkende...

Ik heb nu dit
[ code verwijderd ]

En in m'n docs ziet dat er dus zo uit..

[ afbeelding ]

http://manual.phpdoc.org/(...).inlinelink.pkg.html

Kijk ik nou ergens overheen waardoor die geen mooi linkje ervan maakt?
Ja, die {@link .. } werkt alleen in descriptions en niet in de summary waar je het nu probeert te gebruiken. Zie ook mijn post hierboven.

Mogelijke oplossingen:
1
2
3
4
5
6
7
8
9
10
11
12
<?php
/**
 * sends a privmsg
 *
 * @link http://tools.ietf.org/html/rfc2812#section-3.3.1 PRIVMSG
 * @param     string     $user         The user to send as
 * @param     string     $to         The reciever
 * @param     string     $message     The message to send
 * @see        write()
 */
function privmsg ($user$to$message)
?>
Of:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
/**
 * This is my one line summary
 *
 * This is my multi-line description that contains 
 * an inline link: {@link http://tools.ietf.org/html/rfc2812#section-3.3.1 PRIVMSG}
 *
 * @param     string     $user         The user to send as
 * @param     string     $to         The reciever
 * @param     string     $message     The message to send
 * @see        write()
 */
function privmsg ($user$to$message)
?>

Teksten naar eigen voorkeur aanpassen ;)
#ANONIEMvrijdag 1 augustus 2014 @ 19:53
phpdocumentor draaide niet lekker op mijn WAMP-omgeving. Helaas geen tijd gehad het recht te trekken.

Mijn vakantiewerk is voorbij dus vanaf nu is het weer hobbyen. :P
cablegunmastervrijdag 1 augustus 2014 @ 22:41
quote:
1s.gif Op vrijdag 1 augustus 2014 19:53 schreef robin007bond het volgende:
phpdocumentor draaide niet lekker op mijn WAMP-omgeving. Helaas geen tijd gehad het recht te trekken.

Mijn vakantiewerk is voorbij dus vanaf nu is het weer hobbyen. :P
Phpdocumentor? Is dat zo echt nodig? Het lijkt in sommige gevallen best overbodig.
Ik zie er in dit geval nog geen meerwaarde van in

soort van Javadocs voor jezelf ?
#ANONIEMvrijdag 1 augustus 2014 @ 22:52
quote:
0s.gif Op vrijdag 1 augustus 2014 22:41 schreef cablegunmaster het volgende:

[..]

Phpdocumentor? Is dat zo echt nodig? Het lijkt in sommige gevallen best overbodig.
Ik zie er in dit geval nog geen meerwaarde van in

soort van Javadocs voor jezelf ?
Als je een API maakt bijvoorbeeld. :)
slacker_nlvrijdag 1 augustus 2014 @ 23:40
quote:
0s.gif Op vrijdag 1 augustus 2014 22:41 schreef cablegunmaster het volgende:

[..]

Phpdocumentor? Is dat zo echt nodig? Het lijkt in sommige gevallen best overbodig.
Ik zie er in dit geval nog geen meerwaarde van in

soort van Javadocs voor jezelf ?
Je ziet geen voordeel in documentatie?

quote:
Average number of code comments
xxxx is written mostly in Perl.

Across all Perl projects on Open Hub, 26% of all source code lines are comments.

This holds true for xxxx as well. It contains the same ratio of comment lines to code lines as the majority of Perl projects in Open Hub.

A high number of comments might indicate that the code is well-documented and organized, and could be a sign of a helpful and disciplined development team.
(bron is OpenHub.net)

Daarom is documentatie van belang. Plus, over een jaar weet je echt niet meer waarom je iets gedaan hebt. Documentatie is dan van belang, ookal is je code vanzelfsprekend.
cablegunmastervrijdag 1 augustus 2014 @ 23:48
quote:
0s.gif Op vrijdag 1 augustus 2014 23:40 schreef slacker_nl het volgende:

[..]

Je ziet geen voordeel in documentatie?

[..]

(bron is OpenHub.net)

Daarom is documentatie van belang. Plus, over een jaar weet je echt niet meer waarom je iets gedaan hebt. Documentatie is dan van belang, ookal is je code vanzelfsprekend.
Dat is waar , natuurlijk is documentatie meerwaarde, maar ik ken het programma niet en vraag dermate daarom waarom ik dit programma zou gebruiken. :). De meerwaarde van dit programma.
aangezien mijn doelgroep eigen software is, en mogelijk 1 - 2 lib files met alle functies die ik gebruik.
slacker_nlvrijdag 1 augustus 2014 @ 23:53
quote:
0s.gif Op vrijdag 1 augustus 2014 23:48 schreef cablegunmaster het volgende:

[..]

Dat is waar , natuurlijk is documentatie meerwaarde, maar ik ken het programma niet en vraag dermate daarom waarom ik dit programma zou gebruiken. :). De meerwaarde van dit programma.
aangezien mijn doelgroep eigen software is, en mogelijk 1 - 2 lib files met alle functies die ik gebruik.
Zelfs met eigen code is het belangrijk. Als ik naar code van zoveel jaar terug kijk denk ik soms ook: what was I thinking?!
Lightzaterdag 2 augustus 2014 @ 00:41
quote:
0s.gif Op vrijdag 1 augustus 2014 23:53 schreef slacker_nl het volgende:

[..]

Zelfs met eigen code is het belangrijk. Als ik naar code van zoveel jaar terug kijk denk ik soms ook: was I thinking?!
Fixed :)
n8nmaandag 4 augustus 2014 @ 18:10
In Atom kan je de line-height instellen, staat nu op 1.8 en dat werkt erg prettig. Kan nu een stuk vaker af zonder witregel in de code zonder dat het onoverzichtelijk wordt
#ANONIEMmaandag 4 augustus 2014 @ 19:40
quote:
0s.gif Op vrijdag 1 augustus 2014 23:53 schreef slacker_nl het volgende:

[..]

Zelfs met eigen code is het belangrijk. Als ik naar code van zoveel jaar terug kijk denk ik soms ook: what was I thinking?!
Meestal als je klaar bent en je kijkt terug heb je dat al :')
Omdat je vaak nieuwe kennis hebt opgedaan tijdens het maken van.
Robuustheidmaandag 4 augustus 2014 @ 23:39
Ik heb een aardig probleem. Ik heb 2 dagen mee geworsteld, en toen kwam ik er nog niet uit. Ervaren programmeurs hier wisten het ook niet. :P.

Ik heb even uitgetypt, met een MySQL tabel als voorbeeld met daarin fictieve waarden:

  +-----------+-----------------+---------------------+             
   |   Naam    |   Gespreksduur  |   TypeGesprek       |             
   +---------------------------------------------------+             
   |           |                 |                     |             
   |   Jaap    |   00:17:45      |   Vaste lijn        |             
   |   Anita   |   00:06:33      |   Vaste lijn        |             
   |   Kees    |   00:06:44      |   Mobiele lijn      |             
   |   Jaap    |   00:02:36      |   Vaste lijn        |             
   |   Jaap    |   00:02:34      |   Mobiele lijn      |             
   |   Anita   |   00:04:50      |   Mobiele lijn      |             
   |   Jaap    |   00:02:41      |   Vaste lijn        |             
   |   Maartje |   00:03:43      |   Mobiele lijn      |             
   |   Kees    |   01:02:46      |   Vaste lijn        |             
   |   Anita   |   00:05:34      |   Mobiele lijn      |             
   |   Jaap    |   00:16:34      |   Vaste lijn        |             
   +-----------+-----------------+---------------------+         

Je hebt dus in de tabel een naam die gebeld heeft, tijdsduur van gesprek, en soort gesprek.

Ik heb de volgende SQL-statement:

1
2
3
4
SELECT                                          naam
SEC_TO_TIME(SUM(TIME_TO_SEC(Gespreksduur))) as totaalduur 
FROM                                             telefoongesprekken
GROUP BY                                    naam

Dan verschijnen er 2 columns, namelijk de totale tijd en per persoon. Je ziet dus wie totaal uren gebeld heeft. Dan kun je daarop selecteren.

Nu moet er een 3e column bijkomen.

Nu moet ik dat uitscheiden naar type gesprek per persoon, binnen dezelfde query, zodat er een column verschijnt met totale uren per type gesprek, gegroepeerd naar naam.
Dus er moeten nog columns naast de huidige 2 columns komen, namelijk hoeveel uren daarvan aan Mobiele Gesprekken besteed zijn, en hoeveel daarvan aan Vaste gesprekken.

Ik heb verschillende varianten geprobeerd zoals:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT   
(
SELECT naam
SEC_TO_TIME(SUM(TIME_TO_SEC(Gespreksduur))) as vastduur
FROM     telefoongesprekken
WHERE TypeGesprek = 'Vaste lijn'
GROUP BY naam
),
(
SELECT naam
SEC_TO_TIME(SUM(TIME_TO_SEC(Gespreksduur))) as mobielduur
FROM     telefoongesprekken
WHERE TypeGesprek = 'Mobiele lijn'
GROUP BY naam
)

Werkte niet, naast talloze varianten zoals:

1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT   naam
SEC_TO_TIME(SUM(TIME_TO_SEC(Gespreksduur))) as vastduur
FROM     telefoongesprekken
WHERE TypeGesprek = 'Vaste lijn'
GROUP BY naam

UNION 

SELECT
SEC_TO_TIME(SUM(TIME_TO_SEC(Gespreksduur))) as mobielduur
FROM     telefoongesprekken
WHERE TypeGesprek = 'Mobiele lijn'
GROUP BY naam

Dat gaf niet het gewenste resultaat. De waarden worden dan in 1 column gesorteerd, terwijl er eigenlijk 2 columns bij moeten komen. :'(.

Ik ben niet iemand die het gaat vragen, maar alles uitzoekt. Maar na 2 hele dagen zoeken op internet, is het nog steeds niet gelukt. :( Wel trof ik suggesties voor LEFT JOIN etc aan, maar die hebben betrekking op externe tabels. Anders zouden de waarden van naam, en totale gespreksduur ook weer weg vallen.

Hebben de Fokkers onder ons nog tips? :?
Lightdinsdag 5 augustus 2014 @ 00:38
quote:
1s.gif Op maandag 4 augustus 2014 23:39 schreef Robuustheid het volgende:
Ik heb een aardig probleem. Ik heb 2 dagen mee geworsteld, en toen kwam ik er nog niet uit. Ervaren programmeurs hier wisten het ook niet. :P.
Zoiets?
1
2
3
4
5
SELECT                                          naam,
SEC_TO_TIME(SUM(TIME_TO_SEC(Gespreksduur))) as totaalduur,
TypeGesprek 
FROM                                             telefoongesprekken
GROUP BY                                    naam, TypeGesprek
Robuustheidwoensdag 6 augustus 2014 @ 22:54
Nee, dat is hem niet. Je moet daarop nog kunnen selecteren vanuit PHP. Toch nog bedankt voor het meedenken! :)

Wel heb ik nog een vraag. Stel, je hebt in MySQL een varchar-kolom met daarin 2 rijen:

09000000001
09000024#

Waarom retourneert deze query alleen 1 rij? Namelijk die met een hekje erin :?.

1
2
3
SELECT GebeldeNummer
FROM telefoongesprekken
WHERE SUBSTRING( telefoongesprekken.GebeldeNummer, 1, 4 ) =  '0900'
Juicyhilwoensdag 6 augustus 2014 @ 22:57
quote:
1s.gif Op woensdag 6 augustus 2014 22:54 schreef Robuustheid het volgende:
Nee, dat is hem niet. Je moet daarop nog kunnen selecteren vanuit PHP. Toch nog bedankt voor het meedenken! :)

Wel heb ik nog een vraag. Stel, je hebt in MySQL een varchar-kolom met daarin 2 rijen:

09000000001
09000024#

Waarom retourneert deze query alleen 1 rij? Namelijk die met een hekje erin :?.
[ code verwijderd ]

Zit er misschien een spatie in die eerste aan het begin? Tevens zou ik gewoon gebruiken:

1WHERE telefoongesprekken.GebeldeNummer LIKE  '0900%'
remi1986donderdag 7 augustus 2014 @ 01:16
quote:
1s.gif Op woensdag 6 augustus 2014 22:54 schreef Robuustheid het volgende:
Nee, dat is hem niet. Je moet daarop nog kunnen selecteren vanuit PHP. Toch nog bedankt voor het meedenken! :)

Wel heb ik nog een vraag. Stel, je hebt in MySQL een varchar-kolom met daarin 2 rijen:

09000000001
09000024#

Waarom retourneert deze query alleen 1 rij? Namelijk die met een hekje erin :?.
[ code verwijderd ]

je zou gewoon 2 resultaten moeten krijgen.

2gxkb3c.png
remi1986donderdag 7 augustus 2014 @ 01:57
quote:
1s.gif Op maandag 4 augustus 2014 23:39 schreef Robuustheid het volgende:
Ik heb een aardig probleem. Ik heb 2 dagen mee geworsteld, en toen kwam ik er nog niet uit. Ervaren programmeurs hier wisten het ook niet. :P.

Ik heb even uitgetypt, met een MySQL tabel als voorbeeld met daarin fictieve waarden:

  +-----------+-----------------+---------------------+             
   |   Naam    |   Gespreksduur  |   TypeGesprek       |             
   +---------------------------------------------------+             
   |           |                 |                     |             
   |   Jaap    |   00:17:45      |   Vaste lijn        |             
   |   Anita   |   00:06:33      |   Vaste lijn        |             
   |   Kees    |   00:06:44      |   Mobiele lijn      |             
   |   Jaap    |   00:02:36      |   Vaste lijn        |             
   |   Jaap    |   00:02:34      |   Mobiele lijn      |             
   |   Anita   |   00:04:50      |   Mobiele lijn      |             
   |   Jaap    |   00:02:41      |   Vaste lijn        |             
   |   Maartje |   00:03:43      |   Mobiele lijn      |             
   |   Kees    |   01:02:46      |   Vaste lijn        |             
   |   Anita   |   00:05:34      |   Mobiele lijn      |             
   |   Jaap    |   00:16:34      |   Vaste lijn        |             
   +-----------+-----------------+---------------------+         

Je hebt dus in de tabel een naam die gebeld heeft, tijdsduur van gesprek, en soort gesprek.

Ik heb de volgende SQL-statement:
[ code verwijderd ]

Dan verschijnen er 2 columns, namelijk de totale tijd en per persoon. Je ziet dus wie totaal uren gebeld heeft. Dan kun je daarop selecteren.

Nu moet er een 3e column bijkomen.

Nu moet ik dat uitscheiden naar type gesprek per persoon, binnen dezelfde query, zodat er een column verschijnt met totale uren per type gesprek, gegroepeerd naar naam.
Dus er moeten nog columns naast de huidige 2 columns komen, namelijk hoeveel uren daarvan aan Mobiele Gesprekken besteed zijn, en hoeveel daarvan aan Vaste gesprekken.

Ik heb verschillende varianten geprobeerd zoals:
[ code verwijderd ]

Werkte niet, naast talloze varianten zoals:
[ code verwijderd ]

Dat gaf niet het gewenste resultaat. De waarden worden dan in 1 column gesorteerd, terwijl er eigenlijk 2 columns bij moeten komen. :'(.

Ik ben niet iemand die het gaat vragen, maar alles uitzoekt. Maar na 2 hele dagen zoeken op internet, is het nog steeds niet gelukt. :( Wel trof ik suggesties voor LEFT JOIN etc aan, maar die hebben betrekking op externe tabels. Anders zouden de waarden van naam, en totale gespreksduur ook weer weg vallen.

Hebben de Fokkers onder ons nog tips? :?
Heb ff test tabelletje gemaakt

2aqn46.png

Is dit wat je zoekt?

x2szg7.png

1
2
3
4
5
6
SELECT naam, 
SEC_TO_TIME(SUM(TIME_TO_SEC(duur))) as totaal,
SEC_TO_TIME(SUM(CASE WHEN type = "vast" THEN TIME_TO_SEC(duur) ELSE 0 END)) as vast,
SEC_TO_TIME(SUM(CASE WHEN type = "mobiel" THEN TIME_TO_SEC(duur) ELSE 0 END)) as mobiel
FROM gesprekken
GROUP BY naam



Maar kom op hee, dit is basis MySQL, je gaat mij niet vertellen dat "ervaren" programmeurs dit niet konden verzinnen :')

[ Bericht 1% gewijzigd door remi1986 op 07-08-2014 02:03:21 ]
xaban06vrijdag 8 augustus 2014 @ 11:37
Ik heb een bestand, te downloaden via: http://1.2.3.4/file.iso
Echter wil ik dat deze bestand alleen te downloaden is via een PHP script, bijv: http://1.2.3.4/download.php

Als ik in download.php het volgende zet:
<?php
header('Location: http://1.2.3.4/file.iso');
?>

Dan wordt je volgens mij redirected naar http://1.2.3.4/file.iso dus de gebruiker ziet de directe URL, deze wil ik juist geheim houden. Welke functie moet ik hiervoor gebruiken?
Juicyhilvrijdag 8 augustus 2014 @ 11:41
quote:
0s.gif Op vrijdag 8 augustus 2014 11:37 schreef xaban06 het volgende:
Ik heb een bestand, te downloaden via: http://1.2.3.4/file.iso
Echter wil ik dat deze bestand alleen te downloaden is via een PHP script, bijv: http://1.2.3.4/download.php

Als ik in download.php het volgende zet:
<?php
header('Location: http://1.2.3.4/file.iso');
?>

Dan wordt je volgens mij redirected naar http://1.2.3.4/file.iso dus de gebruiker ziet de directe URL, deze wil ik juist geheim houden. Welke functie moet ik hiervoor gebruiken?
Kan het niet via een RewriteRule in je htaccess?
1RewriteRule ^/download        /file.iso [L]
mstxvrijdag 8 augustus 2014 @ 11:47
quote:
0s.gif Op vrijdag 8 augustus 2014 11:37 schreef xaban06 het volgende:
Ik heb een bestand, te downloaden via: http://1.2.3.4/file.iso
Echter wil ik dat deze bestand alleen te downloaden is via een PHP script, bijv: http://1.2.3.4/download.php

Als ik in download.php het volgende zet:
<?php
header('Location: http://1.2.3.4/file.iso');
?>

Dan wordt je volgens mij redirected naar http://1.2.3.4/file.iso dus de gebruiker ziet de directe URL, deze wil ik juist geheim houden. Welke functie moet ik hiervoor gebruiken?
http://nl1.php.net/fread

Gewoon het bestand met php uitlezen en outputten naar de user
papernotevrijdag 8 augustus 2014 @ 12:14
quote:
0s.gif Op vrijdag 8 augustus 2014 11:47 schreef mstx het volgende:

[..]

http://nl1.php.net/fread

Gewoon het bestand met php uitlezen en outputten naar de user
In combinatie met http://php.net/fpassthru dan.

En als je zeker wilt dat niemand bij het bestand kan behalve via het PHP script, dan is het verstandig om die bestanden buiten de webroot te zetten.
xaban06vrijdag 8 augustus 2014 @ 12:31
quote:
0s.gif Op vrijdag 8 augustus 2014 11:47 schreef mstx het volgende:

[..]

http://nl1.php.net/fread

Gewoon het bestand met php uitlezen en outputten naar de user
Thanks!
Opgelost. Bestanden staan nu buiten de webroot :)
Aethervrijdag 8 augustus 2014 @ 15:12
Wat mis ik hier?
1
2
3
4
5
6
mysql> SELECT ROUND( 0.0025, 3 );
+--------------------+
| round( 0.0025, 3 ) |
+--------------------+
|              0.003 |
+--------------------+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
mysql> CREATE TABLE `test` (
  `value` float NOT NULL,
  `decimals` tinyint(4) NOT NULL
);

mysql> INSERT INTO test (value,decimals) VALUES (0.0025,3);

mysql> SELECT * FROM test;
+--------+----------+
| value  | decimals |
+--------+----------+
| 0.0025 |        3 |
+--------+----------+

mysql> SELECT ROUND( value, decimals ) FROM test;
+--------------------------+
| round( value, decimals ) |
+--------------------------+
|                    0.002 |
+--------------------------+
Edit: lijkt een floating point probleem te zijn. Met DECIMAL werkt het wel.

[ Bericht 1% gewijzigd door Aether op 08-08-2014 15:20:54 ]
wipes66vrijdag 8 augustus 2014 @ 15:57
quote:
5s.gif Op vrijdag 8 augustus 2014 15:12 schreef Aether het volgende:
Wat mis ik hier?
[ code verwijderd ]

[ code verwijderd ]

Edit: lijkt een floating point probleem te zijn. Met DECIMAL werkt het wel.
float is bijna altijd een probleem :P
papernotevrijdag 8 augustus 2014 @ 16:23
quote:
5s.gif Op vrijdag 8 augustus 2014 15:12 schreef Aether het volgende:
Wat mis ik hier?
[ code verwijderd ]

[ code verwijderd ]

Edit: lijkt een floating point probleem te zijn. Met DECIMAL werkt het wel.
http://www.h-schmidt.net/FloatConverter/IEEE754.html

A8gISDx.png
superkywoensdag 13 augustus 2014 @ 17:33
Hoi ik heb een vraagje over een tutorial die ik ging volgen waarbij er de php mail() functie werd gebruikt. Hier is de link van de tutorial:

De php mail() functie werkt wel, omdat hij true als waarde terug geeft. Maar ik ontvang geen email als ik een account registreer. Dit had ik dus getest met de volgende stukje code:

1
2
3
4
5
6
if(mail($to, $subject, $message, $headers)){
echo "Email has been sent to<b> ".$to."</b>";
}
else{
echo "Failed sending message to <b> ".$to."</b>.";
}

Maar ik weet nog steeds niet hoe ik dit probleem kan fixen. Kan iemand me misschien helpen?

Hier is de rest van mijn code die ik gebruik:
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
// END FORM DATA ERROR HANDLING
        // Begin Insertion of data into the database
        // Hash the password and apply your own mysterious unique salt
        $cryptpass = crypt($p); //<-- dit wordt een 30 bit/characters cryptic hash
        include_once ("php_includes/randStrGen.php");
        $p_hash = randStrGen(20)."$cryptpass".randStrGen(20);
        // Add user info into the database table for the main site table
        $sql = "INSERT INTO users (username, email, password, gender, country, ip, signup, lastlogin, notescheck)       
                VALUES('$u','$e','$p_hash','$g','$c','$ip',now(),now(),now())";
        $query = mysqli_query($db_conx, $sql); //<-- Dit runt de query
        $uid = mysqli_insert_id($db_conx);
        // Establish their row in the useroptions table
        $sql = "INSERT INTO useroptions (id, username, background) VALUES ('$uid','$u','original')";
        $query = mysqli_query($db_conx, $sql);
        // Create directory(folder) to hold each user's files(pics, MP3s, etc.)
        if (!file_exists("user/$u")) { //Als de folder met de naam van de user niet bestaat, dan maken we die folder aan.
            mkdir("user/$u", 0755); //0755 zijn de folder permissies oftewel chmod
        }
        // Email the user their activation link
        $to = "$e";    
                 
        $from = "auto_responder@yomacho.host56.com"; 
        
        /*als je een email gebruikt die ook op de server(van je host (=yomacho.host56.com)) draait 
        *en waar je website ook draait. Dan ontvangt de user een email in zijn inbox en niet in zijn junkbox. */
        $subject = 'Facebook Clone Account Activation';
        $message = '<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Facebook Clone Message</title></head><body style="margin:0px;
         font-family:Tahoma, Geneva, sans-serif;"><div style="padding:10px; background:#333; font-size:24px; color:#CCC;">
         <a href="http://www.yoursitename.com"><img src="http://www.yoursitename.com/images/logo.png" width="36" height="30" alt="Facebook Clone"
         style="border:none; float:left;"></a>yoursitename Account Activation</div><div style="padding:24px; font-size:17px;">Hello '.$u.',<br /><br />
         Click the link below to activate your account when ready:<br /><br /><a href="http://http://yomacho.host56.com/activation.php?id='.$uid.'&u='.$u.'&e='.
         $e.'&p='.$p_hash.'">Click here to activate your account now</a><br /><br />Login after successful activation using your:<br />* E-mail Address: 
         <b>'.$e.'</b></div></body></html>';
        $headers = "From: $fromn";
        $headers .= "MIME-Version: 1.0n";
        $headers .= "Content-type: text/html; charset=iso-8859-1n";
        
        //mail($to, $subject, $message, $headers);
        if(mail($to, $subject, $message, $headers)){
            echo "Email has been sent to<b> ".$to."</b>";
        }
        else{
            echo "Failed sending message to <b> ".$to."</b>.";
        }

        echo "signup_success";
        exit();

Ook vind ik het geen probleem als iemand me wilt helpen via Skype. Omdat ik dat ook waardeer :).
#ANONIEMwoensdag 13 augustus 2014 @ 19:50
quote:
0s.gif Op woensdag 13 augustus 2014 17:33 schreef superky het volgende:
Hoi ik heb een vraagje over een tutorial die ik ging volgen waarbij er de php mail() functie werd gebruikt. Hier is de link van de tutorial:

De php mail() functie werkt wel, omdat hij true als waarde terug geeft. Maar ik ontvang geen email als ik een account registreer. Dit had ik dus getest met de volgende stukje code:
[ code verwijderd ]

Maar ik weet nog steeds niet hoe ik dit probleem kan fixen. Kan iemand me misschien helpen?

Hier is de rest van mijn code die ik gebruik:
[ code verwijderd ]

Ook vind ik het geen probleem als iemand me wilt helpen via Skype. Omdat ik dat ook waardeer :).
Gebruik een externe library man. De ingebouwde mail functie zuigt. :P
Juicyhilwoensdag 13 augustus 2014 @ 19:52
quote:
1s.gif Op woensdag 13 augustus 2014 19:50 schreef robin007bond het volgende:

[..]

Gebruik een externe library man. De ingebouwde mail functie zuigt. :P
Meeste frameworks hebben daar alleen maar een wrapper omheen gebouwd. Dus dan blijft meneer hetzelfde issue uiteindelijk hebben...
Juicyhilwoensdag 13 augustus 2014 @ 19:54
quote:
0s.gif Op woensdag 13 augustus 2014 17:33 schreef superky het volgende:
Hoi ik heb een vraagje over een tutorial die ik ging volgen waarbij er de php mail() functie werd gebruikt. Hier is de link van de tutorial:

De php mail() functie werkt wel, omdat hij true als waarde terug geeft. Maar ik ontvang geen email als ik een account registreer. Dit had ik dus getest met de volgende stukje code:
[ code verwijderd ]

Maar ik weet nog steeds niet hoe ik dit probleem kan fixen. Kan iemand me misschien helpen?

Hier is de rest van mijn code die ik gebruik:
[ code verwijderd ]

Ook vind ik het geen probleem als iemand me wilt helpen via Skype. Omdat ik dat ook waardeer :).
Misschien die typo hier:

$headers = "From: $fromn";
Juicyhilwoensdag 13 augustus 2014 @ 19:56
En die headers moeten op aparte regels, zie: http://php.net/manual/en/function.mail.php

1
2
3
4
5
<?php
'From: webmaster@example.com' "\r\n" .
    
'Reply-To: webmaster@example.com' "\r\n" .
    
'X-Mailer: PHP/' phpversion();
?>
superkywoensdag 13 augustus 2014 @ 20:03
quote:
0s.gif Op woensdag 13 augustus 2014 19:54 schreef Juicyhil het volgende:

[..]

Misschien die typo hier:

$headers = "From: $fromn";
Dat komt niet door mij dat komt door de website hehe :P. Zie hier een screenshot van mijn tekst editor:

hiRyMxc.png

Bij die onderste twee regels staan ook zomaar een "n" achter geplakt haha, komt door de site dus.

Verder heb ik de headers ook aangepast maar alsnog krijg ik geen mailtje binnen :(. Zie hier de aanpassing:
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
// END FORM DATA ERROR HANDLING
        // Begin Insertion of data into the database
        // Hash the password and apply your own mysterious unique salt
        $cryptpass = crypt($p); //<-- dit wordt een 30 bit/characters cryptic hash
        include_once ("php_includes/randStrGen.php");
        $p_hash = randStrGen(20)."$cryptpass".randStrGen(20);
        // Add user info into the database table for the main site table
        $sql = "INSERT INTO users (username, email, password, gender, country, ip, signup, lastlogin, notescheck)       
                VALUES('$u','$e','$p_hash','$g','$c','$ip',now(),now(),now())";
        $query = mysqli_query($db_conx, $sql); //<-- Dit runt de query
        $uid = mysqli_insert_id($db_conx);
        // Establish their row in the useroptions table
        $sql = "INSERT INTO useroptions (id, username, background) VALUES ('$uid','$u','original')";
        $query = mysqli_query($db_conx, $sql);
        // Create directory(folder) to hold each user's files(pics, MP3s, etc.)
        if (!file_exists("user/$u")) { //Als de folder met de naam van de user niet bestaat, dan maken we die folder aan.
            mkdir("user/$u", 0755); //0755 zijn de folder permissies oftewel chmod
        }
        // Email the user their activation link
        $to = "$e";    
                 
        $from = "auto_responder@yomacho.host56.com"; 
        
        /*als je een email gebruikt die ook op de server(van je host (=yomacho.host56.com)) draait 
        *en waar je website ook draait. Dan ontvangt de user een email in zijn inbox en niet in zijn junkbox. */
        $subject = 'Facebook Clone Account Activation';
        $message = '<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Facebook Clone Message</title></head><body style="margin:0px;
         font-family:Tahoma, Geneva, sans-serif;"><div style="padding:10px; background:#333; font-size:24px; color:#CCC;">
         <a href="http://www.yoursitename.com"><img src="http://www.yoursitename.com/images/logo.png" width="36" height="30" alt="Facebook Clone"
         style="border:none; float:left;"></a>yoursitename Account Activation</div><div style="padding:24px; font-size:17px;">Hello '.$u.',<br /><br />
         Click the link below to activate your account when ready:<br /><br /><a href="http://http://yomacho.host56.com/activation.php?id='.$uid.'&u='.$u.'&e='.
         $e.'&p='.$p_hash.'">Click here to activate your account now</a><br /><br />Login after successful activation using your:<br />* E-mail Address: 
         <b>'.$e.'</b></div></body></html>';

                // Geef GELDIGE adressen op
        // Een korte benaming voor jouw website
        $website_naam = 'Facebook clone';
        // Jouw eigen geldige emailadres
        $eigen_emailadres = 'auto_responder@yomacho.host56.com';
        // Een geldig emailadres voor errors
        $error_emailadres = 'superkytoz@gmail.com';
        // De naam van de verzender
        $naam_verzender = 'superky';
        // Het geldige emailadres van de afzender
        $email_verzender = 'glimer_flash@hotmail.com';
        // Een geldig emailadres of helemaal leeg laten
        $bcc_emailadres = '';
        // HTML mail? True/False
        $html = true;

        // De headers samenstellen
        $headers     = 'From: ' . $website_naam . ' <' . $eigen_emailadres . '>' . "\r\n";
        $headers    .= 'Reply-To: ' . $naam_verzender . ' <' . $email_verzender . '>' . "\r\n";
        $headers    .= 'Return-Path: Mail-Error <' . $error_emailadres . '>' . "\r\n";
        $headers    .= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . "\r\n" : '';
        $headers    .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
        $headers    .= 'X-Priority: Normal' . "\r\n";
        $headers    .= ($html) ? 'MIME-Version: 1.0' . "\r\n" : '';
        $headers    .= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . "\r\n" : ''; 

        //$headers = "From: $from\n";
        //$headers .= "MIME-Version: 1.0\n";
        //$headers .= "Content-type: text/html; charset=iso-8859-1\n";
        
        //mail($to, $subject, $message, $headers);
        if(mail($to, $subject, $message, $headers)){
            echo "Email has been sent to<b> ".$to."</b>";
        }
        else{
            echo "Failed sending message to <b> ".$to."</b>.";
        }

        echo "signup_success";
        exit();
[\code]

 
Faux.woensdag 13 augustus 2014 @ 21:51
ik zou al die code gewoon dumpen eigenlijk
#ANONIEMwoensdag 13 augustus 2014 @ 22:04
quote:
14s.gif Op woensdag 13 augustus 2014 21:51 schreef Faux. het volgende:
ik zou al die code gewoon dumpen eigenlijk
Inderdaad, gewoon zelf iets maken.
slacker_nlwoensdag 13 augustus 2014 @ 22:37
Waarom zelf wat bedenken?http://swiftmailer.org/docs/messages.html
#ANONIEMwoensdag 13 augustus 2014 @ 22:48
quote:
^O^
#ANONIEMdonderdag 14 augustus 2014 @ 00:02
quote:
Het is wel handig om te weten hoe het op basis niveau werkt.
Alles laten voorkauwen is niet goed als je nog een beginner bent.
Sitethiefdonderdag 14 augustus 2014 @ 08:25
Bij ons in het bedrijf kregen we mail() functie alleen aan de praat als we ook een Return-Path aangaven.
Duurde even voor we daar achter waren gekomen...

1
2
$headers .= "Return-Path: <adminemail@yahoo.com>"."\n";
$headers .= "From: adminemail@yahoo.com <adminemail@yahoo.com>" . "\n";
slacker_nldonderdag 14 augustus 2014 @ 09:09
quote:
0s.gif Op donderdag 14 augustus 2014 00:02 schreef totalvamp het volgende:

[..]

Het is wel handig om te weten hoe het op basis niveau werkt.
Alles laten voorkauwen is niet goed als je nog een beginner bent.
Dingen hergebruiken, dat is uiteraard niet goed als developer.

Als je echt wilt weten hoe het werkt, dan ga je al telnettend mail versturen (en RFC's lezen).
remi1986donderdag 14 augustus 2014 @ 12:11
quote:
0s.gif Op woensdag 13 augustus 2014 17:33 schreef superky het volgende:
Hoi ik heb een vraagje over een tutorial die ik ging volgen waarbij er de php mail() functie werd gebruikt. Hier is de link van de tutorial:

De php mail() functie werkt wel, omdat hij true als waarde terug geeft. Maar ik ontvang geen email als ik een account registreer. Dit had ik dus getest met de volgende stukje code:
[ code verwijderd ]

Maar ik weet nog steeds niet hoe ik dit probleem kan fixen. Kan iemand me misschien helpen?

Hier is de rest van mijn code die ik gebruik:
[ code verwijderd ]

Ook vind ik het geen probleem als iemand me wilt helpen via Skype. Omdat ik dat ook waardeer :).
Werk je op een lokale server? Je moet wel een mailserver (Tomcat) hebben en die (goed) instellen


Verder misschien een spamfilter ofzo? Je knalt ook de hele phpversion() in de headers. Lijkt me een beetje overbodig.
superkydonderdag 14 augustus 2014 @ 14:39
quote:
0s.gif Op donderdag 14 augustus 2014 12:11 schreef remi1986 het volgende:

[..]

Werk je op een lokale server? Je moet wel een mailserver (Tomcat) hebben en die (goed) instellen

Verder misschien een spamfilter ofzo? Je knalt ook de hele phpversion() in de headers. Lijkt me een beetje overbodig.
Nee ik heb hem op een host staan bij 000webhost. Maar als er geen oplossing dan kan ik het beter laten. Ik ben nu toch die code aan het veranderen.
remi1986donderdag 14 augustus 2014 @ 16:18
quote:
0s.gif Op donderdag 14 augustus 2014 14:39 schreef superky het volgende:

[..]

Nee ik heb hem op een host staan bij 000webhost. Maar als er geen oplossing dan kan ik het beter laten. Ik ben nu toch die code aan het veranderen.
Swiftmailer was al gegeven. PHPMailer is ook nog een alternatief. Bespaart je een hoop ellende :)
slacker_nldonderdag 14 augustus 2014 @ 17:22
quote:
0s.gif Op donderdag 14 augustus 2014 12:11 schreef remi1986 het volgende:

[..]

Werk je op een lokale server? Je moet wel een mailserver (Tomcat) hebben en die (goed) instellen

Verder misschien een spamfilter ofzo? Je knalt ook de hele phpversion() in de headers. Lijkt me een beetje overbodig.
Tomcat? Apache tomcat bedoel je, das geen mailer. Verder wil je helemaal niet echt mailen in je tests. En als je dat doet wil je dat postfix oid je mail lokaal afvangt.
remi1986donderdag 14 augustus 2014 @ 17:35
quote:
0s.gif Op donderdag 14 augustus 2014 17:22 schreef slacker_nl het volgende:

[..]

Tomcat? Apache tomcat bedoel je, das geen mailer. Verder wil je helemaal niet echt mailen in je tests. En als je dat doet wil je dat postfix oid je mail lokaal afvangt.
Postfix ja klopt.

Naja of je iets wel of niet wil ga ik niet op in. Ik test iets liever een keer extra.
slacker_nldonderdag 14 augustus 2014 @ 17:43
quote:
0s.gif Op donderdag 14 augustus 2014 17:35 schreef remi1986 het volgende:
Postfix ja klopt.

Naja of je iets wel of niet wil ga ik niet op in. Ik test iets liever een keer extra.
Je gaat in je unit test niet echt mailen. Je integratietests zullen dat wel doen, maar in principe zal je in je testfiles gewoon een $mailer->send() uitvoeren en je wilt weten dat dat aangeroepen wordt, in je testfile zal je dan zelf een $mailer object hebben met dezelfde API en dan kan je daarna dingen doen als:

1
2
3
4
5
6
7
8
9
10
11
12
my $mailer = Mocked::Mailer->new();
{
    local *Mocked::Mailer::send = sub { return 1 };
    my $class = My::Class->new(mailer => $mailer);
    $class->do_mail_please();
}


    local *Mocked::Mailer::send = sub { die "I failed to send a mail" };
    my $class = My::Class->new(mailer => $mailer);
    dies_ok(sub { $class->do_mail_please(); }, qr/I failed to send a mail/, "Our mailer has died a horrible death");
}

Dat wil je weten, niet of je mailer wel werkt. Als je postfix verkeerd geconfigureerd is en je mail komt niet aan dan weet je nog niet of het aan je code ligt of aan je postfix. Das een andere test.
remi1986donderdag 14 augustus 2014 @ 17:56
quote:
0s.gif Op donderdag 14 augustus 2014 17:43 schreef slacker_nl het volgende:

[..]

Je gaat in je unit test niet echt mailen. Je integratietests zullen dat wel doen, maar in principe zal je in je testfiles gewoon een $mailer->send() uitvoeren en je wilt weten dat dat aangeroepen wordt, in je testfile zal je dan zelf een $mailer object hebben met dezelfde API en dan kan je daarna dingen doen als:
[ code verwijderd ]

Dat wil je weten, niet of je mailer wel werkt. Als je postfix verkeerd geconfigureerd is en je mail komt niet aan dan weet je nog niet of het aan je code ligt of aan je postfix. Das een andere test.
Oke, maar zo zei je dat niet.

En tevens heb je toch zo door of de fout in de code zit of niet. Kwestie van beetje kunnen debuggen.
slacker_nldonderdag 14 augustus 2014 @ 18:11
quote:
0s.gif Op donderdag 14 augustus 2014 17:56 schreef remi1986 het volgende:

[..]

Oke, maar zo zei je dat niet.

En tevens heb je toch zo door of de fout in de code zit of niet. Kwestie van beetje kunnen debuggen.
De fout zit altijd in je code, waar in je code is de vraag.. :)
remi1986donderdag 14 augustus 2014 @ 18:28
quote:
0s.gif Op donderdag 14 augustus 2014 18:11 schreef slacker_nl het volgende:

[..]

De fout zit altijd in je code, waar in je code is de vraag.. :)
prima, ga die discussie niet eens voeren ^O^
Lightdonderdag 14 augustus 2014 @ 18:30
quote:
0s.gif Op woensdag 13 augustus 2014 20:03 schreef superky het volgende:

Verder heb ik de headers ook aangepast maar alsnog krijg ik geen mailtje binnen :(. Zie hier de aanpassing:
[ code verwijderd ]

Headers moet je scheiden met \r\n, niet alleen \n (volgens de mailspecs). Verder is html mail lastiger dan plain text mail en zijn lange regels ook een mogelijk probleem. Dus in plaats van een kilometer aan html zou ik eerst eens een gewone korte regel als plain text versturen (en dus ook geen html headers). Als dat goed werkt, kun je stap voor stap verder gaan met complexere dingen proberen.

Mail() geeft true terug als het afleveren bij de verzendende server (die je hebt ingesteld in je php config) is gelukt. Da's vergelijkbaar met dat je iemand vraagt om een brief voor je te posten en hij reageert met "leg maar op m'n bureau". Al gaat die brief daarna rechtstreeks de papierversnipperaar in, je hebt hem wel kunnen neerleggen. En die verdere terugkoppeling krijg je niet.

Of, zoals al vaker is voorgesteld, het hele mailgebeuren uitbesteden aan iets als Swiftmailer.
cablegunmasterdonderdag 14 augustus 2014 @ 19:14
Iemand ervaring met codeigniter? :P
mstxdonderdag 14 augustus 2014 @ 20:11
quote:
0s.gif Op donderdag 14 augustus 2014 19:14 schreef cablegunmaster het volgende:
Iemand ervaring met codeigniter? :P
:Y
cablegunmasterdonderdag 14 augustus 2014 @ 20:13
quote:
1s.gif Op donderdag 14 augustus 2014 20:11 schreef mstx het volgende:

[..]

:Y
Korte vraag ik zat met een opvraging vraag, sql en alles hoe voer ik het in ? Daar bedoel ik mee met de complexe sql query's want je zit met een query schrijver? :? ( Inner joins ) en limits, waar de documentatie hierover te vinden is.
mstxdonderdag 14 augustus 2014 @ 20:29
quote:
0s.gif Op donderdag 14 augustus 2014 20:13 schreef cablegunmaster het volgende:

[..]

Korte vraag ik zat met een opvraging vraag, sql en alles hoe voer ik het in ? Daar bedoel ik mee met de complexe sql query's want je zit met een query schrijver? :? ( Inner joins ) en limits, waar de documentatie hierover te vinden is.
Dit? https://ellislab.com/code(...)e/active_record.html
Zelf nooit gebruikt, ik vind dat echt lelijk.
Djurreszaterdag 16 augustus 2014 @ 09:20
Hoi lieve kinders. Jullie zijn vast veel beter met PHP als dat ik ben, maar toch ben ik lekker aan het hobbyen en heb een probleem.

Ik wil graag een aantal PDF bestanden (notulen) op slaan in de blob van een mysql database. Nu lukt dat allemaal aardig, en kan ik dit ook weergeven. Hier zit het probleem niet in.

Maar op het moment dat ik het bestand uit de database wil halen, dan krijg ik een File ID does not exist error. Ik heb een stukkie code van een tutorial gejat uiteraard, want ik kan nog niet van scratch beginnen. Wel snap ik de code, maar hier kan ik eigenlijk helemaal niet uitkomen.

De daadwerkelijke error die ik krijg staat in de foutafhandeling van get_file.php op lijn 40.

Hieronder de files die met het systeem te maken hebben

notulenu.php (hier staat het upload form'pje, niet echt van belang aangezien dit werkt)
add_file.php (verwerken van verstuurde notulen)
files.php (wat is er opgeslagen in de db?)
get_file.php (ophalen van de notulen uit de database)

get_file.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
    
// Make sure an ID was passed
    
if(isset($_GET['id'])) {
    
// Get the ID
        
$id intval($_GET['id']);
     
        
// Make sure the ID is in fact a valid ID
        
if($id <= 0) {
            die(
'The ID is invalid!');
        }
        else {
            
// Connect to the database
            
$dbLink = new mysqli('127.0.0.1''''''');
            if(
mysqli_connect_errno()) {
                die(
"MySQL connection failed: "mysqli_connect_error());
            }
     
            
// Fetch the file information
            
$query "
                SELECT `mime`, `name`, `size`, `data`
                FROM `filejtc`
                WHERE `id` = 
{$id}";
            
$result $dbLink->query($query);
     
            if(
$result) {
                
// Make sure the result is valid
                
if($result->num_rows == 1) {
                
// Get the row
                    
$row mysqli_fetch_assoc($result);
     
                  
//print headers
                    
header("Content-Type: "$row['mime']);
                    
header("Content-Length: "$row['size']);
                    
header("Content-Disposition: attachment; filename="$row['name']);
    
                    
// Print data
                    
echo $row['data'];
                }
                else {
                    echo 
'Error! No image exists with that ID.';
                }
     
                
// Free the mysqli resources
                
@mysqli_free_result($result);
            }
            else {
                echo 
"Error! Query failed: <pre>{$dbLink->error}</pre>";
            }
            @
mysqli_close($dbLink);
        }
    }
    else {
        echo 
'Error! No ID was passed.';
    }
    
?>

files.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
    
// Connect to the database
    
$dbLink = new mysqli('127.0.0.1''''''');
    if(
mysqli_connect_errno()) {
        die(
"MySQL connection failed: "mysqli_connect_error());
    }
     
    
// Query for a list of all existing files
    
$sql 'SELECT `id`, `name`, `mime`, `size`, `created` FROM `filejtc`';
    
$result $dbLink->query($sql);
     
    
// Check if it was successfull
    
if($result) {
        
// Make sure there are some files in there
        
if($result->num_rows == 0) {
            echo 
'<p>Er zitten nog geen bestanden in de database!</p>';
        }
        else {
            
// Print the top of a table
            
echo '<table width="100%">
                    <tr>
                        <td><b>Naam:</b></td>
                        <td><b>Soort bestand:</b></td>
                        <td><b>Grootte (bytes)</b></td>
                        <td><b>Aangemaakt</b></td>
                        <td><b>&nbsp;</b></td>
                    </tr>'
;
     
            
// Print each file
            
while($row $result->fetch_assoc()) {
                echo 
"
                    <tr>
                        <td>
{$row['name']}</td>
                        <td>
{$row['mime']}</td>
                        <td>
{$row['size']}</td>
                        <td>
{$row['created']}</td>
                        <td><a href='get_file.php?id=
{$row['id']}'>Download</a></td>
                    </tr>"
;
            }
     
            
// Close table
            
echo '</table>';
        }
     
        
// Free the result
        
$result->free();
    }
    else
    {
        echo 
'Error! SQL query failed:';
        echo 
"<pre>{$dbLink->error}</pre>";
    }
     
    
// Close the mysql connection
    
$dbLink->close();
    
?>

add_file.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
42
43
44
45
46
47
48
49
50
51
52
53
    <?php
    
// Check if a file has been uploaded
    
if(isset($_FILES['uploaded_file'])) {
        
// Make sure the file was sent without errors
        
if($_FILES['uploaded_file']['error'] == 0) {
            
// Connect to the database
            
$dbLink = new mysqli('''''''');
            if(
mysqli_connect_errno()) {
                die(
"MySQL connection failed: "mysqli_connect_error());
            }
     
            
// Gather all required data
            
$name $dbLink->real_escape_string($_FILES['uploaded_file']['name']);
            
$mime $dbLink->real_escape_string($_FILES['uploaded_file']['type']);
            
$data $dbLink->real_escape_string(file_get_contents($_FILES  ['uploaded_file']['tmp_name']));
            
$size intval($_FILES['uploaded_file']['size']);
     
            
// Create the SQL query
            
$query "
                INSERT INTO `filejtc` (
                    `name`, `mime`, `size`, `data`, `created`
                )
                VALUES (
                    '
{$name}', '{$mime}', {$size}, '{$data}', NOW()
                )"
;
     
            
// Execute the query
            
$result $dbLink->query($query);
     
            
// Check if it was successfull
            
if($result) {
                echo 
'Succes! Het bestand is toegevoegt aan de database!';
            }
            else {
                echo 
'Error! Er is wat fout gegaan bij het invoegen aan de database! Probeer opnieuw!'
                   
"<pre>{$dbLink->error}</pre>";
            }
        }
        else {
            echo 
'Er is wat fout gegaan tijdens het uploaden, probeer opnieuw! '
               
'Error code: 'intval($_FILES['uploaded_file']['error']);
        }
     
        
// Close the mysql connection
        
$dbLink->close();
    }
    else {
        echo 
'Error! Er is geen bestand geselecteerd!';
    }
     
    
// Echo a link back to the main page
    
echo '<p>Klik <a href="../jtc/files.php">HIER</a> om verder te gaan!</p>';
    
?>


[ Bericht 9% gewijzigd door Djurres op 16-08-2014 10:28:41 ]
Lightzaterdag 16 augustus 2014 @ 09:39
Eerst een tip: gebruik de [php] en [/php] tags voor php, in plaats van [code] en [/code].
slacker_nlzaterdag 16 augustus 2014 @ 10:19
Tweede tip, als je died, dan hoef je geen else meer te gebruiken, dan heb je minder levels van indentation en das fijner om te lezen.
Derde tip, maak er functies van ipv losse files voor een functie. En maak er een klasse van.
Djurreszaterdag 16 augustus 2014 @ 10:20
Ga ik effe editten!
Djurreszaterdag 16 augustus 2014 @ 10:30
Heb t ge-edit, stond ook perongeluk 2x de zelfde code's :P

Maaru, even.. Heb het e.e.a geedit aan dit script, maar t meeste is copypaste werk.

Dat als ik die, dat ik geen else meer hoef te gebruiken ga ik even fixen, maar dat stukje functies, zou iemand daar mee me opweg kunnen helpen?
Rockfirezaterdag 16 augustus 2014 @ 10:36
Wat betreft de foutmelding lijkt me het vrij simpel: je vraagt een id op die niet in de database voorkomt. Je vraagt het als het goed is op zo'n manier op: http://www.website.nl/get_file.php?id=1 Komt dat id wel voor in je database? Zo niet dan is daar je probleem ;)
Djurreszaterdag 16 augustus 2014 @ 11:44
Zo ver was ik ook nog :p

Ja, het ID komt in de database voor, dat is het probleem.
Lightzaterdag 16 augustus 2014 @ 12:02
quote:
0s.gif Op zaterdag 16 augustus 2014 11:44 schreef Djurres het volgende:
Zo ver was ik ook nog :p

Ja, het ID komt in de database voor, dat is het probleem.
Dus de query slaagt en het aantal resultaten is niet 1. Hoeveel resultaten zijn er dan wel?
En weet je zeker dat je met de goede database verbindt, en dat er niet nog een andere database is waar dezelfde tabel in staat zonder het gezochte id?
Djurreszaterdag 16 augustus 2014 @ 12:51
quote:
0s.gif Op zaterdag 16 augustus 2014 12:02 schreef Light het volgende:

[..]

Dus de query slaagt en het aantal resultaten is niet 1. Hoeveel resultaten zijn er dan wel?
En weet je zeker dat je met de goede database verbindt, en dat er niet nog een andere database is waar dezelfde tabel in staat zonder het gezochte id?
Even korte uitleg, het systeem is voor een X aantal comissies binnen een vereniging. De bedoeling is dat men de notulen hier upload zodat alles openbaar word voor alle commissies binnen de vereniging.

Om deze niet door elkaar te halen, heb ik meerdere tables binnen 1 db aangemaakt, voor iedere commissie, een table.

Na gecontroleerd te hebben of dit klopt, klopt dit allemaal. Ik heb namelijk ook een scriptje die de laatste 3 geuploadde notulen laat zien. Heb in iedere afdeling even een apart bestandje geupload, en wat me opvalt is dat als er 1 bestandje in staat, dat ik hem kan downloaden, alleen word er een verkeerde extensie mee gegeven. (zo ziet ie .doc als een .exe bestand oid.) Bij een .txt. of .pdf is er niets aan de hand.

Op het moment dat ik MEERDERE bestanden in de db heb staan kan hij de id's niet meer terug vinden, en krijg ik dus geen download.
#ANONIEMzaterdag 16 augustus 2014 @ 16:08
quote:
0s.gif Op zaterdag 16 augustus 2014 12:51 schreef Djurres het volgende:

[..]

Even korte uitleg, het systeem is voor een X aantal comissies binnen een vereniging. De bedoeling is dat men de notulen hier upload zodat alles openbaar word voor alle commissies binnen de vereniging.

Om deze niet door elkaar te halen, heb ik meerdere tables binnen 1 db aangemaakt, voor iedere commissie, een table.

Na gecontroleerd te hebben of dit klopt, klopt dit allemaal. Ik heb namelijk ook een scriptje die de laatste 3 geuploadde notulen laat zien. Heb in iedere afdeling even een apart bestandje geupload, en wat me opvalt is dat als er 1 bestandje in staat, dat ik hem kan downloaden, alleen word er een verkeerde extensie mee gegeven. (zo ziet ie .doc als een .exe bestand oid.) Bij een .txt. of .pdf is er niets aan de hand.

Op het moment dat ik MEERDERE bestanden in de db heb staan kan hij de id's niet meer terug vinden, en krijg ik dus geen download.
Klinkt alsof je het niet goed hebt opgelost. 3 aparte tabellen is sowieso niet nodig. Je kunt afdelingen makkelijk scheiden aan de hand van een id.

Voorderest lastog te helpen zonder code ;)
Lightzaterdag 16 augustus 2014 @ 17:35
quote:
1s.gif Op zaterdag 16 augustus 2014 16:08 schreef totalvamp het volgende:

[..]

Klinkt alsof je het niet goed hebt opgelost. 3 aparte tabellen is sowieso niet nodig. Je kunt afdelingen makkelijk scheiden aan de hand van een id.

Voorderest lastog te helpen zonder code ;)
Dat. En bestanden opslaan in de database is eigenlijk nooit een goed idee. Bestanden kunnen prima door een file system worden opgeslagen (die is daarvoor), zolang je het maar buiten de webroot doet. Dan hoef je in de db alleen op te slaan wat je als naam hebt gebruikt. De locatie is iets dat gewoon geconfigureerd kan worden en in code hoort.
Djurreszaterdag 16 augustus 2014 @ 17:38
quote:
0s.gif Op zaterdag 16 augustus 2014 17:35 schreef Light het volgende:

[..]

Dat. En bestanden opslaan in de database is eigenlijk nooit een goed idee. Bestanden kunnen prima door een file system worden opgeslagen (die is daarvoor), zolang je het maar buiten de webroot doet. Dan hoef je in de db alleen op te slaan wat je als naam hebt gebruikt. De locatie is iets dat gewoon geconfigureerd kan worden en in code hoort.
En dat is het probleem, ik heb nergens geen ruimte buiten de webroot, dus vandaar in de DB. Nu komen er geen spannende dingen in te staan maar het moet natuurlijk wel veilig blijven,

Code staat een pagina terug ;)

quote:
1s.gif Op zaterdag 16 augustus 2014 16:08 schreef totalvamp het volgende:

[..]

Klinkt alsof je het niet goed hebt opgelost. 3 aparte tabellen is sowieso niet nodig. Je kunt afdelingen makkelijk scheiden aan de hand van een id.

Voorderest lastog te helpen zonder code ;)
Code staat een pagina hiervoor ;)
amvrosioszaterdag 16 augustus 2014 @ 18:48
quote:
0s.gif Op zaterdag 16 augustus 2014 17:38 schreef Djurres het volgende:

[..]

En dat is het probleem, ik heb nergens geen ruimte buiten de webroot, dus vandaar in de DB. Nu komen er geen spannende dingen in te staan maar het moet natuurlijk wel veilig blijven,

Code staat een pagina terug ;)

[..]

Code staat een pagina hiervoor ;)
zelfs shared-hosting heeft vaak een public_html ( achtige ), met daaronder een mapje waar je domein staat, hier kun je best een mapje in donderen :-)

Verder kun je bijvoorbeeld afbeeldingen die toch al publiekelijk beschikbaar moeten zijn natuurlijk gewoon in de public folders kieperen.

let wel, dat je je configuratie bestanden niet zomaar van buiten beschikbaar maakt.

je zou even kunnen kijken naar htaccess, daarmee zou je eventueel ook het probleem van folders op kunnen lossen door ze te 'verbieden' ;-)
Djurreszondag 17 augustus 2014 @ 11:15
quote:
7s.gif Op zaterdag 16 augustus 2014 18:48 schreef amvrosios het volgende:

[..]

zelfs shared-hosting heeft vaak een public_html ( achtige ), met daaronder een mapje waar je domein staat, hier kun je best een mapje in donderen :-)

Verder kun je bijvoorbeeld afbeeldingen die toch al publiekelijk beschikbaar moeten zijn natuurlijk gewoon in de public folders kieperen.

let wel, dat je je configuratie bestanden niet zomaar van buiten beschikbaar maakt.

je zou even kunnen kijken naar htaccess, daarmee zou je eventueel ook het probleem van folders op kunnen lossen door ze te 'verbieden' ;-)
Ah, okay.

Maar, kan je me uitleggen waarom je dit beter niet in een database kan zetten? Hack gevoelig?

Ik heb namelijk cookiestealing, xss geprobeerd, en
mysql injection geprobeert op onderandere de get_page?id=4 enzo, heb nergens een leak of gat gevonden..
remi1986zondag 17 augustus 2014 @ 11:48
quote:
0s.gif Op zondag 17 augustus 2014 11:15 schreef Djurres het volgende:

[..]

Ah, okay.

Maar, kan je me uitleggen waarom je dit beter niet in een database kan zetten? Hack gevoelig?

Ik heb namelijk cookiestealing, xss geprobeerd, en
mysql injection geprobeert op onderandere de get_page?id=4 enzo, heb nergens een leak of gat gevonden..
1
2
3
4
5
6
7
<?php
$query 
"
                SELECT `mime`, `name`, `size`, `data`
                FROM `filejtc`
                WHERE `id` = 
{$id}";
           
?>

Ik denk dat de fout hierin zit. Of doet die query functie iets met die {} rondom de variabele?


En verder wordt het id niet escaped. SQL injectie gevoelig dus.
Rockfirezondag 17 augustus 2014 @ 12:07
quote:
0s.gif Op zondag 17 augustus 2014 11:48 schreef remi1986 het volgende:

[..]
[ code verwijderd ]

Ik denk dat de fout hierin zit. Of doet die query functie iets met die {} rondom de variabele?

En verder wordt het id niet escaped. SQL injectie gevoelig dus.
Die {} kun je gebruiken om variabelen op te nemen in een string. Voor $id is het op zich niet nodig maar als je bijvoorbeeld $object->id wilt opnemen in een string dan kun je dat doen door er accolades omheen te zetten {$object->id} in de string.

En wat het escapen van de id betreft, eerder in de code staat dit:
1
2
3
<?php
$id 
intval($_GET['id']);
?>
Aethermaandag 18 augustus 2014 @ 10:17
Heeft iemand hier MySQL partitioning gebruikt voor grotere datasets?

Ik wil ongeveer 11 GB aan gegevens per jaar per gebruiker opslaan, na deze periode worden ze verwijderd. Is het ontbreken van FKs een groot nadeel in de praktijk wanneer partitioning wordt gebruikt?
Djurresdinsdag 19 augustus 2014 @ 19:47
laat maar! Heb het helemaal zelf opgelost :D

[ Bericht 97% gewijzigd door Djurres op 19-08-2014 21:08:25 ]
amvrosiosdinsdag 19 augustus 2014 @ 21:22
quote:
0s.gif Op zondag 17 augustus 2014 11:15 schreef Djurres het volgende:

[..]

Ah, okay.

Maar, kan je me uitleggen waarom je dit beter niet in een database kan zetten? Hack gevoelig?

Ik heb namelijk cookiestealing, xss geprobeerd, en
mysql injection geprobeert op onderandere de get_page?id=4 enzo, heb nergens een leak of gat gevonden..
je wilt configuratie bestanden simpelweg niet in het public gedeelte hebben staan omdat je maar een keer pech hoeft te hebben en de hele wereld heeft je configuratie in handen.

het uitdelen van bestanden via een database is simpelweg een belachelijk idee omdat een database daar niet op gebouwd is ( sterker nog, het wordt er alleen maar kutter op )
Faux.dinsdag 19 augustus 2014 @ 22:14
quote:
0s.gif Op dinsdag 19 augustus 2014 19:47 schreef Djurres het volgende:
laat maar! Heb het helemaal zelf opgelost :D
Laat je post staan dan, zodat anderen ervan kunnen leren
#ANONIEMdinsdag 19 augustus 2014 @ 22:31
quote:
18s.gif Op dinsdag 19 augustus 2014 22:14 schreef Faux. het volgende:

[..]

Laat je post staan dan, zodat anderen ervan kunnen leren
Dit is zo hinderlijk

Heb je bv. Een niet heel bekend probleem, ga je googlen en dan is het eerste resultaat een betaald forum met "experts" en het tweede resultaat is "edit: Nevermind, got it working"

:(
TwenteFCdinsdag 19 augustus 2014 @ 23:41
quote:
0s.gif Op dinsdag 19 augustus 2014 19:47 schreef Djurres het volgende:
laat maar! Heb het helemaal zelf opgelost :D
:P je configuratie veranderd naar getenv('geheimding') en deze environment variabelen buiten je document root geset?
Djurreswoensdag 20 augustus 2014 @ 12:33
Sorrysorrysorry, was een oplossing betreft een andere vraag, had wat problemen met checkboxes en de mail functie, bovenstaand probleem is nog niet opgelost maar had dm van iemand gekregen en dat gaat k ff proberen :)
TwenteFCwoensdag 20 augustus 2014 @ 20:01
Ik ben even benieuwd hoe jullie het volgende probleem zouden tackelen.
Het gaat om een zoekfunctie, waarbij synoniemen van bepaalde woorden ook gematched moeten worden.

Voorbeeld;

Een gebruiker zoekt op "appel", alle soorten gerechten waarbij appel in het Naam veld voorkomt moeten getoond worden.

Echter is er een tabel waarin staat dat er de volgende synoniemen zijn voor het woord appel: "banaan" en "peer".

Wanneer een gebruiker dus zoekt op bijv. "peer" moeten ook de resultaten terug komen die een gebruiker zou krijgen wanneer deze op "appel" had gezocht.
#ANONIEMwoensdag 20 augustus 2014 @ 22:31
quote:
19s.gif Op woensdag 20 augustus 2014 20:01 schreef TwenteFC het volgende:
Ik ben even benieuwd hoe jullie het volgende probleem zouden tackelen.
Het gaat om een zoekfunctie, waarbij synoniemen van bepaalde woorden ook gematched moeten worden.

Voorbeeld;

Een gebruiker zoekt op "appel", alle soorten gerechten waarbij appel in het Naam veld voorkomt moeten getoond worden.

Echter is er een tabel waarin staat dat er de volgende synoniemen zijn voor het woord appel: "banaan" en "peer".

Wanneer een gebruiker dus zoekt op bijv. "peer" moeten ook de resultaten terug komen die een gebruiker zou krijgen wanneer deze op "appel" had gezocht.
Kan het ook zijn dat hetzelfde woord meerdere synoniemen kent? Dat "peer" bijvoorbeeld ook iets kan zijn uit een hele andere context en dus niet bij de soorten fruit hoort?

[ Bericht 1% gewijzigd door #ANONIEM op 20-08-2014 22:34:00 ]
TwenteFCwoensdag 20 augustus 2014 @ 22:54
quote:
0s.gif Op woensdag 20 augustus 2014 22:31 schreef robin007bond het volgende:

[..]

Kan het ook zijn dat hetzelfde woord meerdere synoniemen kent? Dat "peer" bijvoorbeeld ook iets kan zijn uit een hele andere context en dus niet bij de soorten fruit hoort?
Ja, ook dat nog.
#ANONIEMwoensdag 20 augustus 2014 @ 23:25
quote:
19s.gif Op woensdag 20 augustus 2014 22:54 schreef TwenteFC het volgende:

[..]

Ja, ook dat nog.
Misschien zeg ik iets stoms hoor.

Maar kan je niet een aparte tabel maken met synoniemen en met allemaal foreign keys van dingen die synoniem van elkaar zijn binnen een bepaalde context?

Dat je dus een row hebt met appel, banaan en peer (als dat synoniemen zouden zijn natuurlijk ;) ) en dan met een join legt naar de synoniemen zodra de zoekopdracht wordt gedaan?
TwenteFCwoensdag 20 augustus 2014 @ 23:48
quote:
0s.gif Op woensdag 20 augustus 2014 23:25 schreef robin007bond het volgende:

[..]

Misschien zeg ik iets stoms hoor.

Maar kan je niet een aparte tabel maken met synoniemen en met allemaal foreign keys van dingen die synoniem van elkaar zijn binnen een bepaalde context?

Dat je dus een row hebt met appel, banaan en peer (als dat synoniemen zouden zijn natuurlijk ;) ) en dan met een join legt naar de synoniemen zodra de zoekopdracht wordt gedaan?
Ik volg je mischien niet helemaal, maar wat ik bedoel; een gebruiker doet een zoekopdracht via een tekstveld, hier vult hij appel in.

Vervolgens submit hij deze, en moet er een query uitgevoerd worden waar ik op dat moment alleen de waarde "appel" heb.

Heel simpel gezegd krijg je dan zo iets SELECT * FROM gerechten WHERE naam LIKE '%appel%'

Dus ook appelmoes wordt getoond, maar dit moet ook perenmoes zijn omdat het ( in dit voorbeeld dan ) een synoniem is.

Jouw suggestie is dus om een aparte tabel te hebben waarbij je zo iets krijgt:

naam - synoniem
appel - peer
appel - banaan
appel - etcetc

maar hoe koppel ik die 3 rijen dan weer efficient terug naar de gerechten tabel, zodat hij ook hier op gaat zoeken.

Ik had zelf het idee om tijdens het toevoegen van die synoniemen of gerechten al alle matchende rijen op te zoeken, en alle koppelingen al direct opslaan zodat ik hier op kan joinen wanneer een gebruiker zoekt.

Maar dat is naar mijn idee ook wel een beetje lomp.
#ANONIEMzondag 24 augustus 2014 @ 14:16
Hallo,

Ik heb een website en lokaal werkt die prima. Als ik 'm upload naar m'n hostingprovider, dan krijg ik echter een foutmelding als ik één bepaalde functie gebruik:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<br />
<b>Fatal error</b>:  Uncaught exception 'MissingException' with message 'Unable to load 3dlbiyswos7e8zi832k0.' in /<public_html>/control/autoload.php:17
Stack trace:
#0 [internal function]: __autoload('3dlbiyswos7e8zi...')
#1 /<public_html>/control/edit.php(191): call_user_func(Array)
#2 [internal function]: ctrl_Edit-&gt;Add(Array)
#3 /<public_html>/index.php(73): call_user_func(Array, Array)
#4 /<public_html>/index.php(79): Main-&gt;Run()
#5 {main}

Next exception 'MissingException' with message 'Unable to load 3dlbiyswos7e8zi832k0.' in /<public_html>/control/autoload.php:17
Stack trace:
#0 /<public_html>/control/edit.php(0): __autoload('3dlbiyswos7e8zi...')
#1 [internal function]: ctrl_Edit-&gt;Add(Array)
#2 /<public_html>/index.php(73): call_user_func(Array, Array)
#3 /<public_ht in <b>/<public_html>/control/autoload.php</b> on line <b>17</b><br />
Iemand enig idee waar ik het probleem moet zoeken? Wat heeft die rare code als argument van __autoload() te betekenen? Die class bestaat natuurlijk niet.

[ Bericht 0% gewijzigd door #ANONIEM op 24-08-2014 14:18:15 ]
#ANONIEMzondag 24 augustus 2014 @ 14:22
O ja, het gaat dus fout bij het volgende stukje code:
1
2
3
4
5
6
7
<?php
        
foreach ($childclasses as $classbase) {
            
$classname 'tpl_' $classbase;
            
$name call_user_func(array($classname'GetName'));
            <
andere dingen>
        }
?>
Bij die laatste regel regel met "$name = ..." ontstaat dus een aanroep naar __autoload met die schijnbaar totaal willekeurige letters en cijfers als class-naam.

Iemand enig idee waarom? :? :?

[ Bericht 7% gewijzigd door #ANONIEM op 24-08-2014 14:30:16 ]
Boze_Appelzondag 24 augustus 2014 @ 14:27
Je sluit je foreach niet eens af?
#ANONIEMzondag 24 augustus 2014 @ 14:28
Ja natuurlijk wel.
#ANONIEMzondag 24 augustus 2014 @ 15:55
Ergens wordt die waarde aangeropen, maar het bestand bestaat niet en dat geeft een error.
Welk systeem/framework maak je gebruik van?
remi1986zondag 24 augustus 2014 @ 16:12
quote:
0s.gif Op zondag 24 augustus 2014 14:22 schreef Igen het volgende:
O ja, het gaat dus fout bij het volgende stukje code:
[ code verwijderd ]

Bij die laatste regel regel met "$name = ..." ontstaat dus een aanroep naar __autoload met die schijnbaar totaal willekeurige letters en cijfers als class-naam.

Iemand enig idee waarom? :? :?
omdat de functie call_user_func eerst de callback mee moet krijgen en als tweede argument de parameter. Nu doe je het andersom

mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )

1
2
3
4
5
6
7
8
9
10
<?php
error_reporting
(E_ALL);
function 
increment(&$var)
{
    
$var++;
}

$a 0;
call_user_func('increment'$a);
?>
Monolithzondag 24 augustus 2014 @ 16:24
quote:
0s.gif Op zondag 24 augustus 2014 16:12 schreef remi1986 het volgende:

[..]

omdat de functie call_user_func eerst de callback mee moet krijgen en als tweede argument de parameter. Nu doe je het andersom

mixed call_user_func ( callable $callback [, mixed $parameter [, mixed $... ]] )
[ code verwijderd ]

Nee hoor, volgens mij wil hij als callback GetName van de betreffende childclass aanroepen. Op zich is het valide code, maar wellicht is GetName niet static.
#ANONIEMzondag 24 augustus 2014 @ 16:46
quote:
1s.gif Op zondag 24 augustus 2014 16:24 schreef Monolith het volgende:

[..]

Nee hoor, volgens mij wil hij als callback GetName van de betreffende childclass aanroepen. Op zich is het valide code, maar wellicht is GetName niet static.
Heb ik inderdaad op dit moment niet als static gedefinieerd. Ga uitproberen of het daaraan ligt. :)
#ANONIEMzondag 24 augustus 2014 @ 16:57
Ja, dat was de fout hoor! Bedankt!
Monolithzondag 24 augustus 2014 @ 17:44
quote:
0s.gif Op zondag 24 augustus 2014 16:57 schreef Igen het volgende:
Ja, dat was de fout hoor! Bedankt!
Geen probleem. Vraag me alleen wel af wat je probeert te bereiken, want erg logisch ziet het er niet uit. :P
#ANONIEMzondag 24 augustus 2014 @ 17:52
quote:
1s.gif Op zondag 24 augustus 2014 17:44 schreef Monolith het volgende:

[..]

Geen probleem. Vraag me alleen wel af wat je probeert te bereiken, want erg logisch ziet het er niet uit. :P
Heb voor m'n persoonlijke website een simpele CMS gemaakt, als programmeeroefeningetje. De data bestaat uit een boomstructuur van pagina's, subpagina's, koppen, alinea's, plaatjesgalerijen, losse plaatjes, embedded youtube-filmpjes enz. Het stukje code wat ik liet zien, maakt een menuutje waar je kan kiezen uit de geldige soorten inhoud die je op een bepaald punt kan invoegen (een plaatje of filmpje bijv. alleen in een galerij, etc.).
1
2
3
4
5
6
7
8
9
10
11
<?php
        $mod_parent 
$this->db->LoadElement($parent_id);
        
$childclasses $mod_parent->FindPossibleChildClasses($this->options);
        foreach (
$childclasses as $classbase) {
            
$classname 'tpl_' $classbase;
            
$name call_user_func(array($classname'GetName'));
            
$screenname call_user_func(array($classname'TypeName'));
            
$output .= '<option value="' $name '">' $screenname
                     
'</option>';
        }
?>
(Ik geloof dat het niet netjes is om HTML direct in de code te genereren, maar dat is weer een ander verhaal)

[ Bericht 0% gewijzigd door #ANONIEM op 24-08-2014 17:57:42 ]
Monolithzondag 24 augustus 2014 @ 18:02
quote:
0s.gif Op zondag 24 augustus 2014 17:52 schreef Igen het volgende:

[..]

Heb voor m'n persoonlijke website een simpele CMS gemaakt, als programmeeroefeningetje. De data bestaat uit een boomstructuur van pagina's, subpagina's, koppen, alinea's, plaatjesgalerijen, losse plaatjes, embedded youtube-filmpjes enz. Het stukje code wat ik liet zien, maakt een menuutje waar je kan kiezen uit de geldige soorten inhoud die je op een bepaald punt kan invoegen (een plaatje of filmpje bijv. alleen in een galerij, etc.).
[ code verwijderd ]

(Ik geloof dat het niet netjes is om HTML direct in de code te genereren, maar dat is weer een ander verhaal)
Maar al die classes hebben dus een statig GetName die een bepaalde naam teruggeeft of hoe moet ik het zien?
remi1986zondag 24 augustus 2014 @ 18:18
Wat een vage constructies je hier soms ook tegenkomt :')

Eerst uit de database een rijtje namen halen, en dan vervolgens aan de class vragen van "hee hoe heet jij?"
#ANONIEMzondag 24 augustus 2014 @ 18:24
quote:
0s.gif Op zondag 24 augustus 2014 18:18 schreef remi1986 het volgende:
Wat een vage constructies je hier soms ook tegenkomt :')

Eerst uit de database een rijtje namen halen, en dan vervolgens aan de class vragen van "hee hoe heet jij?"
Ja ik snap hem ook niet echt hoevaak ik er ook naar kijk xD
Je hebt de classname, roept de class aan en dan vraag je zijn naam xD Logica!
#ANONIEMzondag 24 augustus 2014 @ 18:26
quote:
1s.gif Op zondag 24 augustus 2014 18:02 schreef Monolith het volgende:

[..]

Maar al die classes hebben dus een statig GetName die een bepaalde naam teruggeeft of hoe moet ik het zien?
Ja.
quote:
0s.gif Op zondag 24 augustus 2014 18:18 schreef remi1986 het volgende:
Wat een vage constructies je hier soms ook tegenkomt :')

Eerst uit de database een rijtje namen halen, en dan vervolgens aan de class vragen van "hee hoe heet jij?"
Klopt. Ik wil niet dat de eindgebruiker rechtstreeks in de HTML-code kan zien hoe de klassen intern heten.
Monolithzondag 24 augustus 2014 @ 18:38
quote:
0s.gif Op zondag 24 augustus 2014 18:26 schreef Igen het volgende:

[..]

Ja.

[..]

Klopt. Ik wil niet dat de eindgebruiker rechtstreeks in de HTML-code kan zien hoe de klassen intern heten.
Daar heeft de gebruiker niet zo veel aan hoor.

Dit soort bijzondere constructies zijn ook echt schering en inslag in PHP. :')
#ANONIEMzondag 24 augustus 2014 @ 18:49
quote:
1s.gif Op zondag 24 augustus 2014 18:38 schreef Monolith het volgende:

[..]

Daar heeft de gebruiker niet zo veel aan hoor.

Dit soort bijzondere constructies zijn ook echt schering en inslag in PHP. :')
Ik vond het netjes om het zo te abstraheren. Maar misschien heb je gelijk en is het overbodig. Niet dat de code er veel anders van zou worden, op z'n simpelst zou het zoiets worden:
1
2
3
4
5
6
7
<?php
        
foreach ($childclasses as $classname) {
            
$screenname call_user_func(array($classname'TypeName'));
            
$output .= '<option value="' $classname '">' $screenname
                     
'</option>';
        }
?>
Gebruikt nog steeds dezelfde constructies. Welke constructie vind je eigenlijk zo "bijzonder"?

[ Bericht 8% gewijzigd door #ANONIEM op 24-08-2014 18:50:04 ]
Monolithzondag 24 augustus 2014 @ 19:00
quote:
0s.gif Op zondag 24 augustus 2014 18:49 schreef Igen het volgende:

[..]

Ik vond het netjes om het zo te abstraheren. Maar misschien heb je gelijk en is het overbodig. Niet dat de code er veel anders van zou worden, op z'n simpelst zou het zoiets worden:
[ code verwijderd ]

Gebruikt nog steeds dezelfde constructies. Welke constructie vind je eigenlijk zo "bijzonder"?
De hele manier waarop je data in de database en de code zelf verwoven lijken te zijn.
Sla dan dit soort informatie in zijn geheel op in de database.
Sowieso heb ik het idee dat hier weer een brij aan inheritance ipv composition wordt gebruikt.
#ANONIEMzondag 24 augustus 2014 @ 19:12
quote:
1s.gif Op zondag 24 augustus 2014 19:00 schreef Monolith het volgende:

[..]

De hele manier waarop je data in de database en de code zelf verwoven lijken te zijn.
Sla dan dit soort informatie in zijn geheel op in de database.
Database? Alles wat ik hier heb gepost heeft niks met databases te maken. Ik ga toch zeker niet met een database verbinding maken om te kijken welke classes mijn broncode kent.
quote:
Sowieso heb ik het idee dat hier weer een brij aan inheritance ipv composition wordt gebruikt.
Is er iets mis met inheritance?
#ANONIEMzondag 24 augustus 2014 @ 19:23
Het hele basisidee van mijn programma is, dat de programmakern alleen maar een abstracte boom van elementen (als interface / abstracte klasse) kent en dat die elementen zelf weten hoe ze zichzelf moeten weergeven. En dat je voor een nieuw soort pagina-inhoud dus alleen een nieuwe interface-implementatie / afgeleide klasse hoeft te maken.

Is dat verkeerd of ouderwets?

[ Bericht 2% gewijzigd door #ANONIEM op 24-08-2014 19:26:53 ]
remi1986zondag 24 augustus 2014 @ 19:50
quote:
0s.gif Op zondag 24 augustus 2014 18:49 schreef Igen het volgende:

[..]

Ik vond het netjes om het zo te abstraheren. Maar misschien heb je gelijk en is het overbodig. Niet dat de code er veel anders van zou worden, op z'n simpelst zou het zoiets worden:
[ code verwijderd ]

Gebruikt nog steeds dezelfde constructies. Welke constructie vind je eigenlijk zo "bijzonder"?
het idee van classes is dat je er objecten van maakt. Een getname functie zou dan logischerwijs betekenen dat je de naam van het desbetreffende object krijgt, en niet de naam van de class.

Waarom zet je die screenname niet in de database erbij dan? Scheelt je loopen door al die classes en hoef je ook niet in elke class die functie aan te maken.
#ANONIEMzondag 24 augustus 2014 @ 20:11
quote:
0s.gif Op zondag 24 augustus 2014 19:50 schreef remi1986 het volgende:

[..]

het idee van classes is dat je er objecten van maakt. Een getname functie zou dan logischerwijs betekenen dat je de naam van het desbetreffende object krijgt, en niet de naam van de class.
De naam van de functie is misschien niet zo handig gekozen.
quote:
Waarom zet je die screenname niet in de database erbij dan? Scheelt je loopen door al die classes en hoef je ook niet in elke class die functie aan te maken.
Ik heb graag dat eigenschappen van een klasse in die klasse zelf staan en niet ergens in een database.

Edit: Sowieso, de database is alleen voor data. Het is geen plek om stukjes broncode op te slaan. De broncode moet uit zichzelf een minimale benodigde database kunnen aanmaken en initialiseren.

[ Bericht 3% gewijzigd door #ANONIEM op 24-08-2014 20:23:08 ]
Aetherdinsdag 26 augustus 2014 @ 10:38
phred-logo.png

Phred is an open-source initiative aimed at providing PHP with a consistent, completely object-oriented coding standard that enjoys a comfortable API for creating modern-day web applications with native support for Unicode, with components for internationalization and localization, clear-cut fundamental data types focused on performance and reliability, enhanced testing and debugging, and other features.

[…]

PHP 6 or Uniphant vs. Elecorn
Most of the hopes for a better PHP were being put in PHP 6 announced around 2006. However, PHP 6 became more like a mythical creature over the time, a creature that no one has ever seen. The new features that were planned for PHP, including the highly anticipated Unicode support, had never got released under PHP 6 label. Instead, the PHP 6 development branch was discontinued and only some of the features were backported into the 5.x versions afterwards, still without built-in Unicode. There was no beta or even alpha version of PHP 6.

One of the main reasons behind PHP 6 getting abandoned was a disagreement inside the development team as to which character encoding would serve best for storing and processing Unicode strings. Despite of the fact that the team then picked UTF-16 as the internal encoding to be used for Unicode, the development ran out of steam and eventually came to a halt. This happened not only because the choice of UTF-16 turned out to be suboptimal, but also because of the immense body of work that was required to be done for the PHP's core and all the extensions by the developers becoming less and less enthusiastic with the direction that was chosen and due to other issues. Andrei Zmievski, who was the head of the PHP 6 project, later admitted that he would probably choose UTF-8 over UTF-16 if it was possible to start over.

[...]

こんにちは, Phred
The idea of Phred is resonating with the principle of separation of concerns. Let the PHP's core contributors remain focused on the language's underpinnings and further improve the PHP's engine to make it even faster, effectively providing a high-performance foundation upon which a consistent and completely object-oriented coding standard can be implemented by PHP developers themselves.

By extending PHP 7, which is now twice as fast, Phred converts PHP into an up-to-date and clean standard advantageous for creating sophisticated web sites and applications to be used by people all over the world, while keeping performance at a high level. Fortunately, the OOP-related features that are already present in PHP 5.6 and PHP 7 have made this possible. And not to forget the vital OOP infusions into the language that were faithfully made by some of its core contributors, most notably Nikita Popov.
webbyplusdinsdag 26 augustus 2014 @ 13:52
Hallo,

Ik wil graag een online repository maken voor al mijn ontvangen outlook-mailtjes.
De bedoeling is dat ik mailtjes upload en dat ik een PHP-script heb dat de eigenschappen van de messages uitleest(zoals body, titel, afzender, etc) en in een mysql database zet.
Het upload/mysql stuk gaat me lukken. Ik vraag me alleen af of het mogelijk is om van een .msg file de eigenschappen uit te lezen?
Iemand ervaring mee?

Thx,
Webster
Monolithdinsdag 26 augustus 2014 @ 14:07
quote:
0s.gif Op zondag 24 augustus 2014 19:12 schreef Igen het volgende:

[..]

Database? Alles wat ik hier heb gepost heeft niks met databases te maken. Ik ga toch zeker niet met een database verbinding maken om te kijken welke classes mijn broncode kent.
Als ik onderstaande code lees dan ga ik er een beetje vanuit dat $this->db->LoadElement iets uit een database laadt en wellicht FindPossibleChildClasses ook nog database interactie bevat. Daarmee leek je dan je inheritance tree ook in je database te hebben staan.

1
2
3
4
5
<?php
        $mod_parent 
$this->db->LoadElement($parent_id);
        
$childclasses $mod_parent->FindPossibleChildClasses($this->options);

?>

quote:
[..]

Is er iets mis met inheritance?
Er is an sich helemaal niets mis met inheritance. Echter lijken veel mensen het onderscheid tussen 'IS-A' and 'HAS-A' relaties niet zo goed te snappen en dat is toch wel een basisconceptje in OOP. Ik kreeg een beetje de indruk dat je in je code b.v. titels of plaatjes b.v. subclasses van pagina's waren.

quote:
Het hele basisidee van mijn programma is, dat de programmakern alleen maar een abstracte boom van elementen (als interface / abstracte klasse) kent en dat die elementen zelf weten hoe ze zichzelf moeten weergeven. En dat je voor een nieuw soort pagina-inhoud dus alleen een nieuwe interface-implementatie / afgeleide klasse hoeft te maken.
Op zich is het niet vreemd om interfaces (of abstract class, maar die beperk je het liefst tot een minimum m.i.) te hebben.
daar zou je dan bijvoorbeeld een getName(); in definiëren.
Echter, je hebt nu de methode static gemaakt. PHP heeft daar in tegenstelling tot bijvoorbeeld C# of Java niet zo heel veel bezwaar tegen het declareren van abstract static methods in interfaces, behalve als je een versie ouder dan 5.3 gebruikt (vanaf daar hebben ze zogenaamde late static binding geïntroduceerd). Als je b.v. in PHP 5.2. zoiets doet, dan krijg je een error:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
interface myInterface {
    public static 
String getName();
}

Class 
implements myInterface {
    public static function 
getName() {
      echo 
"A";
    }
}
 
Class 
implements myInterface {
    public static function 
getName() {
      echo 
"B";
    }
}

function 
test(myInterface $param) {
  
$param::getName();
}
?>

Dat is dus in PHP 5.3 of hoger wel valide, maar ik zou het desondanks niet aanraden. Zou eerder de methode in de interface non-static maken en deze aanroepen op een instantie van een object, dus b.v. zoiets:

1
2
3
4
5
<?php
$classname 
'tpl_' $classbase;
$instance = new $classname;
$name call_user_func(array($instance'GetName'));
?>

quote:
Is dat verkeerd of ouderwets?
Op zich is dat niet verkeerd. Het is wel gebruikelijk om met name in de wat formelere OO talen b.v. interfaces als 'Element' te hebben met een Render() methode die moet worden geïmplementeerd in classes die een dergelijk interface implementeren. Een andere optie is bijvoorbeeld gebruik maken van decorator patterns.
KomtTijd...dinsdag 26 augustus 2014 @ 14:21
quote:
0s.gif Op dinsdag 26 augustus 2014 13:52 schreef webbyplus het volgende:
Hallo,

Ik wil graag een online repository maken voor al mijn ontvangen outlook-mailtjes.
De bedoeling is dat ik mailtjes upload en dat ik een PHP-script heb dat de eigenschappen van de messages uitleest(zoals body, titel, afzender, etc) en in een mysql database zet.
Het upload/mysql stuk gaat me lukken. Ik vraag me alleen af of het mogelijk is om van een .msg file de eigenschappen uit te lezen?
Iemand ervaring mee?

Thx,
Webster
Mag ik vragen wat het doel is? Want het klinkt alsof je een soort primitieve mailserver wilt implementeren in PHP.
Monolithdinsdag 26 augustus 2014 @ 14:40
quote:
0s.gif Op dinsdag 26 augustus 2014 13:52 schreef webbyplus het volgende:
Hallo,

Ik wil graag een online repository maken voor al mijn ontvangen outlook-mailtjes.
De bedoeling is dat ik mailtjes upload en dat ik een PHP-script heb dat de eigenschappen van de messages uitleest(zoals body, titel, afzender, etc) en in een mysql database zet.
Het upload/mysql stuk gaat me lukken. Ik vraag me alleen af of het mogelijk is om van een .msg file de eigenschappen uit te lezen?
Iemand ervaring mee?

Thx,
Webster
Die Outlook files zijn binary. Zie b.v. hier voor de specs. Afgezien van een volstrekt eigen implementatie, kun je ook gebruik maken van COM.
Ik zou je echter aanraden om je mailtjes gewoon als plain-text op te slaan of te exporteren en ze als zodanig te verwerken.
Adameswoensdag 27 augustus 2014 @ 17:42
Even een basisvraag, hopelijk kunnen jullie me helpen. Het hoeft voor mij niet uigeschreven te worden, maar ik kom niet op de juiste zoektermen voor mijn probleem:

Ik wil een pagina/script maken waarmee ik gemakkelijk een database/tabel kan bewerken. Mijn tabel heeft 4 velden, een nummer als PK, een voornaam, achternaam en beschrijving. Wat mij het makkelijkst lijkt als gebruiker is om een dropdown menu te krijgen waarin ik mijn juiste voornaam + achternaam kan selecteren, waarna ik op een knop 'ophalen' klik om zodoende de 3 velden eronder te vullen met de huidige data. Deze velden kan ik dan wijzigen waarna ik op een tweede knop 'wijzigen' klik.

Een tabel leegtrekken in een array lukt nog wel, waarna je ze rij voor rij kan uitlezen. Alleen snap ik niet hoe ik deze informatie in eerste instantie in een case optie in een formulier krijg.
KomtTijd...woensdag 27 augustus 2014 @ 18:04
je maakt een select met de PK als value en voor/achternaam als tekst, en een tekstinput. Na de submit doe je een update op de PK die geselecteerd was?
Faux.donderdag 28 augustus 2014 @ 11:57
quote:
0s.gif Op woensdag 27 augustus 2014 17:42 schreef Adames het volgende:
Even een basisvraag, hopelijk kunnen jullie me helpen. Het hoeft voor mij niet uigeschreven te worden, maar ik kom niet op de juiste zoektermen voor mijn probleem:

Ik wil een pagina/script maken waarmee ik gemakkelijk een database/tabel kan bewerken. Mijn tabel heeft 4 velden, een nummer als PK, een voornaam, achternaam en beschrijving. Wat mij het makkelijkst lijkt als gebruiker is om een dropdown menu te krijgen waarin ik mijn juiste voornaam + achternaam kan selecteren, waarna ik op een knop 'ophalen' klik om zodoende de 3 velden eronder te vullen met de huidige data. Deze velden kan ik dan wijzigen waarna ik op een tweede knop 'wijzigen' klik.

Een tabel leegtrekken in een array lukt nog wel, waarna je ze rij voor rij kan uitlezen. Alleen snap ik niet hoe ik deze informatie in eerste instantie in een case optie in een formulier krijg.
Foreach en dan bij elke case de waardes uitecho'en
slacker_nlvrijdag 29 augustus 2014 @ 08:39
quote:
0s.gif Op dinsdag 26 augustus 2014 13:52 schreef webbyplus het volgende:
Hallo,

Ik wil graag een online repository maken voor al mijn ontvangen outlook-mailtjes.
De bedoeling is dat ik mailtjes upload en dat ik een PHP-script heb dat de eigenschappen van de messages uitleest(zoals body, titel, afzender, etc) en in een mysql database zet.
Het upload/mysql stuk gaat me lukken. Ik vraag me alleen af of het mogelijk is om van een .msg file de eigenschappen uit te lezen?
Iemand ervaring mee?

Thx,
Webster
Tis in perl maar je kan er mogelijk inspiratie uithalen.

https://github.com/mvz/email-outlook-message-perl?files=1
TwenteFCvrijdag 29 augustus 2014 @ 22:06
:P Zijn er hier nog mensen die ook aanwezig zijn op Laracon 2014?
Robuustheidzondag 31 augustus 2014 @ 22:28
Is dat voor Laravel?

Ik ben trouwens al tijdje op zoek naar PHP code, voor een stukje applicatie op intranet.

Bij dat applicatie kunnen eindgebruikers hun vragen en opmerkingen posten, waarna hun issues verschijnen op een beheerderslijst, waarna de beheerders erop kunnen reageren, en de issue vervolgens 'sluiten'.
KomtTijd...zondag 31 augustus 2014 @ 22:42
Een bugtracker dus?
Faux.zondag 31 augustus 2014 @ 22:43
quote:
0s.gif Op zondag 31 augustus 2014 22:28 schreef Robuustheid het volgende:
Is dat voor Laravel?

Ik ben trouwens al tijdje op zoek naar PHP code, voor een stukje applicatie op intranet.

Bij dat applicatie kunnen eindgebruikers hun vragen en opmerkingen posten, waarna hun issues verschijnen op een beheerderslijst, waarna de beheerders erop kunnen reageren, en de issue vervolgens 'sluiten'.
Mantis?
Robuustheiddinsdag 2 september 2014 @ 13:25
quote:
14s.gif Op zondag 31 augustus 2014 22:42 schreef KomtTijd... het volgende:
Een bugtracker dus?
Als dat bij m'n omschrijving aansluit?
quote:
11s.gif Op zondag 31 augustus 2014 22:43 schreef Faux. het volgende:

[..]

Mantis?
Dat is wel te uitgebreid, zie ik. :P
KomtTijd...dinsdag 2 september 2014 @ 13:30
quote:
0s.gif Op dinsdag 2 september 2014 13:25 schreef Robuustheid het volgende:

[..]

Als dat bij m'n omschrijving aansluit?

Wat jij beschrijft is toch gewoon precies een bugtracker? Het lijkt me dat er genoeg kant en klare bugtrackers te vinden zijn, eventueel als bundle voor je framework.
Monolithdinsdag 2 september 2014 @ 13:47
quote:
0s.gif Op dinsdag 2 september 2014 13:25 schreef Robuustheid het volgende:

[..]

Als dat bij m'n omschrijving aansluit?

[..]

Dat is wel te uitgebreid, zie ik. :P
gewoon iets simpels als Bugzilla dan?
slacker_nldinsdag 2 september 2014 @ 16:40
quote:
14s.gif Op zondag 31 augustus 2014 22:42 schreef KomtTijd... het volgende:
Een bugtracker dus?
Volgens mij bedoeld ie een feedback popup, en dat dan inderdaad linken aan je issue tracker naar keuze. Volgens mij een beetje ala https://wordpress.org/plugins/contact-popup/
TwenteFCdinsdag 2 september 2014 @ 22:23
:@ Is dit heel smerig om te doen?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
     
/**
     * Catch method call for default endpoints and perform api call if endpoint is set.
     *
     * @param $method
     * @param $parameters
     * @return mixed
     */
    
public function __call($method$parameters)
    {
        if (  ! isset(
$this->config['endPoints'][$method]) )
        {
            throw new 
BadFunctionCallException("The method [$method] is not a valid endpoint.");
        }

        return 
$this->bolRequest->makeRequestTo($this->config['endPoints'][$method], $parameters);
    }
?>
Monolithwoensdag 3 september 2014 @ 08:55
quote:
19s.gif Op dinsdag 2 september 2014 22:23 schreef TwenteFC het volgende:
:@ Is dit heel smerig om te doen?
[ code verwijderd ]

Het lijkt vrij omslachtig in ieder geval.
TwenteFCwoensdag 3 september 2014 @ 18:02
quote:
0s.gif Op woensdag 3 september 2014 08:55 schreef Monolith het volgende:

[..]

Het lijkt vrij omslachtig in ieder geval.
Hoe bedoel je dit precies?
devliegerwoensdag 3 september 2014 @ 18:37
HOI!
Ik ben niet zo goed in queries maar probeer het volgende te doen:

1
2
3
4
Select title, img_url, deeplink1, displayprice, productcategoryname, `Description_Short`
FROM products
WHERE `ProductCategoryName` like '%socks%'
AND title LIKE '%woman%'

Dit geeft geen resultaat weer, terwijl ik zou verwachten dat ik hiermee alle vrouwen sokken te zien zou krijgen. Als ik een OR zet ipv de laatste AND dan krijg ik wel resultaat maar dan krijg ik teveel te zien.
Kun je geen twee keer Like gebruiken? FYI: in de title col staat dus of het een vrouwen of mannen product is

pleh, thnx!
Monolithwoensdag 3 september 2014 @ 19:20
quote:
19s.gif Op woensdag 3 september 2014 18:02 schreef TwenteFC het volgende:

[..]

Hoe bedoel je dit precies?
Het lijkt op een workaround, dus de vraag is wat je er precies mee wilt bereiken.
TwenteFCwoensdag 3 september 2014 @ 19:25
quote:
0s.gif Op woensdag 3 september 2014 19:20 schreef Monolith het volgende:

[..]

Het lijkt op een workaround, dus de vraag is wat je er precies mee wilt bereiken.
Een wrapper maken om de api van bol.com
Bol.com heeft enkele endpoints, die opgeslagen staan in een array. (hieronder)

En in plaats van voor elke endpoint een methode, waarbij overal dezelfde code instaat wil ik het dus op bovenstaande manier doen.

Ik wil het straks gewoon op de volgende manier kunnen gebruiken;
1
2
3
4
<?php
    $bolRequest 
= new Bol;
    
$phpProducten $bolRequest->search(['q' => 'PHP']);
?>

De meeste endpoints worden namelijk allemaal op dezelfde manier aangeroepen.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
'endPoints' => [
        
'lists' => 'catalog/v4/lists/',
        
'search' => 'catalog/v4/search',
        
'products' => 'catalog/v4/products/',
        
'offers' => 'catalog/v4/offers/',
        
'recommendations' => 'catalog/v4/recommendations/',
        
'relatedproducts' => 'catalog/v4/relatedproducts/',
        
'sellerlist' => 'catalog/v4/sellerlists/',
        
'ping' => 'utils/v4/ping/',
        
'sessions' => 'accounts/v4/sessions/',
        
'wishlist' => 'accounts/v4/wishlists/',
        
'basket' => 'checkout/v4/baskets/'
    
]
?>
Monolithwoensdag 3 september 2014 @ 19:25
quote:
0s.gif Op woensdag 3 september 2014 18:37 schreef devlieger het volgende:
HOI!
Ik ben niet zo goed in queries maar probeer het volgende te doen:
[ code verwijderd ]

Dit geeft geen resultaat weer, terwijl ik zou verwachten dat ik hiermee alle vrouwen sokken te zien zou krijgen. Als ik een OR zet ipv de laatste AND dan krijg ik wel resultaat maar dan krijg ik teveel te zien.
Kun je geen twee keer Like gebruiken? FYI: in de title col staat dus of het een vrouwen of mannen product is

pleh, thnx!
Dat kan wel hoor. Waarschijnlijk geeft een van de twee like condities geen resultaten (b.v. omdat in je DB 'women' ipv 'woman' staat ofzo). Probeer even beide termen los en kijk op welke van de twee je geen resultaten krijgt.
Dus

1
2
3
Select title, img_url, deeplink1, displayprice, productcategoryname, `Description_Short`
FROM products
WHERE `ProductCategoryName` like '%socks%'

1
2
3
Select title, img_url, deeplink1, displayprice, productcategoryname, `Description_Short`
FROM products
WHERE title LIKE '%woman%'
devliegerwoensdag 3 september 2014 @ 19:33
HAHA, fml dat was het idd. Women deed het wel ipv woman. Durf te lezen, zeggen ze dan.
Thanks man! Enorm geholpen.
+1
TwenteFCwoensdag 3 september 2014 @ 22:01
:P Wat vinden jullie hiervan?
Request validation in Laravel 4.3

https://laracasts.com/series/whats-new-in-laravel-4-3/episodes/3
slacker_nldonderdag 4 september 2014 @ 08:35
quote:
19s.gif Op woensdag 3 september 2014 19:25 schreef TwenteFC het volgende:

[..]

Een wrapper maken om de api van bol.com
Bol.com heeft enkele endpoints, die opgeslagen staan in een array. (hieronder)

En in plaats van voor elke endpoint een methode, waarbij overal dezelfde code instaat wil ik het dus op bovenstaande manier doen.

Ik wil het straks gewoon op de volgende manier kunnen gebruiken;
[ code verwijderd ]

De meeste endpoints worden namelijk allemaal op dezelfde manier aangeroepen.
[ code verwijderd ]

Maybe.. just maybe moet je eens hier naar kijken: https://github.com/SPORE/(...)pore_description.pod
slacker_nldonderdag 4 september 2014 @ 08:46
quote:
19s.gif Op woensdag 3 september 2014 22:01 schreef TwenteFC het volgende:
:P Wat vinden jullie hiervan?
Request validation in Laravel 4.3

https://laracasts.com/series/whats-new-in-laravel-4-3/episodes/3
Die directorystructuur: HORRIBLE!!
Monolithdonderdag 4 september 2014 @ 09:15
quote:
19s.gif Op woensdag 3 september 2014 19:25 schreef TwenteFC het volgende:

[..]

Een wrapper maken om de api van bol.com
Bol.com heeft enkele endpoints, die opgeslagen staan in een array. (hieronder)

En in plaats van voor elke endpoint een methode, waarbij overal dezelfde code instaat wil ik het dus op bovenstaande manier doen.

Ik wil het straks gewoon op de volgende manier kunnen gebruiken;
[ code verwijderd ]

De meeste endpoints worden namelijk allemaal op dezelfde manier aangeroepen.
[ code verwijderd ]

Mja, je kunt dan net zo goed een reguliere methode maken met de methode naam en param array als functie argumenten, dus gewoon callBol(method, params) ofzo. Nadeel van het overriden van __call is natuurlijk dat als je ergens eigenlijk een daadwerkelijke functie had willen aanroepen, maar een typefoutje maakt, dit kan leiden tot onverwachte errors.

Algemeen nadeel van zo'n oplossing als dit is dat het niet echt lekker OO is. Aan de namen van de calls te zien krijg je verschillende zaken terug zoals verkopers, een winkelmandje en wenslijstje of gewoon lijstjes producten. Die zullen allen wel hun eigen structuur hebben. Waar je dan ergens zo'n API call doet ga je vervolgens doodleuk waar je zo'n call aanroept maar moet 'weten' wat de structuur van de return value is. Meestal maak je wel je eigen model representations en als je dan b.v. JSON terugkrijg van een WS gooi je die in een model b.v. met zoiets.
TwenteFCdonderdag 4 september 2014 @ 18:15
quote:
0s.gif Op donderdag 4 september 2014 08:46 schreef slacker_nl het volgende:

[..]

Die directorystructuur: HORRIBLE!!
Je kan hem heel simpel wijzigen mocht je dat willen, ging me meer om de manier waarop je formulieren en dergelijke kan valideren.
TwenteFCdonderdag 4 september 2014 @ 18:16
quote:
0s.gif Op donderdag 4 september 2014 09:15 schreef Monolith het volgende:

[..]

Mja, je kunt dan net zo goed een reguliere methode maken met de methode naam en param array als functie argumenten, dus gewoon callBol(method, params) ofzo. Nadeel van het overriden van __call is natuurlijk dat als je ergens eigenlijk een daadwerkelijke functie had willen aanroepen, maar een typefoutje maakt, dit kan leiden tot onverwachte errors.

Algemeen nadeel van zo'n oplossing als dit is dat het niet echt lekker OO is. Aan de namen van de calls te zien krijg je verschillende zaken terug zoals verkopers, een winkelmandje en wenslijstje of gewoon lijstjes producten. Die zullen allen wel hun eigen structuur hebben. Waar je dan ergens zo'n API call doet ga je vervolgens doodleuk waar je zo'n call aanroept maar moet 'weten' wat de structuur van de return value is. Meestal maak je wel je eigen model representations en als je dan b.v. JSON terugkrijg van een WS gooi je die in een model b.v. met zoiets.
Je hebt helemaal gelijk, ik ga hier verderop inderdaad meer problemen mee krijgen dan dat ik oplos.
Heb ondertussen die hele __call er ook al uitgesloopt.
Djurreszaterdag 6 september 2014 @ 21:46
SPOILER
Ik heb een probleempje waar ik niet meer uit kom. Na wat stoeien met PHP, wat hulp van Totalvamp, en nog meer gestoei en leren ben ik bezig met PDO en MVC,

Nu wil ik wat paginas aanmaken wat eigenlijk allemaal heel goed gaat, heb een router die goed zijn best doet, en een functionerende controller, maar het probleem is alsvolgt.

Ik heb een hoofdmenu, en daaronder submenus. Iedere knop uit het hoofdmenu laad de goede pagina, maar nu wil ik paginas voor de submenu's maken, en hier gaat het fout. Ik kan de default pagina waar ik met een gemaakte replace functie bepaalde text. ( [[content_main]] bijv ) kan replacen voor een klein stukje html zodat alles netjes weergegeven wordt, maar als ik hier mijn hoofdmenu wil invoegen wordt deze niet zichtbaar? Waar ga ik nat?

Heb geprobeerd te troubleshooten, en als ik de variable print_r staat de goede info in de array, maar toch laad hij m niet!

De wel werkende hoodmenu functie ( index() )
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
<?php
    
public function index()
    {

        
$commission = new Commissions($this->database);
        
$activities = new Activities($this->database);
        
$files = new Files($this->database);
        
$meetings = new Meetings($this->database);

        
//Query section
        
$q_activities $activities->select('*', ['commission_id' => $_GET['id']]);
        
//$q_files = $files->select('*', ['commission_id' => $_GET['id']]);
        //$q_meetings = $meetings->selectWithJoins('*', []);

        //Laad een nieuwe template voor de INDEX van COMISSIEPAGINA
        
$t= new Template();
        
$t->load('default');

        
//Check of er activities aanwezig zijn, zo niet laat deze ook NIET zien.
        
if(count($q_activities) > 0) {
            
$t->load('Commission/activities', ['activities' => $q_activities]);
            
$t->replace('default''content_main'$t->getHtml('Commission/activities'));

            
$t->removeHtml('Commission/activities');
        } else {
            
$t->replace('default''content_main''');
        }

        
$t->load('Commission/commissionmenu');
        
$t->load('Commission/files');
        
$t->load('Commission/meetings');
        
$t->load('menu', ['commissions' => $commission->select('*')]);

        
$t->replace('default''content_top'$t->getHtml('Commission/files'));
        
$t->replace('default''content_bottom'$t->getHtml('Commission/meetings'));
        
$t->replace('default''submenu'$t->getHtml('Commission/commissionmenu'));
        
$t->replace('default''menu'$t->getHtml('menu'));

        
$t->removeHtml('Commission/files');
        
$t->removeHtml('Commission/commissionmenu');
        
$t->removeHtml('Commission/meetings');
        
$t->removeHtml('menu');

        echo 
$t;
    }
?>

en de niet werkende functies, (Files(), Notice(), Meetings(), Upload(), )
(deze zijn allemaal hetzelfde omdat ik iig alle menus alvast werkend wel hebben, daadwerkelijke inhoud komt wel..
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
    
public function Files() {
        
$t= new Template();
        
$t->load('default');

        
$t->replace('default''menu'$t->getHtml('menu'));

        
$t->removeHtml('menu');

        echo 
$t;

    }
?>

Default page,
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="./Assets/css/style.css" />
    <title></title>
</head>

<body>
<div id="container">

    <div id="header">
        <h1>R<span class="off">CS</span></h1>
    </div>

    <div id="menu">
        [[menu]]
    </div>

    <div id="leftmenu">
        [[submenu]]
    </div>

    <div id="content">
        <div id="content_top">[[content_top]]</div>
        <br/><br/><br/>
        <div id="content_main">[[content_main]]</div>
        <br/><br/><br/>
        <div id="content_bottom">[[content_bottom]]</div>
    </div>

</div>
</body>
</html>

Waar ga ik nat? Als jullie functies moeten hebben hoor ik het wel :)
Nvm, vergeet compleet de database in de functie te laden waardoor er niets opgehaald akn worden :')

probleem staat hierboven, sorry voor deze noobigheid :P
Aethermaandag 8 september 2014 @ 15:32
Nieuwe MyPHPAdmin cocurrent:
quote:
What is Datazenit?
Datazenit is a web-based database administration tool. Its abilities go beyond the standard tools of database management, and include data visualizations, an intelligent schema builder and many other features that ease and enhance database management. Datazenit is designed to make databases accessible, safe and easy to use.

Our final goal is to support many different data sources, but we will start with some of the most popular relational databases: MySQL, PostgreSQL, SQLite and MSSQL.
screen-1.png?v2
Faux.maandag 8 september 2014 @ 17:18
quote:
7s.gif Op maandag 8 september 2014 15:32 schreef Aether het volgende:
Nieuwe MyPHPAdmin cocurrent:

[..]

[ afbeelding ]
Ziet er gaaf uit, hoewel pma bij mij nog niet aan vervanging toe is. Hoe denken de anderen daarover?
zoemmaandag 8 september 2014 @ 17:26
De gelikte interface leidt af van de hamvraag: hoe is het met de veiligheid en stabiliteit gesteld? Ik houd het nog even bij PMA :)
Aethermaandag 8 september 2014 @ 17:50
quote:
0s.gif Op maandag 8 september 2014 17:26 schreef zoem het volgende:
De gelikte interface leidt af van de hamvraag: hoe is het met de veiligheid en stabiliteit gesteld? Ik houd het nog even bij PMA :)
Het is een alpha (ze raden zelf af om het in productie te gebruiken).
Aethermaandag 8 september 2014 @ 18:03
8-)
quote:
Why our startup has no bosses, no office, and a four-day work week
In 2008, my study partner Hernán Amiune and I had finished studying computer engineering at Catholic University of Córdoba Argentina.

During our last years at university, we had done some internships in companies such as HP, IBM, and Intel. It was the moment we realized there was a mistake in their work methods.
We couldn’t understand why people without technical knowledge had to tell programmers “what” to do and, furthermore, they had to supervise “how” programmers did it.

So, when we created Project eMT, a comparison search engine for Latin America, we decided to work in a different way: without project managers. Six years later, we operate in Chile, Brazil, Mexico, and Colombia together with 34 engineers that are part of our team, and we still work without traditional management structures and work weeks, and have managed to grow our annual revenue by 204%.

Here’s how we do it.
Crutchwoensdag 10 september 2014 @ 20:21
Ik werk toch veul en veul liever met een desktop client zoals SQLYog
Tijnwoensdag 10 september 2014 @ 20:33
quote:
0s.gif Op woensdag 10 september 2014 20:21 schreef Crutch het volgende:
Ik werk toch veul en veul liever met een desktop client zoals SQLYog
Kun je dan wel verbinden? De meeste hosts waar ik ervaring mee heb staan geen toegang tot de database toe van buitenaf.
slacker_nlwoensdag 10 september 2014 @ 20:48
Wat stom, je moet toch gewoon remote naar je DB kunnen connecten?

Ik gebruik overigens gewoon psql, command line tooltjes en/of DBI om met m'n DB te verbinden.
Monolithwoensdag 10 september 2014 @ 20:56
quote:
0s.gif Op woensdag 10 september 2014 20:48 schreef slacker_nl het volgende:
Wat stom, je moet toch gewoon remote naar je DB kunnen connecten?

Ik gebruik overigens gewoon psql, command line tooltjes en/of DBI om met m'n DB te verbinden.
Ligt er een beetje aan wat je ermee doet. Toegang beperken tot een lijstje van gespecificeerde IPs is een prima beveiligingsmaatregel. Overigens is het laatste wat je moet doen wanneer beveiliging een belangrijke issue is natuurlijk iets als PHPMyAdmin op een productieserver publiekelijk toegankelijk hebben.
#ANONIEMwoensdag 10 september 2014 @ 21:04
quote:
12s.gif Op maandag 8 september 2014 18:03 schreef Aether het volgende:
8-)

[..]

Zelfs geen overleg onder vier ogen :o

Hoe wordt dan de functionaliteit van een stuk software bepaald? Dat iemand na contact met een klant een ticket schrijft met functionaliteit, die dan door een ander zonder overleg wordt geïmplementeerd, dat kan toch nooit goed gaan. Behalve als iedereen in het bedrijf én met klanten overweg kan én weet wat technisch wel en niet handig en haalbaar is, maar een bedrijf waar iedereen alles kan en weet lijkt me dan weer niet erg zinnig.
Monolithwoensdag 10 september 2014 @ 21:14
quote:
0s.gif Op woensdag 10 september 2014 21:04 schreef Igen het volgende:

[..]

Zelfs geen overleg onder vier ogen :o

Hoe wordt dan de functionaliteit van een stuk software bepaald? Dat iemand na contact met een klant een ticket schrijft met functionaliteit, die dan door een ander zonder overleg wordt geïmplementeerd, dat kan toch nooit goed gaan. Behalve als iedereen in het bedrijf én met klanten overweg kan én weet wat technisch wel en niet handig en haalbaar is, maar een bedrijf waar iedereen alles kan en weet lijkt me dan weer niet erg zinnig.
Ik lees best wat goede punten maar heb bij het gros van de punten wel mijn bedenkingen. Als er iets een recept is voor miscommunicatie, dan is het wel enkel schriftelijk communiceren. Ik heb al wel honderden keren meegemaakt dat mensen elkaar aan wilden vliegen na een mailwisseling, maar er na een gesprek van drie minuten achter kwamen dat ze eigenlijk praktisch hetzelfde wilden.
slacker_nlwoensdag 10 september 2014 @ 21:53
quote:
1s.gif Op woensdag 10 september 2014 20:56 schreef Monolith het volgende:
Ligt er een beetje aan wat je ermee doet. Toegang beperken tot een lijstje van gespecificeerde IPs is een prima beveiligingsmaatregel. Overigens is het laatste wat je moet doen wanneer beveiliging een belangrijke issue is natuurlijk iets als PHPMyAdmin op een productieserver publiekelijk toegankelijk hebben.
Hoezo? ssh toegang en klaar.
Tijnwoensdag 10 september 2014 @ 21:56
quote:
0s.gif Op woensdag 10 september 2014 20:48 schreef slacker_nl het volgende:
Wat stom, je moet toch gewoon remote naar je DB kunnen connecten?
Waarom zou dat "moeten"? Zeker bij shared hosting kan dat eigenlijk nooit.
slacker_nlwoensdag 10 september 2014 @ 22:22
quote:
5s.gif Op woensdag 10 september 2014 21:56 schreef Tijn het volgende:
Waarom zou dat "moeten"? Zeker bij shared hosting kan dat eigenlijk nooit.
Ik snap niet waarom ze tcp access naar db hosts disablen. Ik vind dat stom (maar das ook denk ik de reden dat ik geen shared hosting heb).
Monolithwoensdag 10 september 2014 @ 22:23
quote:
0s.gif Op woensdag 10 september 2014 21:53 schreef slacker_nl het volgende:

[..]

Hoezo? ssh toegang en klaar.
Hoezo wat? Er staat meer dan één ding in die post.
Crutchdonderdag 11 september 2014 @ 17:44
quote:
0s.gif Op woensdag 10 september 2014 21:53 schreef slacker_nl het volgende:

[..]

Hoezo? ssh toegang en klaar.
Exact!

Daarnaast kan je ook tunnelen als je geen ssh beschikbaar hebt.
KomtTijd...donderdag 11 september 2014 @ 17:54
quote:
0s.gif Op woensdag 10 september 2014 21:53 schreef slacker_nl het volgende:

[..]

Hoezo? ssh toegang en klaar.
Je dacht dat je SSH toegang kreeg bij een host die al geen externe toegang op de MySQL server toestaat? :D

Overigens heb ik volgens mij ook weleens mee gemaakt dat een host MySQL dicht had staan voor verbindingen van buitenaf, maar tegenwoordig is dat niet erg gebruikelijk meer volgens mij. Niet bij de fatsoenlijke shared-hosting providers iig.
TwenteFCdonderdag 11 september 2014 @ 18:39
quote:
14s.gif Op donderdag 11 september 2014 17:54 schreef KomtTijd... het volgende:

[..]

Je dacht dat je SSH toegang kreeg bij een host die al geen externe toegang op de MySQL server toestaat? :D

Overigens heb ik volgens mij ook weleens mee gemaakt dat een host MySQL dicht had staan voor verbindingen van buitenaf, maar tegenwoordig is dat niet erg gebruikelijk meer volgens mij. Niet bij de fatsoenlijke shared-hosting providers iig.
:P Lijkt me eerder wenselijk dat hij dichtstaat, in op zijn minst voor mensen met een ander IP adres dan mijn werklocaties.
terdegemaandag 15 september 2014 @ 12:56
Ik heb een website gemaakt waarbij ik een database, PHP en cronjobs(of iets vergelijlkbaars) nodig heb. Ik wil dit nu ergens online zetten zodat ik de website kan testen met een paar andere mensen. Weet iemand ergens een website waar ik dit gratis of voor weinig geld voor elkaar kan krijgen? De website zal weinig verkeer hebben en 1 database is genoeg. Wat ik tot nu toe gevonden heb is allemaal heel duur.

Ik weet niet of dit de goede plek is hiervoor maar hier zitten waarschijnlijk wel mensen die er wat vanaf weten.
KomtTijd...maandag 15 september 2014 @ 12:57
quote:
0s.gif Op maandag 15 september 2014 12:56 schreef terdege het volgende:
Ik heb een website gemaakt waarbij ik een database, PHP en cronjobs(of iets vergelijlkbaars) nodig heb. Ik wil dit nu ergens online zetten zodat ik de website kan testen met een paar andere mensen. Weet iemand ergens een website waar ik dit gratis of voor weinig geld voor elkaar kan krijgen? De website zal weinig verkeer hebben en 1 database is genoeg. Wat ik tot nu toe gevonden heb is allemaal heel duur.

Ik weet niet of dit de goede plek is hiervoor maar hier zitten waarschijnlijk wel mensen die er wat vanaf weten.
kijk in 1 van de 6000 webhostingtopics die nu lopen. Iedere shared hosting van 2 euro per maand voldoet.