wachtwoord mailer
ik heb een ledensysteem
mijn leden kunnen zich registreren en hun wachtwoord word dan zoon beveiligt wachtwoord.
ik zoek een scriptje dat je een username in kan vullen en dat dan het wachtwoord van die username gestuurt word naar het adres dat in de mysql database staat en bij die user hoort.
over prijs is te spreken.
Als het wachtwoord is gecodeerd met md5() zal je een nieuw password moeten genereren.
Wat ik graag zou willen is het standaard werk dus men is al lid en heeft een md5 gecodeerd wachtwoord en tja... men is het wachtwoord vergeten.
Ik zie dan bij sites dat je op een link klikt en je dan een nieuw wachtwoord toegemailt krijgt.
Hoe pak ik dit aan?
Dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php
// de variabelen die ik gebruik
$strWebsite = "www.lissydesign.info"; // website van listeigenaar
$strEmailSite = "[email protected]"; // email adres van listeigenaar
$strNaamSite = "LissyDesign"; // website naam
$fEdit = true;
$Active = 0; //0 is niet actief , 1 is geactiveerd
//$regDate = date("-m-d H:i:s"); //met G krijg je 0 t/m 23 uur en met H krijg je 00 t/m 23 uur.
$regDate = date("Y-m-d G-i-s");
$ip = $_SERVER['REMOTE_ADDR'];
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($_POST['radSex'])) { $regValues['Sex'] = $_POST['radSex']; }
if(isset($_POST['txtLoginnameR'])) { $regValues['Loginname'] = $_POST['txtLoginnameR']; }
if(isset($_POST['txtPassword'])) { $regValues['Password'] = $_POST['txtPassword']; }
if(isset($_POST['txtPassword2'])) { $regValues['Password2'] = $_POST['txtPassword2']; }
if(isset($_POST['txtEmail'])) { $regValues['Email'] = $_POST['txtEmail']; }
if(isset($_POST['txtDoB'])) { $regValues['DoB'] = $_POST['txtDoB']; }
$regValues['Loginname'] = trim($regValues['Loginname']);
$regValues['Password'] = trim($regValues['Password']);
$regValues['Password2'] = trim($regValues['Password2']);
$regValues['Loginname'] = trim($regValues['Loginname']);
$regValues['Email'] = trim($regValues['Email']);
$regValues['DoB'] = trim($regValues['DoB']);
$strError = CheckForm($regValues); $fEdit = true;
if($strError == "")
// maak code aan.
{ $strUserCode = GenerateUserCode();
$fEdit = false;
$Active = 0;
//kan je natuurlijk nog velden bij maken!!
$strSQL ="Insert Into users (Sex, Loginname, Password, Email, DoB, UserCode, UserActive, regDate, ip) ";
$strSQL .="Values ('".$regValues['Sex']."','".$regValues['Loginname']."','".md5($regValues['Password'])."','".$regValues['Email']."','".$regValues['DoB']."','".$strUserCode."','".$Active."','".$regDate."','".$ip."')";
mysql_query($strSQL);
// handige functie in myssql.
// na insert meteen het id in een variabele stoppen en daar kunnen we meteen mee gaan werken
$iUsersID = mysql_insert_id();
// nu als alles in de database staat gaan we een mail versturen!!
// deze kan je natuurlijk helemaal zelf aanpassen!!
// LET OP: Je moet wel even de url veranderen wat naar de pagina activeren gaat!!!!
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
//$headers .= "Content-type: text/plain; charset=iso-8859-1\n";
$headers .= "From: \"" . $strWebsite . "\" <" . $strEmailSite . ">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "X-Priority: 3\n";
$headers .= "X-MSMail-Priority: Normal\n";
$headers .= "X-Mailer: php\n";
$strSubject = "activatiemail voor aanmelden Lissy Design";
$strLog = $regValues['Loginname'];
//$strMessage = "<a href=http://www.jousite.nl/bepaalde-map-misschien/activeren.php?Type=activeren&I=$iUsersID&L=$strLog&C=$strUserCode>AANMELDEN LISSY</a>";
$strMessage = "Je account is NIET actief.<br>Je kan het account activeren door op onderstaande link te klikken:<br><br>Je account is aangemaakt met de volgende gegevens:<br><br><a href='http://www.lissydesign.info/registreren/activeren.php?Type=activeren&I=$iUsersID&L=$strLog&C=$strUserCode'> >>klik HIER voor AANMELDEN LISSY DESIGN forum<< </a><br><br><br>Vergeet je wachtwoord niet!<br>Het wachtwoord is gecodeerd opgeslagen en kan dus nooit meer worden opgehaald.<br>Mocht je je wachtwoord toch vergeten dan kan je eventueel een nieuwe wachtwoord aanvragen via een mail op de site.<br><br>Bedankt voor je registratie!<br>LissyDesign";
$strError = mail($regValues['Email'], $strSubject, $strMessage, $headers);
// als de email succesvol is verstuurd !! dat is standaard 1 in php
if($strError == 1)
{ $strError = "U bent succesvol aangemeld, <br>er is een activatie link naar u email gestuurd om uw account te activeren";
}else
{ $strError = "de mail kon niet worden verzonden, neem contact op me de admin"; }
}
}
?>
// de variabelen die ik gebruik
$strWebsite = "www.lissydesign.info"; // website van listeigenaar
$strEmailSite = "[email protected]"; // email adres van listeigenaar
$strNaamSite = "LissyDesign"; // website naam
$fEdit = true;
$Active = 0; //0 is niet actief , 1 is geactiveerd
//$regDate = date("-m-d H:i:s"); //met G krijg je 0 t/m 23 uur en met H krijg je 00 t/m 23 uur.
$regDate = date("Y-m-d G-i-s");
$ip = $_SERVER['REMOTE_ADDR'];
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(isset($_POST['radSex'])) { $regValues['Sex'] = $_POST['radSex']; }
if(isset($_POST['txtLoginnameR'])) { $regValues['Loginname'] = $_POST['txtLoginnameR']; }
if(isset($_POST['txtPassword'])) { $regValues['Password'] = $_POST['txtPassword']; }
if(isset($_POST['txtPassword2'])) { $regValues['Password2'] = $_POST['txtPassword2']; }
if(isset($_POST['txtEmail'])) { $regValues['Email'] = $_POST['txtEmail']; }
if(isset($_POST['txtDoB'])) { $regValues['DoB'] = $_POST['txtDoB']; }
$regValues['Loginname'] = trim($regValues['Loginname']);
$regValues['Password'] = trim($regValues['Password']);
$regValues['Password2'] = trim($regValues['Password2']);
$regValues['Loginname'] = trim($regValues['Loginname']);
$regValues['Email'] = trim($regValues['Email']);
$regValues['DoB'] = trim($regValues['DoB']);
$strError = CheckForm($regValues); $fEdit = true;
if($strError == "")
// maak code aan.
{ $strUserCode = GenerateUserCode();
$fEdit = false;
$Active = 0;
//kan je natuurlijk nog velden bij maken!!
$strSQL ="Insert Into users (Sex, Loginname, Password, Email, DoB, UserCode, UserActive, regDate, ip) ";
$strSQL .="Values ('".$regValues['Sex']."','".$regValues['Loginname']."','".md5($regValues['Password'])."','".$regValues['Email']."','".$regValues['DoB']."','".$strUserCode."','".$Active."','".$regDate."','".$ip."')";
mysql_query($strSQL);
// handige functie in myssql.
// na insert meteen het id in een variabele stoppen en daar kunnen we meteen mee gaan werken
$iUsersID = mysql_insert_id();
// nu als alles in de database staat gaan we een mail versturen!!
// deze kan je natuurlijk helemaal zelf aanpassen!!
// LET OP: Je moet wel even de url veranderen wat naar de pagina activeren gaat!!!!
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
//$headers .= "Content-type: text/plain; charset=iso-8859-1\n";
$headers .= "From: \"" . $strWebsite . "\" <" . $strEmailSite . ">\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "X-Priority: 3\n";
$headers .= "X-MSMail-Priority: Normal\n";
$headers .= "X-Mailer: php\n";
$strSubject = "activatiemail voor aanmelden Lissy Design";
$strLog = $regValues['Loginname'];
//$strMessage = "<a href=http://www.jousite.nl/bepaalde-map-misschien/activeren.php?Type=activeren&I=$iUsersID&L=$strLog&C=$strUserCode>AANMELDEN LISSY</a>";
$strMessage = "Je account is NIET actief.<br>Je kan het account activeren door op onderstaande link te klikken:<br><br>Je account is aangemaakt met de volgende gegevens:<br><br><a href='http://www.lissydesign.info/registreren/activeren.php?Type=activeren&I=$iUsersID&L=$strLog&C=$strUserCode'> >>klik HIER voor AANMELDEN LISSY DESIGN forum<< </a><br><br><br>Vergeet je wachtwoord niet!<br>Het wachtwoord is gecodeerd opgeslagen en kan dus nooit meer worden opgehaald.<br>Mocht je je wachtwoord toch vergeten dan kan je eventueel een nieuwe wachtwoord aanvragen via een mail op de site.<br><br>Bedankt voor je registratie!<br>LissyDesign";
$strError = mail($regValues['Email'], $strSubject, $strMessage, $headers);
// als de email succesvol is verstuurd !! dat is standaard 1 in php
if($strError == 1)
{ $strError = "U bent succesvol aangemeld, <br>er is een activatie link naar u email gestuurd om uw account te activeren";
}else
{ $strError = "de mail kon niet worden verzonden, neem contact op me de admin"; }
}
}
?>
Gebruik ik dus voor als iemand zich aanmeld.
In de Database staat actief dus op 1.
ik ben nog niet echt goed.
heb je ook een simpeler script of een scripts met comment regels erbij om het beter te begrijpen ik ben nog beginner weet je
groetjes gerard
SanThe:
Als het wachtwoord is gecodeerd met md5() zal je een nieuw password moeten genereren.
Dat is niet helemaal waar... Er zijn brute force programma's die de md5-encryptie weer omzetten. Het script hieronder heb ik van http://sitemasters.be/?pagina=scripts/scripts&cat=4&id=814 en kan teksten decoderen. Je kan proberen het gecodeerde wachtwoord terug te coderen, maar als degene van wie het wachtwoord was cijfers of andere tekens heeft gebruikt zal het niet werken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?
$hash = "1a1dc91c907325c69271ddf0c944bc72";
$char[1] = "a";
$char[2] = "b";
$char[3] = "c";
$char[4] = "d";
$char[5] = "e";
$char[6] = "f";
$char[7] = "g";
$char[8] = "h";
$char[9] = "i";
$char[10] = "j";
$char[11] = "k";
$char[12] = "l";
$char[13] = "m";
$char[14] = "n";
$char[15] = "o";
$char[16] = "p";
$char[17] = "q";
$char[18] = "r";
$char[19] = "s";
$char[20] = "t";
$char[21] = "u";
$char[22] = "v";
$char[23] = "w";
$char[24] = "x";
$char[25] = "y";
$char[26] = "z";
$char[27] = "0";
$char[28] = "1";
$char[29] = "2";
$char[30] = "3";
$char[31] = "4";
$char[32] = "5";
$char[33] = "6";
$char[34] = "7";
$char[35] = "8";
$char[36] = "9";
$top = count($char);
for ($d = 0; $d <= $top; $d++)
{
$ad = $ae.$char[$d];
for ($c = 0; $c <= $top; $c++) /// Enzo voorts. voor 4 karakters duurt het 4 min. voor 5 duurt het 12 min. voor 6 weet ik niet en voor 8 langer dan 8 uur.
{
$ac = $ad.$char[$c];
for ($b = 0; $b <= $top; $b++)
{
$ab = $ac.$char[$b];
for ($a = 0; $a <= $top; $a++)
{
$aa = $ab.$char[$a];
if(md5($aa)==$hash)
{
die('Wachtwoord: '.$aa);
}
}
}
}
}
echo "Geen Resultaat";
?>
$hash = "1a1dc91c907325c69271ddf0c944bc72";
$char[1] = "a";
$char[2] = "b";
$char[3] = "c";
$char[4] = "d";
$char[5] = "e";
$char[6] = "f";
$char[7] = "g";
$char[8] = "h";
$char[9] = "i";
$char[10] = "j";
$char[11] = "k";
$char[12] = "l";
$char[13] = "m";
$char[14] = "n";
$char[15] = "o";
$char[16] = "p";
$char[17] = "q";
$char[18] = "r";
$char[19] = "s";
$char[20] = "t";
$char[21] = "u";
$char[22] = "v";
$char[23] = "w";
$char[24] = "x";
$char[25] = "y";
$char[26] = "z";
$char[27] = "0";
$char[28] = "1";
$char[29] = "2";
$char[30] = "3";
$char[31] = "4";
$char[32] = "5";
$char[33] = "6";
$char[34] = "7";
$char[35] = "8";
$char[36] = "9";
$top = count($char);
for ($d = 0; $d <= $top; $d++)
{
$ad = $ae.$char[$d];
for ($c = 0; $c <= $top; $c++) /// Enzo voorts. voor 4 karakters duurt het 4 min. voor 5 duurt het 12 min. voor 6 weet ik niet en voor 8 langer dan 8 uur.
{
$ac = $ad.$char[$c];
for ($b = 0; $b <= $top; $b++)
{
$ab = $ac.$char[$b];
for ($a = 0; $a <= $top; $a++)
{
$aa = $ab.$char[$a];
if(md5($aa)==$hash)
{
die('Wachtwoord: '.$aa);
}
}
}
}
}
echo "Geen Resultaat";
?>
Dan heb je het Emailadres van iemand die behoord tot de ingevulde naam.
Vervolgens pak je de random wachtwoordgenerator die laat je een wachtwoord uitpoepen dat md5 je, vervolgens word het een
UPDATE gebruikers SET Password='$gegenereerdewachtwoord' WHERE Name='$name';
Dan heeft die gebruiker een nieuw vers wachtwoord. Vervolgens mail je naar dat mailadres het nieuwe wachtwoord en klaar ben je.
Programmeerwerk: 5 minuten als je het goed doet.
Voor mensen die mijn nieuwssysteem gebruiker, dat hele aanmeldsysteem zit er in princiepe standaard in als functies, ipv in het admin systeem kan je het dus ook buiten dat systeem mensen zichzelf laten aanmelden (bijv. als gebruiker ipv admin ;)). Het hele wachtwoord generatie en emailsysteem zit er ook als functie in verwerkt :).
dat het is wel mogelijk maar kost wel aardig wat tijd
kan iemand me een
ff me sin afmaken
kan iemand een scriptjuh maken die het gewoon doet op alles ofzo en die ik er zo in kan zetten
alvast bedankt
Het is niet zo dat iemand zonder informatie een standaard scriptje kan maken wat universieel werkbaar zou moeten zijn :P.
CREATE TABLE `members` (
`id` int(10) NOT NULL auto_increment,
`nickname` varchar(25) NOT NULL default '',
`passwd` varchar(32) NOT NULL default '',
`email` varchar(255) NOT NULL default '',
`registerd` int(10) NOT NULL default '0',
`key` varchar(32) NOT NULL default '0',
`referer` varchar(255) NOT NULL default '',
`lastlogin` int(10) NOT NULL default '0',
`lastaction` int(10) NOT NULL default '0',
`class` int(2) NOT NULL default '1',
`sub_class` int(2) NOT NULL default '1',
`ip` varchar(15) NOT NULL default '0',
`lokatie` int(3) NOT NULL default '1',
`land` int(10) NOT NULL default '0',
`jail` int(10) NOT NULL default '0',
`lasttravel` int(10) NOT NULL default '0',
`points` int(10) NOT NULL default '0',
`geld` bigint(255) NOT NULL default '0',
`bank` bigint(255) NOT NULL default '0',
`kluis` bigint(255) NOT NULL default '0',
`lastrente` int(10) NOT NULL default '0',
`laststort` int(10) NOT NULL default '0',
`lastcrime` int(10) NOT NULL default '0',
`lastcrimeautos` int(10) NOT NULL default '0',
`lastbuybullet` int(10) NOT NULL default '0',
`bullets` bigint(255) NOT NULL default '0',
`health` int(3) NOT NULL default '100',
`text` text NOT NULL,
`family` text NOT NULL,
`familylogo` text NOT NULL,
PRIMARY KEY (`id`),
FULLTEXT KEY `nickname` (`nickname`)
) TYPE=MyISAM AUTO_INCREMENT=3 ;
bedoel je dat?
Ziet eruit als een standaard criminal achtige games, principieel weiniger ik mee te werken aan standaard out-of-the-box systemen waaraan mensen zelf geen moeite kunnen of willen doen, maar wel snel geld denken te verdienen :P.
Sorry, wellicht dat iemand anders kan helpen, de bovenstaande procedure mag je wel 'houden'.
Wat ik persoonlijk een mooie oplossing vind is dit:
Een linkje 'wachtwoord vergeten'. Dan kom je op een pagina waar je je e-mailadres kan geven. Bij het verwerken van het e-mailadres controleren of die in de DB staat, zo nee een foutmelding.
Staat die er wel in, dan maak je met MD5 een mooie hash (bijvoorbeeld van ofzo. Die zet je in de gebruikerstabel op de regel met het e-mailadres.
Vervolgens maak stuur je een e-mail naar het adres met een tekst in de trent van:
Beste gebruiker, op de website blabla.com is voor dit account een nieuw wachtwoord aangevraagd. Als u naar http://blabla.com/forgotpassword.php?key=$hash&mail=$email gaat kunt u een nieuw wachtwoord instellen. Heeft u dit bericht niet aangevraagd, dan kunt u dit bericht verwijderen en als niet verzonden beschouwen.
En op het script forgotpassword.php controleer je of een combinatie van de $_GET-variabelen voorkomt in de DB. Zo nee, foutmelding.
Komt de combinatie wel voor, dan geef je de gebruiker een formulier om een nieuw wachtwoord te kiezen.
Op die manier heeft de gebruiker altijd een wachtwoord wat ze zelf kiezen (en zelf onthouden(?)). En als beheerder weet je zeker dat de gebruiker die op deze manier het wachtwoord wijzigt ook zeker die acctie wilt doen.
Elwin
@ Elwin : dit ben ik nu ook aan het maken en wellicht heb ik straks wat hulp nodig :-)
@Elwin, en als je nou tig keer het e-amiladres van de gene intypt??? elfde effect 8-)
Het eesrte idee wiste het wachtwoord, waardoor de gebruiker zowiezo niet meer kon inloggen.