Avatar billede fragze Juniormester
20. januar 2004 - 08:21 Der er 9 kommentarer og
2 løsninger

Temp bruger.

Hello out there... jeg har lavet et script som opretter en bruger i min sql db, og  sender et activation link til vedkomnes email... nu er det så at den bare opretter også når man klikker sætter "aktiv" til 1 fremfor 0, og det virker sådan set også fint nok- MEN kan man lave sådan at hvis man ikk har klikket inden 5 min, på det link man har fået i emailen at den så sletter brugeren fra dben igen ? flok kan jo skrive en forkert mail...?
Avatar billede fragze Juniormester
20. januar 2004 - 08:21 #1
<link rel="STYLESHEET" type="text/css" href="style.css">
<?
$action = $_GET['action'];
$nick = $_REQUEST['nick'];
$password = $_REQUEST['password'];
$email = $_REQUEST['email'];


if($action == "opret")
  {
  mysql_query("INSERT INTO brugere (userid, nick, password, email)
      VALUES('', '$nick',  md5('$password'), '$email')") or die(mysql_error());

$pass = md5('$password');
$mailbody = "
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<style type=\"text/css\">
<!--
.style1 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 9px;
}
-->
</style>
</head>
<body>
<span class=\"style1\">Welcome to Team Kapow! - <u>$nick</u><br> <br>
To log into our site you have to activate your account by clicking at this link!:<br>
      <a href=\"http://yellow.dammoel.dk/aktiver.php?nick=$nick&password=$password\"> Here...!</a><br><br>
      Your username: <strong>$nick</strong><br>
      Your password: <strong>$password</strong><br><br>
     
      Regards:<br>
      <a href=\"www.Team-Kapow.com</a><br>" target="_blank">http://www.team-kapow.com\">www.Team-Kapow.com</a><br>
   
     
     
      </span>
      </body>
</html>";



  mail("$email", "Welcome to Team Kapow!","$mailbody", "From: \"Activation link from team-kapow.com\"<activate@team-kapow.com>\nContent-Type: text/html; charset=iso-8859-1\nContent-Transfer-Encoding: 8bit");

 
      echo "Your have now recieved an email wih at registration  link...!"; 
  }
 
else
  {
 
 

echo "<body>
<form action=\"?site=addmember&action=opret\" method=\"post\">
<table>
  <tr>

  </tr>

  <tr>
    <td width=\"72\"><font face=\&quot;Verdana\&quot; style=\"font-size: 8pt\">Username:</font></td>
    <td width=\"1\"><input type=\"text\" name=\"nick\" size=\"20\"></td>
  </tr>
  <tr>
    <td width=\"72\"><font face=\"Verdana\" style=\"font-size: 8pt\">Password:</font></td>
    <td width=\"1\"><input type=\"text\" name=\"password\" size=\"20\"></td>
  </tr>
  <tr>
    <td width=\"72\"><font face=\"Verdana\" style=\"font-size: 8pt\">Email:</font></td>
    <td width=\"1\"><input type=\"text\" name=\"email\" size=\"20\"></td>
  </tr>
  <tr>
    <td width=\"338\" colspan=\"2\"><center><input type=\"submit\" value=\"add user\"></td>
  </tr>
  </table>
  </form>";
 
}
  ?>
Avatar billede limemedia Nybegynder
20. januar 2004 - 08:32 #2
Hvis du i din database opretter et tidsstempel (datetime/timestamp eller lign) for hvornår brugeren er oprettet, kan du med et database kald fjerne ikke aktiverede konti efter et stykke tid - 5 min er måske lige optimistisk nok

DELETE FROM brugere
WHERE activated='0' && tstamp<DATE_SUB(NOW(), INTERVAL 1 DAY)

Se også http://www.mysql.com/doc/en/Date_and_time_functions.html

PS. Test lige på nogle mindre vigtige tabeller, når du leger med delete funktioner ;)
Avatar billede Slettet bruger
20. januar 2004 - 09:19 #3
bemærk, at du ikke kan få databasen til automatisk at slette forældet poster.
Det kræver at du køre en side hvor scriptet ligger på.
Du kunne eksempelvis indsætte det på din side, så hver gang en bruger kommer forbi hjemmesiden tjekker den efter de gamle poster og fjerner dem.

du skal nok sætte den lidt højere end fem min. Hvis mailen bliver forsinket, eller brugeren ikke har tid lige efter oprettelsen. Måske du skulle sætte den til en dag i stedet.
Avatar billede fragze Juniormester
20. januar 2004 - 09:25 #4
jeg går ud fra jeg kan smide det på min index.php ? :D
Avatar billede fragze Juniormester
20. januar 2004 - 09:29 #5
Nu har jeg lavet et felt i min tabel brugere der hedder "adddate" hvor den så AUTO får indholdet "20040120092724" hvordan ska jeg så sætte det der ind i min index site ?

med noget
<?php
?>
Avatar billede fragze Juniormester
20. januar 2004 - 09:51 #6
..? :P
Avatar billede limemedia Nybegynder
20. januar 2004 - 09:53 #7
lav en
mysql_query("
  DELETE FROM brugere
  WHERE activated='0' && adddate<DATE_SUB(NOW(), INTERVAL 1 DAY)
") or die(mysql_error());
så vil det køre når siden vises
Avatar billede Slettet bruger
20. januar 2004 - 09:53 #8
Som lars-jensen også skriver, kan du gøre noget ala:
Her fjerner den alle der er mere end 1 dag gammel. Husk at ændre brugere, til hvad tabellen hedder, og hvis feltet med aktiveret (0 eller 1) hedder noget andet end activated hedder noget andet, skal dette også ændres.

<?PHP

// husk din database tilslutning
mysql_query("DELETE FROM brugere WHERE activated='0' AND TO_DAYS(NOW()) - TO_DAYS(adddate) > 1") or die(mysql_error());
?>
Avatar billede fragze Juniormester
20. januar 2004 - 10:00 #9
kk cyber hvis du vil ha lidt point så smid et svar =)
Avatar billede fragze Juniormester
20. januar 2004 - 10:01 #10
og kig lige her igen :P

http://www.eksperten.dk/spm/454219
Avatar billede Slettet bruger
20. januar 2004 - 10:14 #11
svar ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester