Koodin tarkoituksena on tarkistaa, onko rekisteröityneen käyttäjän sähköpostiosoite vahvistettu.
Tätä voi hyödyntää esimerkiksi erillaisten kirjautumisjärjestelmien kanssa.
Koodin demo versio on vapaasti kokeiltavana osoitteessa http://kamuweb.jouluserver.com/email/index.php
Käytöstä vielä sen verran, että jos tätä halutaan käyttää kirjautuessa ja sähköpostiosoitteen pitää olla vahvistettu, niin tarkistus kuuluu tehdä niin, että tarkistetaan onko 'vahvistettu' -kenttä arvoltaan 1 vai jotain muuta. Arvolla 1 päästään läpi, ja muut arvot ovat kiellettyjä.
Serverillä täytyy tietenkin olla mail() -funktio tätä skriptiä varten ja myös MySQL tuki.
Käyttäkää viisaasti ;)
register.php
<?php include("settings.php"); if(isset($_GET["rek"])) { //Otetaan tiedot muuttujiin $tunnus = $_POST["tunnus"]; $email = $_POST["email"]; //Haetaan tietojen perusteella jäseniä $haku = mysql_query("SELECT * FROM $taulu WHERE tunnus = '$tunnus'") or die(mysql_error()); //Jos jäseniä ei löytynyt, voidaan rekisteröityä if(mysql_num_rows($haku) == 0) { //Luodaan aktivointikoodi, jossa kirjaimia ja numeroita for($i = 0; $i < 25; $i++) { $rand1 = rand(25659568396968,3474579580572626357); $rand3 = rand(25659568396968,3474579580572626357); $rand4 = rand(25659568396968,3474579580572626357); $rand5 = rand(25659568396968,3474579580572626357); $letters = "abcdefghijklmnopqrstuvwxyz"; $randletters = rand(1,25); $totalrandletters = $letters[$randletters]; $aktivointikoodi = "$totalrandletters$rand1$totalrandletters$rand2$totalrandletters$rand3$totalrandletters$rand4$totalrandletters$rand5$totalrandletters"; } //Lisätään käyttäjä mysql_query("INSERT INTO $taulu (tunnus, email, aktivoitu) VALUES ('$tunnus', '$email', '$aktivointikoodi')") or die(mysql_error()); //Asetetaan pari header tietoa viestiin $header = "MIME-Version: 1.0 \r\n"; $header .= "Content-type: text/html; charset=iso-8859-1 \r\n"; $header .= "From: $omaemail"; //Muotoillaan viesti $viesti = "<h1>Tervetuloa $tunnus!</h1><a href=\"$omaosoite/aktivoi.php?aktivoi=$aktivointikoodi\">Aktivoi sähköpostiosoitteesi!</a>"; //Lähetetään viesti mail($email, "Vahvista sähköpostiosoitteesi, $tunnus", "$viesti", $header); //Ohjataan takaisin header("Location: register.php?reg"); } else echo "Valitettavasti haluamasi tunnus on jo käytössä"; } if(isset($_GET["reg"])) { //Jos on rekisteröidytty, näytetään ilmoitus echo "Rekisteröityminen onnistui!<br>Sinulle lähetettiin vahvistusviesti sähköpostiin, jossa on linkki vahvistussivulle.<br><br>"; } mysql_close($yhteys); ?> <form action="?rek" method="post"> Tunnus:<br> <input type="text" name="tunnus"><br><br> Sähköpostiosoite:<br> <input type="text" name="email"><br><br> <input type="submit" value="Lähetä"> </form>
aktivoi.php
<?php include("settings.php"); if($_GET["aktivoi"]) { $aktivointikoodi = $_GET["aktivoi"]; mysql_query("UPDATE $taulu SET aktivoitu = 1 WHERE aktivoitu = '$aktivointikoodi'") or die(mysql_error()); } mysql_close($yhteys); ?> Tunnuksesi on nyt aktivoitu
settings.php
<?php //Yhteyden muodostaminen $yhteys = mysql_connect("localhost", "", ""); mysql_select_db(""); //Taulu johon tiedot kirjoitetaan $taulu = "email"; //Sähköpostiosoite, josta aktivointiviesti lähetetään $omaemail = "me@myserver.com"; //aktivointi.php tiedoston sijainti, esimerkiksi http://pekansivut.fi/kansio //HUOM! http:// (Jollei tiedostopolku) ja ei viimeistä kauttaviivaa. //Esimerkin mukaisesti osoite olisi $omaosoite (http://pekansivut.fi/kansio) /aktivointi.php $omaosoite = "http://pekansivut.fi/kansio"; //Luodaan taulu mysql_query("CREATE TABLE $taulu(tunnus TEXT, email TEXT, aktivoitu TEXT)"); ?>
tarkista.php
<?php include("settings.php"); if($_POST["tunnus"]) { $tunnus = $_POST["tunnus"]; $haku = mysql_query("SELECT * FROM $taulu WHERE tunnus = '$tunnus'") or die(mysql_error()); if(mysql_num_rows($haku) == 1) { $taulukko = mysql_fetch_array($haku); if($taulukko["aktivoitu"] == 1) { echo "Tunnuksen '".$taulukko["tunnus"]."' sähköpostiosoite on aktivoitu!<br>"; } else echo "Tunnuksen '".$taulukko["tunnus"]."' sähköpostiosoitetta ei ole aktivoitu!<br>"; } else echo "Tunnusta '$tunnus' ei löytynyt!<br>"; } mysql_close($yhteys); ?> <form action="tarkista.php" method="post"> Tarkista onko tunnuksen sähköpostiosoite aktivoitu:<br><br> Tunnus:<br> <input type="text" name="tunnus"><br><br> <input type="submit" value="Tarkista"> </form>
Hauska koodi, harmi että tätä ei ole julkaistu :/
Aihe on jo aika vanha, joten et voi enää vastata siihen.