Hey Udviklere !
Jeg er igang med at lave sådan en funktion så før man kan logge ind med sin bruger skal man bekræfte sim mail adresse (en mail aktivation men får via. mail self
)..
min kode:
<?php
include("include.php")
?>
<div id="tekst">
<?php
function password ($len=8) {
$chars = "abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ123456789";
mt_srand( (double) microtime() * 1000000);
for ($i=1;$i<=$len;$i++) $out .= $chars[mt_rand(0,(strlen($chars)-1))];
return $out;
}
$ip = $_SERVER ['REMOTE_ADDR'];
$tid = date("d-m-Y");
require_once 'config.php';
print '<h1>Opret bruger</h1>';
if ($_SERVER ['REQUEST_METHOD'] == 'POST') {
$_POST = array_map ('SecureString', $_POST);
@extract ($_POST);
$errors = array ();
// Validation
if (!$user)
$errors [] = 'Du skal vælge et brugernavn';
if (!$navn)
$errors [] = 'Du skal skrive dit navn';
if (!$alder)
$errors [] = 'Du skal skrive din alder';
if (!$mail)
$errors [] = 'Du skal skrive din e-mail adresse';
if (@mysql_num_rows (@mysql_query (
"SELECT user FROM login WHERE user = '$user'"
)))
$errors [] = 'Brugernavnet er optaget';
if (@mysql_num_rows (@mysql_query (
"SELECT mail FROM login WHERE mail = '$mail'"
)))
$errors [] = 'Den indtastede email er allerede i brug';
// Check whether valid or not
if (sizeof ($errors)) {
print '<ul type="square" style="color: red">';
foreach ($errors as $e)
print '<li>' . $e . '</li>';
print '</ul>';
} else {
$pass = password(8);
if (@mysql_query ("INSERT INTO login (user, pass, alder, navn, mail, homepage, dato, ip) VALUES ('$user', '$pass', '$alder', '$navn', '$mail', '$homepage', NOW(), '$ip')")) {
$sendto = $row[mail];
$email = ("noreply@webtjenesten.dk");
$msg = "<h1>Webtjenesten.dk</h1>.";
$msg .= "<b>Tak " . $row[navn] . " fordi du valgte at oprette en bruger på webtjenesten.dk!";
$msg .= "Før du kan loggeind skal du bekræfte din mail adresse.";
$msg .= "Gå til: <a href=http://www.webtjenesten.dk/aktiver_bruger.php?id=" . $row[id] . ">www.webtjenesten.dk/aktiver_bruger.php?id=" . $row[id] . "</a>";
$msg .= "Derefter skal du skrive følgende kode: <b>" . $row[pass] . "</b>";
$msg .= "Hvis du mener du har fået denne mail, som en fejl- kan du kontakte webmasteren!";
$msg .= "Mvh. webtjenesten.dk";
$subject = "Webtjenesten.dk - Mail aktivation";
if(mail($sendto, $subject, $msg, "From: $email" . "Reply-To: $email")) {
print 'Tak <b>' . $navn . '</b> fordi du oprettede en bruger på webtjenesten.dk<br>Før du kan logge ind med brugeren <b>' . $user . '</b> skal du aktivere din mail adresse. Der er nu sendt en mail bekræftelse til <b>' . $sendto . '</b> med et link og en kode. Vejledning findes i mailen. <br><B>OBS!:</B> Hvis du ikke har modtaget en mail aktivation inden for 30 min. så kig i din JUNK/SPAM mappe.</div>';
}
} else {
print '<p>Der opstod en fejl. Prøv igen senere.</p>';
}
}
}
print '<form action="" method="POST">';
print '<table>';
print '<tr><td><b>Bruger Oplysninger:</b></td></tr>';
print '<tr><td>Navn:</td><td><input type="text" name="navn" /></td></tr>';
print '<tr><td>Alder:</td><td><input type="text" name="alder" /></td></tr>';
print '<tr><td>E-mail:</td><td><input type="text" name="mail" /></td></tr>';
print '<tr><td>Hjemmeside:</td><td><input type="text" name="homepage" /></td></tr>';
print '<tr><td>Brugernavn:</td><td><input type="text" name="user" /></td></tr>';
print '<tr><td></td></tr>';
print '<tr><td><b>General info:</b></td></tr>';
print '<tr><td>Dato:</td><td><input STYLE="color: black" type="text" name="dato" value="' . $tid . '" disabled></td></tr>';
print '<tr><td>IP:</td><td><input STYLE="color: black" type="text" name="ip_adress_id_211138" value="' . $ip . '" disabled></td></tr>';
print '<tr><td>Rang:</td><td><input STYLE="color: black" type="text" name="rang()" value="Bruger" disabled></td></tr>';
print '<tr><td> </td><td><input type="submit" value="Opret bruger" /></td></tr>';
print '</table>';
print '</form>';
?>
</div>
Når man har udfyldt alle felter og trykket på "opret bruger" tilføjer den alt til databasen (brugernavn, mail osv), men den skriver ikke:
print 'Tak <b>' . $navn . '</b> fordi du oprettede en bruger på webtjenesten.dk<br>Før du kan logge ind med brugeren <b>' . $user . '</b> skal du aktivere din mail adresse. Der er nu sendt en mail bekræftelse til <b>' . $sendto . '</b> med et link og en kode. Vejledning findes i mailen. <br><B>OBS!:</B> Hvis du ikke har modtaget en mail aktivation inden for 30 min. så kig i din JUNK/SPAM mappe.</div>';´
Hvilket den normalt skulle :-)
- og! Den sender heller ikke en mail til brugeren..
Har prøvet alt muligt i ret langtid men intet virkede /:
Håber en af jer så kan spotte fejlen og skrive/rette det for mig :-)
Men vi ses !
p.s. Hahahah, glæder mig til forbrydelsen, gør I?