login  Naam:   Wachtwoord: 
Registreer je!
 Forum

activatie link in e-mail

Offline Stefan14 - 02/03/2010 22:39
Avatar van Stefan14PHP gevorderde Ik heb een situatie die ik een beetje vreemd vind en waar ik niet uit kom.

Ik heb een aanmeld script gemaakt met een activatie link.
Ik heb tevens een apart bestand met allerlei variabelen die het aanpassen van diverse dingen van de site vergemakkelijken. De inhoud van de activatie e-mail staat hier ook in.

Nu komt de e-mail aan, het bericht wordt ook goed weergegeven. Echter de activatie link ontbreekt steeds, en dit vind ik vreemd.

aanmelden.php
  1. <?php
  2. //bevestingsmail met activatielink versturen
  3. $userID = mysql_insert_id();
  4. $activation_link = $site_url.'/activation.php?user='.$userID.'&code='.$activation_code;
  5. $onderwerp = $activation_subject;
  6. $bericht = $activation_email;
  7. $headers = "From: ".$sitename." <".$sender_email.">\r\n";
  8. $headers .= "Reply-To: ".$sitename." <".$sender_email.">\r\n";
  9. $headers .= "MIME-Version: 1.0\r\n";
  10. $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  11.  
  12. if (mail($_POST['email'],$onderwerp,$bericht,$headers)) //de activatie e-mail versturen
  13. {
  14. ?>


variables.php
  1. <?php
  2. //the email message of the activation e-mail
  3. $activation_email = 'Bedankt voor uw aanmelding<br /><br />
  4. Om uw aanmelding af te ronden moet u deze bevestigen door op onderstaande link te klikken<br />
  5. '.$activation_link.'<br />
  6. Mocht u niet op de link kunnen klikken, dan moet u deze in uw adresbalk kopiëren.<br /><br />
  7. Met vriendelijke groet,<br />
  8. '.$sitename;
  9. ?>


Enige wat ik mij kan voorstellen is dat de variabele activation_link in de tekst de variabele in aanmelden.php niet kan zien/oproepen. Maar opzich zouden deze twee bestanden toch 'samengevoegd' moeten zijn omdat deze geinclude is volgens mij. Dus snappen doe ik het niet echt.

7 antwoorden

Gesponsorde links
Offline Jelmerholland - 02/03/2010 22:56 (laatste wijziging 02/03/2010 22:58)
Avatar van Jelmerholland PHP beginner volgens mij:

Je declareerd dit prachtig:
$activation_link = $site_url.'/activation.php?user='.$userID.'&code='.$activation_code;

Maar waar verstuur je dit met je mail() mee dan? Ik zie 'm niet in 't lijstje staan, tevens zie ik 'm niet staan waar je je bericht samenstelt.

Volgens mij is dit het probleem ;)

=====Edit=====
Sorry, ik zie 'm nou ineens staan in je 2e scriptje. my mistake ;)

variables.php, hoe haal je die binnen? include(); mag ik toch hopen?
Offline Stefan14 - 02/03/2010 22:58 (laatste wijziging 02/03/2010 22:59)
Avatar van Stefan14 PHP gevorderde die variabele wordt in variables.php in de tekst van de e-mail gezet.

Vervolgens wordt de variabele waar de complete tekst in staat als bericht in de mail functie gezet.

EDIT:
variables.php wordt idd bovenaan via include(); aangeroepen.
Offline Jelmerholland - 02/03/2010 23:03 (laatste wijziging 02/03/2010 23:05)
Avatar van Jelmerholland PHP beginner Kan het komen dat jij een activatie link maakt in je bestand waar je 'm stuurt? Terwijl je eerder je bericht al samenstelt doormiddel van je variabele? 

Dat is je probleem 

Hoe los ik dit op
:?:
Door je code aan te passen 


  1. <?php
  2. //the email message of the activation e-mail
  3. $activation_link = $site_url.'/activation.php?user='.$userID.'&code='.$activation_cod;
  4.  
  5. $activation_email = 'Bedankt voor uw aanmelding<br /><br />
  6. Om uw aanmelding af te ronden moet u deze bevestigen door op onderstaande link te klikken<br />
  7. <a href=\"".$activation_link."\">'.$activation_link.'</a><br />
  8. Mocht u niet op de link kunnen klikken, dan moet u deze in uw adresbalk kopiëren.<br /><br />
  9. Met vriendelijke groet,<br />
  10. '.$sitename;
  11. ?>


  1. <?php
  2. //bevestingsmail met activatielink versturen
  3. $userID = mysql_insert_id();
  4. $onderwerp = $activation_subject;
  5. $bericht = $activation_email;
  6. $headers = "From: ".$sitename." <".$sender_email.">\r\n";
  7. $headers .= "Reply-To: ".$sitename." <".$sender_email.">\r\n";
  8. $headers .= "MIME-Version: 1.0\r\n";
  9. $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  10.  
  11. if (mail($_POST['email'],$onderwerp,$bericht,$headers)) //de activatie e-mail versturen


Zitten nog wat fouten in met je userID en activationcod, maar even geen zin om op te lossen. Ik neem aan dat je het probleem snapt ;)

Je declareerd dus een variabele in een variabele die al bestaat. Dit kan dus niet 

edit,
hij staat ook niet in de anchor tags ;) (<a></a>
Offline Stefan14 - 02/03/2010 23:06
Avatar van Stefan14 PHP gevorderde als ik het goed begrijp is de variabele $activation_email dus reeds gemaakt, terwijl de variabele $activation_link nog niet bestaat?
Klinkt idd logisch.

Even gaan puzzelen of dit makkelijk op te lossen is.
Offline Jelmerholland - 03/03/2010 07:30
Avatar van Jelmerholland PHP beginner Klopt wat je daar zegt ;)

(Ik wist niet echt hoe ik het kon uitleggen, was moe en ging slapen, had haast XD )
Offline Stefan14 - 03/03/2010 22:44
Avatar van Stefan14 PHP gevorderde Is inmiddels opgelost, weliswaar niet op de mooiste manier, maar wel de makkelijkste.
Heb na het maken van de activatiecode gewoon nog een keer variables.php geinclude.
Offline Jelmerholland - 04/03/2010 17:22
Avatar van Jelmerholland PHP beginner Dat is niet netjes en ook niet handig. Grote kans op errors. Ik zou het als ik jou was gewoon even écht oplossen. Is een kleine moeite lijkt mij ;)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.207s