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.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 hehequote: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?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
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?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |