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