Her er hele koden. Hvis stien til $validate_file ikke er rigtig kommer den med fejlen: "Logfilen findes ikke, eller scriptet kan ikke læse eller skrive til den" som den skal, men når en bruger skal godkende via linket i hans mail kommer den blot op med en tom side, mail adr. bliver fint skrevet til 'email.txt' men jeg får heller ingen mail om at brugeren har godkendt at det er ham som er indehavere af mailen.
<? $admin_email = 'xxx@xxx.dk';
// A file used to store the Emails not validated $validate_file = 'email.txt';
// Timeout $timeout = 60*30;
if (!(file_exists($validate_file) && is_readable($validate_file) && is_writeable($validate_file))) { print "Logfilen findes ikke, eller scriptet kan ikke læse eller skrive til den"; exit(); }
if ($_GET['activate']) { if (file_exists($validate_file)) { $lines = file($validate_file); $write_through = array(); if (count($lines) > 0) { $clines = count($lines); for ($i = 0;$i < $clines; $i++) { list($Email,$time) = explode(":",$lines[$i]); if ($time + $timeout > time()) { if ($_GET['hash'] == md5('activate ' . md5($Email))) { mail($admin_email,'Email validated correct','Email: ' . $Email); print "din email adresse blev valideret korrekt";
// Write the rest to the file again $fp = fopen($validate_file,'w'); $clines = count($write_through); for($i = 0;$i < $clines;$i++) { fwrite($fp,$write_through[$i]); } } }
if (!$sendt) { print "Der gik noget galt. din mail er ikke blevet sendt"; } } elseif($_GET['Email']) { $activate_hash = md5('activate ' . md5($_GET['Email'])); $link = $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'] . '?activate=' . $_GET['Email'] . '&hash=' . $activate_hash;
if (file_exists($validate_file)) { $fp = fopen($validate_file,'a+'); fwrite($fp,sprintf("\n%s:%s",$_GET['Email'],time())); }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.