login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Geen bericht bij fout

Offline SimonDW - 19/07/2015 20:23
Avatar van SimonDWNieuw lid Ik heb onderstaande code werkend.
Zal ff kort de bedoeling schetsen: als een bezoeker zijn profielpagina wil aanpassen kan hij dat doen aan de hand van een token. Als hij dit token niet meer weet, kan hij het laten doormailen.

ID en e-mail adres dat gekoppeld zijn aan de token zijn daarbij belangrijk.
Er wordt alleen maar een mail verstuurd als dit overeen komt.

Als ID en e-mail niet overeenkomen wordt er geen mail verstuurd. Op zich is dit uiteraard OK, maar met onderstaand script krijg ik geen foutmelding dat er iets foutgelopen is.

Iemand een idee hoe ik dat kan oplossen?

  1. <?
  2. break;
  3. case "mailToken":
  4. include("database.php");
  5.  
  6. $myComm = "SELECT id, email, token FROM profiel WHERE id='$_POST[id]' AND email='$_POST[email]'";
  7. $result = mysqli_query($myConn, $myComm) or die(mysql_error());
  8. while ($row = mysqli_fetch_array($result)) {
  9.  
  10. // Mail uitsturen
  11.  
  12. $adminmail = "simon.dewael@gmail.com";
  13. $id = "$row[id]";
  14. $toMail = "$row[email]";
  15. $token = "$row[token]";
  16.  
  17. mail("$toMail","Uw token","Beste, u heeft via de website uw token aangevraagd.\nHierbij de gegevens: $token\nMet deze gegevens kan u uw profiel aanpassen.", "FROM:<$adminmail>\r\nReply-To:<$adminmail>\r");
  18.  
  19. echo "<p>Uw gegevens werden succesvol naar uw geregistreerde e-mail adres verzonden.</p>";
  20. }
  21. ?>

3 antwoorden

Gesponsorde links
Offline Thomas - 19/07/2015 21:56
Avatar van Thomas Moderator Kijken of je query resultaten oplevert?

Er klopt trouwens niet veel van je quotes, en je queries zijn ook niet helemaal veilig op deze manier. Gebruik mysqli_real_escape_string() + (enkele) quotes om deze data-delen (je input van buitenaf) heen om deze te beveiligen tegen SQL-injectie.
Offline SimonDW - 20/07/2015 09:03
Avatar van SimonDW Nieuw lid Hoi, de query levert inderdaad resultaat op. En alleen maar als het ID overeenkomt met het email adres dat bij dat ID hoort.
Dan wordt er een mailtje gestuurd met de juiste token.
Als ID en email adres niet overeen komen gebeurt er niets (geen mailtje maar ook geen melding).

Offline Thomas - 20/07/2015 14:03 (laatste wijziging 20/07/2015 14:07)
Avatar van Thomas Moderator Als je hebt vastgesteld dat de query resultaten oplevert is de volgende stap kijken wat er met je mail gebeurt.

In eerste instantie zou je eens kunnen kijken of een aanroep van mail() true retourneert, dat houdt in dat vanuit PHP gezien de mail succesvol "verstuurd" is.

Als je vervolgens nog niets ontvangt zitten deze mailtjes mogelijk nog in je mail queue.

Dat is zoiets als: je hebt je envelop op de post gedaan, maar de brievenbus wordt nooit geleegd. In dat geval zou je eens bij je provider kunnen informeren of er een proces (opnieuw) in gang gezet moet worden.

Daarnaast zou je eens kunnen proberen e.e.a. in een los script te testen waarin enkel een e-mailbericht wordt verstuurd, je test dan echt afzonderlijk de werking van je mail-functionaliteit.

EDIT: Samenhangend met mijn vorige opmerking over quotes zou je ook eens kunnen kijken wat de exacte waarde van $toMail is, want deze constructie waarbij je array-indices niet voorziet van quotes, maar wel (dubbele) quotes om het geheel zet klopt gewoon niet.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.177s