Interface.quote:Op dinsdag 15 juli 2014 12:55 schreef remi1986 het volgende:
[..]
Interface? Of de desbetreffende query?
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 } |
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.quote: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 ]
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).quote: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.quote: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.
Die zijn er wel?quote: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. ?
Euh, onthouden en toepassen?quote: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?
Ik ben geen webdevver, ik schrijf backend calls die een frontend dude moet gebruiken, in Perl. Maar niemand op Fok lijkt het te gebruiken.quote: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. ?
Scherp. Ik bedoelde meer of jullie een baan hebben binnen de IT of dat jullie het leren als hobby.quote:
Ik denk dat iedereen begint als hobby en iedereen er uiteindelijk z'n beroep van maakt. Zo ging het in elk geval bij mijquote: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.
Same here.quote: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
Hier ook. Leuk puzzelen altijd.quote: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
Hier ookquote: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
Bij mij ookquote: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
+1quote: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
Omdat ik de functie zo had gemaakt dat je daar een array ingooit met column=>value.quote: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?
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.quote: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
Hmm ik zie het inderdaad. Dan kan ik beter gewoon validatie via PHP doen en dan heb ik dat hele bindParam niet nodig.quote: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.
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.quote: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.
Zo doe ik het ookquote: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.
escaping gebeurt toch middels de prepare functie? Of heb je daar echt de bindParam functie voor nodig?quote: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.
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 kanquote: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?
quote: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
Zo dus: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.
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)); ?> |
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.quote:Op zaterdag 19 juli 2014 09:54 schreef Tijn het volgende:
Ah, ja. Ik denk eigenlijk dat het dan niet zoveel uitmaakt.
Let er dan wel op dat die tabelnaam niet automatisch ge-escaped wordt en dat je daarmee dus nog wel potentieel sql-injection hebt.quote: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.
dat zou ik kunnen opvangen door van de tabelnaam ook een parameter te makenquote: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.
Volgens mij kun je niet alle onderdelen van een query via bindParam meegeven, o.a. table names en velden achter de SELECT etc.quote: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.
De tabelnaam door de gebruiker laten invullen lijkt me sowieso niet handig.quote: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.
Correct. Tabelnamen en kolomnamen kun je niet op die manier meegeven, al was het maar omdat je daar niets aan kunt 'preparen'.quote: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.
True, maar het is wel iets waar je je bewust van moet zijn bij het schrijven van de code.quote: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.
Hardcoded via PHP meegeven, is het dan nog mogelijk? (SQL Injection?)quote: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'.
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 .... "); } ?> |
Nee, SQL-injectie gebeurt op het moment dat je gebruikersinput in je query stopt.quote: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 ]
Dat is voor Symfony2, hij vraagt voor ZF2.quote: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 .
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 makenquote:Op dinsdag 22 juli 2014 16:42 schreef Tijn het volgende:
Kun je dit niet gewoon gebruiken?
http://docs.doctrine-project.org/en/2.0.x/reference/tools.html
Laravel, en wat CodeIgniter applicaties die we moeten onderhouden.quote: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...
Wat hij zegt inderdaad, ik zou overwegen over te stappen naar Symfony2quote: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.
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 SF2quote: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
Voorlopig nog SF2, maar als er een klant komt die met Laravel werkt of wil werken dan gaan we dat vast ook proberenquote: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...
Is dat nóg makkelijker dan?quote:Op donderdag 24 juli 2014 21:40 schreef TwenteFC het volgende:
[..]
Dan zal je van Laravel helemaal klaar komen.
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 waagquote:Op donderdag 24 juli 2014 21:50 schreef TwenteFC het volgende:
[..]
Zitten wel leuke dingen in ja
http://laravel.com/docs
Welke voordelen zoek je, ligt ook maar net aan wat je wil maken natuurlijk.quote: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
Ja weet ik eigenlijk ook niet ik vind de doctrine-tools in symfony iig erg handig werken, die heb je bij zf2 bijvoorbeeld weer nietquote: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
Eloquent van Laravel is ook wel mooi.quote: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
1 2 3 | <?php Topic::with('reacties') ?> |
Netjes. Hebben ze een soort Builder pattern voor gebruikt?.quote: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 ]
Je hebt 2 classes die de Eloquent extenden, en in die models geef je dus aan welke relaties die hebben.quote:
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'); } } ?> |
Ze hebben alleen wat te veel static methods gebruikt bij Laravel.quote:Op donderdag 24 juli 2014 21:50 schreef TwenteFC het volgende:
[..]
Zitten wel leuke dingen in ja
http://laravel.com/docs
Die je niet hoeft te gebruiken, het is een keuze die bij de developer ligt.quote:Op vrijdag 25 juli 2014 08:46 schreef Light het volgende:
[..]
Ze hebben alleen wat te veel static methods gebruikt bij Laravel.
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: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?quote: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.
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:
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.quote: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: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:
quote: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.
Dank voor de reacties!quote: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.
Ah, dan is het beter te begrijpen. Tips:quote:Op vrijdag 25 juli 2014 22:41 schreef Super-B het volgende:
[..]
[..]
[..]
[..]
Dank voor de reacties!
Het is maar een los projectje, om zodoende zowel JS als PHP/MySQL onder de knie te krijgen.
Moet nog veel leren. 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.quote: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
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)quote:Op vrijdag 25 juli 2014 22:47 schreef Super-B het volgende:
[..]
Moet nog veel leren. 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!
Maar dank voor je snelle respons.
Wat is XSS? Ik kan het opzoeken, maar vraag het maar even aan jou.quote: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)
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.phpquote: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(); ?
PDOquote: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
quote:
komt door de shitload aan oude tutorials die nog overal zijn.quote:Op vrijdag 25 juli 2014 23:13 schreef robin007bond het volgende:
[..]
Of gewoon een ORM. Mensen die nog mysql conmect gebruiken.
Ja, maar dan nog. Je zou een beetje gedegen onderzoek van mensen verwachten in plaats van hapklare tutorials te volgen.quote:Op vrijdag 25 juli 2014 23:14 schreef Faux. het volgende:
[..]
komt door de shitload aan oude tutorials die nog overal zijn.
Ach, die weten ook niet beterquote: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.
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.quote: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.
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.quote: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.
Voornamelijk dat het in de huidige versie van PHP al wordt gemarkeerd als "deprecated" en vanaf de volgende versie überhaupt niet meer beschikbaar is.quote:
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.quote: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.
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.quote: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.
Je hebt als echte beginner niks aan de documentatie, want daarin staat niet uitgelegd hoe je moet programmeren.quote: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.
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.quote:
Dat klopt inderdaad.quote: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.
Een variabele setten in het PHP bestand en opvragen bij het laden van het menu? Of denk ik te simpel?quote: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...
Vast niet, maar dat geeft mijn PHP-kennis wellicht ook aan. .quote: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?
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.quote:Op zaterdag 26 juli 2014 02:04 schreef zarGon het volgende:
[..]
Vast niet, maar dat geeft mijn PHP-kennis wellicht ook aan. .
Kun je me hier meer over vertellen? Links naar informatie anders?
Hmhmm, klinkt haalbaar. Thanks!quote: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.
Momenteel zijn het losse HTML-bestanden, maar ik ga ze inderdaad met includes opbouwen, net zoals in je link.quote:Werk je met een template systeem, of plaats je de HTML in ieder PHP bestand? Een simpel voorbeeld van een template systeem: klik. Scheelt een boel werk, omdat je dan de HTML voor alle pagina's tegelijk kunt aanpassen.
Succes!quote: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.
http://www.test-smoke.org/talks/dbix-class.pdfquote: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.
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 vanquote:Op dinsdag 29 juli 2014 22:24 schreef slacker_nl het volgende:
[..]
http://www.test-smoke.org/talks/dbix-class.pdf
Slap er Slim tegen aan en lees PHP The Right Way ook nog even en je bent al een heel eind.quote: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
Zal ik het wel simpel voor je houden:quote: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
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 ervaringquote: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 deprecatedquote: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.
Dat was inderdaad de insteek van mijn post.quote: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
Tja, als hij lokaal een oude WAMP heeft draaien met PHP5.3 erop, krijg je die meldingen niet. Een gewaarschuwd man telt voor twee.quote:Op woensdag 30 juli 2014 10:46 schreef mschol het volgende:
[..]
mysql_ is dan ook deprecated
mysqli_ werkt (ook) prima t.b.h.
quote: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:
Spammerquote:
Was verkeerde knop jongenquote:
Hahaquote: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
Zo zat ik ook al te denkenquote: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 Ik zou m'n vingers er niet aan branden.quote: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.
Ach. Desnoods schrijf je alles opnieuw. De query's hebben ze toch nog. Maak je gewoon nieuwe DB-klasses en klaar.quote:Op woensdag 30 juli 2014 21:07 schreef Juicyhil het volgende:
[..]
Succes met het opknappen van crappy code Ik zou m'n vingers er niet aan branden.
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.quote: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.
quote: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.quote: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.
maar als programmeur zijnde kom je vaak zulke slechte code tegen wat je niet zo kunt laten.quote: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.
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.quote: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.
Daarom heb je een duidelijke directory structuur nodig Dan heb je geen issues met dingen vinden xDquote: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.
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.quote:Op woensdag 30 juli 2014 22:26 schreef totalvamp het volgende:
[..]
Daarom heb je een duidelijke directory structuur nodig Dan heb je geen issues met dingen vinden xD
Ja idd, ik ben ook een type die alles herbruikbaar maakt.quote: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.
Daar ging het imho al mis.quote: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.
Dat denk ik ook.quote: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.
quote: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.
Dat is inderdaad goed. Sowieso een beetje documentatie kan nooit kwaad.quote: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.
Ook al eens naar phpDocumentor gekeken? Die wordt nog actief ontwikkeld.quote:Op woensdag 30 juli 2014 22:52 schreef robin007bond het volgende:
Voor bijvoorbeeld een API gebruik ik ApiGen.
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.quote: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.
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) ?> |
Welke versie van phpDocumentor gebruik je? Je linkt naar een oude versie, en als je die nog gebruikt zou ik je phpDocumentor2 aanraden.quote: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?
Bedankt voor de tip.quote:Op woensdag 30 juli 2014 23:25 schreef Light het volgende:
[..]
Ook al eens naar phpDocumentor gekeken? Die wordt nog actief ontwikkeld.
Volgens mij moet je de { } weghalen. Never mind, ze beginnen het voorbeeld met hoe je het niet moet doen (ook zo handig).quote: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?
Oh, zit ik in oude documentatie te neuzen?quote: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.
http://www.phpdoc.org/doc(...)hpdoc/tags/link.htmlquote:{@link [URI] [<description>]}
In dat grote zwarte blok bovenaan de pagina staat duidelijk:quote:Op donderdag 31 juli 2014 11:55 schreef d4v1d het volgende:
[..]
Oh, zit ik in oude documentatie te neuzen?
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
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.
EN daarachter staat "There is only URL support", dat wil ik dus juist.quote:Op donderdag 31 juli 2014 12:40 schreef Rockfire het volgende:
[..]
In dat grote zwarte blok bovenaan de pagina staat duidelijk:
[..]
Nee, jij wil ook een descriptionquote:Op donderdag 31 juli 2014 12:42 schreef d4v1d het volgende:
[..]
EN daarachter staat "There is only URL support", dat wil ik dus juist.
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.quote:
Ja, die {@link .. } werkt alleen in descriptions en niet in de summary waar je het nu probeert te gebruiken. Zie ook mijn post hierboven.quote: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?
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) ?> |
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) ?> |
Phpdocumentor? Is dat zo echt nodig? Het lijkt in sommige gevallen best overbodig.quote: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.
Als je een API maakt bijvoorbeeld.quote: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: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 ?
(bron is OpenHub.net)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.
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.quote: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.
Zelfs met eigen code is het belangrijk. Als ik naar code van zoveel jaar terug kijk denk ik soms ook: what was I thinking?!quote: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.
Fixedquote: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?!
Meestal als je klaar bent en je kijkt terug heb je dat alquote: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?!
1 2 3 4 | SELECT naam SEC_TO_TIME(SUM(TIME_TO_SEC(Gespreksduur))) as totaalduur FROM telefoongesprekken GROUP BY naam |
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 ) |
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 |
Zoiets?quote: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. .
1 2 3 4 5 | SELECT naam, SEC_TO_TIME(SUM(TIME_TO_SEC(Gespreksduur))) as totaalduur, TypeGesprek FROM telefoongesprekken GROUP BY naam, TypeGesprek |
1 2 3 | SELECT GebeldeNummer FROM telefoongesprekken WHERE SUBSTRING( telefoongesprekken.GebeldeNummer, 1, 4 ) = '0900' |
Zit er misschien een spatie in die eerste aan het begin? Tevens zou ik gewoon gebruiken:quote: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 ]
1 | WHERE telefoongesprekken.GebeldeNummer LIKE '0900%' |
je zou gewoon 2 resultaten moeten krijgen.quote: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 ]
Heb ff test tabelletje gemaaktquote: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. .
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?
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 |
Kan het niet via een RewriteRule in je htaccess?quote: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?
1 | RewriteRule ^/download /file.iso [L] |
http://nl1.php.net/freadquote: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?
In combinatie met http://php.net/fpassthru dan.quote: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!quote: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
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 | +--------------------------+ |
float is bijna altijd een probleemquote: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.htmlquote: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.
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>."; } |
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(); |
Gebruik een externe library man. De ingebouwde mail functie zuigt.quote: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 .
Meeste frameworks hebben daar alleen maar een wrapper omheen gebouwd. Dus dan blijft meneer hetzelfde issue uiteindelijk hebben...quote:Op woensdag 13 augustus 2014 19:50 schreef robin007bond het volgende:
[..]
Gebruik een externe library man. De ingebouwde mail functie zuigt.
Misschien die typo hier:quote: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 .
1 2 3 4 5 | <?php 'From: webmaster@example.com' . "\r\n" . 'Reply-To: webmaster@example.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); ?> |
Dat komt niet door mij dat komt door de website hehe . Zie hier een screenshot van mijn tekst editor:quote:Op woensdag 13 augustus 2014 19:54 schreef Juicyhil het volgende:
[..]
Misschien die typo hier:
$headers = "From: $fromn";
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 data-src="http://www.yoursitename.com/images/logo.png" style="visibility:hidden;" 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] |
Inderdaad, gewoon zelf iets maken.quote:Op woensdag 13 augustus 2014 21:51 schreef Faux. het volgende:
ik zou al die code gewoon dumpen eigenlijk
quote:Op woensdag 13 augustus 2014 22:37 schreef slacker_nl het volgende:
Waarom zelf wat bedenken?http://swiftmailer.org/docs/messages.html
Het is wel handig om te weten hoe het op basis niveau werkt.quote:Op woensdag 13 augustus 2014 22:37 schreef slacker_nl het volgende:
Waarom zelf wat bedenken?http://swiftmailer.org/docs/messages.html
1 2 | $headers .= "Return-Path: <adminemail@yahoo.com>"."\n"; $headers .= "From: adminemail@yahoo.com <adminemail@yahoo.com>" . "\n"; |
Dingen hergebruiken, dat is uiteraard niet goed als developer.quote: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.
Werk je op een lokale server? Je moet wel een mailserver (Tomcat) hebben en die (goed) instellenquote: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 .
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.quote: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.
Swiftmailer was al gegeven. PHPMailer is ook nog een alternatief. Bespaart je een hoop ellendequote: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.
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.quote: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.
Postfix ja klopt.quote: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.
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:quote: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.
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"); } |
Oke, maar zo zei je dat niet.quote: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.
De fout zit altijd in je code, waar in je code is de vraag..quote: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.
prima, ga die discussie niet eens voerenquote: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..
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.quote: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 ]
quote:Op donderdag 14 augustus 2014 19:14 schreef cablegunmaster het volgende:
Iemand ervaring met codeigniter?
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.quote:
Dit? https://ellislab.com/code(...)e/active_record.htmlquote: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.
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.'; } ?> |
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> </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(); ?> |
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>'; ?> |
Dus de query slaagt en het aantal resultaten is niet 1. Hoeveel resultaten zijn er dan wel?quote: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.
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.quote: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?
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.quote: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.
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.quote: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
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,quote: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.
Code staat een pagina hiervoorquote: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
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 :-)quote: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
Ah, okay.quote: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' ;-)
quote: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}"; ?> |
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.quote: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.
1 2 3 | <?php $id = intval($_GET['id']); ?> |
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.quote: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..
Laat je post staan dan, zodat anderen ervan kunnen lerenquote:Op dinsdag 19 augustus 2014 19:47 schreef Djurres het volgende:
laat maar! Heb het helemaal zelf opgelost
Dit is zo hinderlijkquote:Op dinsdag 19 augustus 2014 22:14 schreef Faux. het volgende:
[..]
Laat je post staan dan, zodat anderen ervan kunnen leren
je configuratie veranderd naar getenv('geheimding') en deze environment variabelen buiten je document root geset?quote:Op dinsdag 19 augustus 2014 19:47 schreef Djurres het volgende:
laat maar! Heb het helemaal zelf opgelost
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?quote: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.
Ja, ook dat nog.quote: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?
Misschien zeg ik iets stoms hoor.quote:
Ik volg je mischien niet helemaal, maar wat ik bedoel; een gebruiker doet een zoekopdracht via een tekstveld, hier vult hij appel in.quote: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?
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->Add(Array) #3 /<public_html>/index.php(73): call_user_func(Array, Array) #4 /<public_html>/index.php(79): Main->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->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 /> |
1 2 3 4 5 6 7 | <?php foreach ($childclasses as $classbase) { $classname = 'tpl_' . $classbase; $name = call_user_func(array($classname, 'GetName')); <andere dingen> } ?> |
omdat de functie call_user_func eerst de callback mee moet krijgen en als tweede argument de parameter. Nu doe je het andersomquote: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?
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); ?> |
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.quote: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 ]
Heb ik inderdaad op dit moment niet als static gedefinieerd. Ga uitproberen of het daaraan ligt.quote: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.
Geen probleem. Vraag me alleen wel af wat je probeert te bereiken, want erg logisch ziet het er niet uit.quote:
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.).quote: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.
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>'; } ?> |
Maar al die classes hebben dus een statig GetName die een bepaalde naam teruggeeft of hoe moet ik het zien?quote: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)
Ja ik snap hem ook niet echt hoevaak ik er ook naar kijk xDquote: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.quote: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?
Klopt. Ik wil niet dat de eindgebruiker rechtstreeks in de HTML-code kan zien hoe de klassen intern heten.quote: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?"
Daar heeft de gebruiker niet zo veel aan hoor.quote: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.
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:quote: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.
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>'; } ?> |
De hele manier waarop je data in de database en de code zelf verwoven lijken te zijn.quote: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"?
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: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.
Is er iets mis met inheritance?quote:Sowieso heb ik het idee dat hier weer een brij aan inheritance ipv composition wordt gebruikt.
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.quote: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 naam van de functie is misschien niet zo handig gekozen.quote: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.
Ik heb graag dat eigenschappen van een klasse in die klasse zelf staan en niet ergens in een database.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.
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.quote: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.
1 2 3 4 5 | <?php $mod_parent = $this->db->LoadElement($parent_id); $childclasses = $mod_parent->FindPossibleChildClasses($this->options); ?> |
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:[..]
Is er iets mis met inheritance?
Op zich is het niet vreemd om interfaces (of abstract class, maar die beperk je het liefst tot een minimum m.i.) te hebben.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.
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 A implements myInterface { public static function getName() { echo "A"; } } Class B implements myInterface { public static function getName() { echo "B"; } } function test(myInterface $param) { $param::getName(); } ?> |
1 2 3 4 5 | <?php $classname = 'tpl_' . $classbase; $instance = new $classname; $name = call_user_func(array($instance, 'GetName')); ?> |
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.quote:Is dat verkeerd of ouderwets?
Mag ik vragen wat het doel is? Want het klinkt alsof je een soort primitieve mailserver wilt implementeren in PHP.quote: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.quote: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
Foreach en dan bij elke case de waardes uitecho'enquote: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.
Tis in perl maar je kan er mogelijk inspiratie uithalen.quote: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
Mantis?quote: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'.
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.quote:Op dinsdag 2 september 2014 13:25 schreef Robuustheid het volgende:
[..]
Als dat bij m'n omschrijving aansluit?
gewoon iets simpels als Bugzilla dan?quote: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.
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/quote:
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); } ?> |
Het lijkt vrij omslachtig in ieder geval.quote:Op dinsdag 2 september 2014 22:23 schreef TwenteFC het volgende:
Is dit heel smerig om te doen?
[ code verwijderd ]
Hoe bedoel je dit precies?quote:Op woensdag 3 september 2014 08:55 schreef Monolith het volgende:
[..]
Het lijkt vrij omslachtig in ieder geval.
1 2 3 4 | Select title, img_url, deeplink1, displayprice, productcategoryname, `Description_Short` FROM products WHERE `ProductCategoryName` like '%socks%' AND title LIKE '%woman%' |
Het lijkt op een workaround, dus de vraag is wat je er precies mee wilt bereiken.quote:
Een wrapper maken om de api van bol.comquote: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.
1 2 3 4 | <?php $bolRequest = new Bol; $phpProducten = $bolRequest->search(['q' => 'PHP']); ?> |
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/' ] ?> |
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.quote: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!
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%' |
Maybe.. just maybe moet je eens hier naar kijken: https://github.com/SPORE/(...)pore_description.podquote: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 ]
Die directorystructuur: HORRIBLE!!quote:Op woensdag 3 september 2014 22:01 schreef TwenteFC het volgende:
Wat vinden jullie hiervan?
Request validation in Laravel 4.3
https://laracasts.com/series/whats-new-in-laravel-4-3/episodes/3
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.quote: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 ]
Je kan hem heel simpel wijzigen mocht je dat willen, ging me meer om de manier waarop je formulieren en dergelijke kan valideren.quote:Op donderdag 4 september 2014 08:46 schreef slacker_nl het volgende:
[..]
Die directorystructuur: HORRIBLE!!
Je hebt helemaal gelijk, ik ga hier verderop inderdaad meer problemen mee krijgen dan dat ik oplos.quote: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.
SPOILEROm spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.Nvm, vergeet compleet de database in de functie te laden waardoor er niets opgehaald akn worden
probleem staat hierboven, sorry voor deze noobigheidTadumtiedum.
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.
Ziet er gaaf uit, hoewel pma bij mij nog niet aan vervanging toe is. Hoe denken de anderen daarover?quote:Op maandag 8 september 2014 15:32 schreef Aether het volgende:
Nieuwe MyPHPAdmin cocurrent:
[..]
[ afbeelding ]
Het is een alpha (ze raden zelf af om het in productie te gebruiken).quote: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
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.
Kun je dan wel verbinden? De meeste hosts waar ik ervaring mee heb staan geen toegang tot de database toe van buitenaf.quote:Op woensdag 10 september 2014 20:21 schreef Crutch het volgende:
Ik werk toch veul en veul liever met een desktop client zoals SQLYog
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.quote: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.
Zelfs geen overleg onder vier ogenquote:
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.quote:Op woensdag 10 september 2014 21:04 schreef Igen het volgende:
[..]
Zelfs geen overleg onder vier ogen
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.
Hoezo? ssh toegang en klaar.quote: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.
Waarom zou dat "moeten"? Zeker bij shared hosting kan dat eigenlijk nooit.quote: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 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).quote:Op woensdag 10 september 2014 21:56 schreef Tijn het volgende:
Waarom zou dat "moeten"? Zeker bij shared hosting kan dat eigenlijk nooit.
Hoezo wat? Er staat meer dan één ding in die post.quote:Op woensdag 10 september 2014 21:53 schreef slacker_nl het volgende:
[..]
Hoezo? ssh toegang en klaar.
Exact!quote: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?quote:Op woensdag 10 september 2014 21:53 schreef slacker_nl het volgende:
[..]
Hoezo? ssh toegang en klaar.
Lijkt me eerder wenselijk dat hij dichtstaat, in op zijn minst voor mensen met een ander IP adres dan mijn werklocaties.quote: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?
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.
kijk in 1 van de 6000 webhostingtopics die nu lopen. Iedere shared hosting van 2 euro per maand voldoet.quote: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.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |