wachtwoord vergeten script
Ik ben opzoek naar iemand die een script kan schrijven waarmee klanten hun wachtwoord kunnen opvragen.
Om een wachtwoord te kunnen opvragen heeft men het juiste emailadres nodig. Het emailadres is al bij ons bekend dus moet uit de db worden gehaald. Het wachtwoord moet worden verstuurd naar dat emailadres.
Het wachtwoord staat in de DB door middel van MD5.
Prijsopgave gevraagd Het gaat hier om een eenmalige opdracht
Gewijzigd op 06/01/2016 20:06:48 door - Ariën -
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
69
70
71
72
73
74
75
76
77
78
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
69
70
71
72
73
74
75
76
77
78
<?php
// Als het gaat om bevestigen van het mailtje
if($_GET['actie'] == "bevestigen")
{
$activatiecode = sqlsafe($_GET['code']);
$select_code = "SELECT * FROM `".$ledentabel."` WHERE `vergeetcode` = '".$activatiecode."'";
$query_code = mysql_query($select_code) or die (mysql_error());
$show_code = mysql_fetch_assoc($query_code);
if(mysql_num_rows($query_code) == "0")
{
echo "<div style=\"color:red;\">U heeft een verkeerde activatiecode ingevuld, of uw heeft reeds een bevestiging gedaan!</div>";
}
else
{
// Email selecteren
$res = mysql_query("SELECT * FROM `".$ledentabel."` WHERE `vergeetcode` = '".$activatiecode."'");
$show = mysql_fetch_assoc($res);
// Password maken
$pass = randomcode(10);
// Melding geven
echo "Er is een mail met een nieuw wachtwoord gestuurd.";
// Database updaten
mysql_query("UPDATE `".$ledentabel."` SET `vergeetcode` = '', password = '".md5($pass)."' WHERE `vergeetcode` = '".$activatiecode."'");
// Mail versturen
$aan = $show['emailadres'];
$onderwerp = "Nieuw wachtwoord";
$bericht = "Beste,<br /><br />Via wachtwoord vergeten op ".$eigen_site." heeft u een nieuw wachtwoord aangevraagd.<br /><br /><strong>U kunt nu inloggen met het wachtwoord:</strong> ".$pass."<br /><br />Met vriendelijke groet,<br /><br />".$eigen_naam;
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$eigen_naam." <".$eigen_mail.">\r\n";
mail($aan, $onderwerp, $bericht, $headers);
}
}
else
{
if(($_SERVER['REQUEST_METHOD'] == "POST") && ($_POST['vergeten']))
{
$que = mysql_query("SELECT * FROM `".$ledentabel."` WHERE emailadres = '".sqlsafe($_POST['emailadres'])."'");
if(mysql_num_rows($que) == 0)
{
echo "<p>Het ingevuld emailadres is niet geldig of staat niet in de database!</p>";
}
else
{
// Code
$activatiecode = randomcode(10);
// Melding
echo "<p>Er is een bevestigingsmail naar je e-mailadres gestuurd.</p>";
// Database updaten dus code inserten
mysql_query("UPDATE `".$ledentabel."` SET `vergeetcode` = '".$activatiecode."' WHERE `emailadres` = '".sqlsafe($_POST['emailadres'])."'");
// Mail versturen
$aan = sqlsafe($_POST['emailadres']);
$onderwerp = "Wachtwoord vergeten";
$bericht = "Beste,<br /><br />Via de website ".$eigen_site." is aangegeven dat u uw wachtwoord vergeten bent.<br /><br />Wanneer dit het geval is, dient u op onderstaande link te klikken. Wanneer dit niet zo is, kunt u deze mail als niet verzonden beschouwen.<br /><br />Link: <a href=\"".$eigen_url."addons/wachtwoordvergeten.php?actie=bevestigen&code=".$activatiecode."\">".$eigen_url."addons/wachtwoordvergeten.php?actie=bevestigen&code=".$activatiecode."</a><br /><br />Met vriendelijke groet,<br /><br />".$eigen_naam;
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$eigen_naam." <".$eigen_mail.">\r\n";
mail($aan, $onderwerp, $bericht, $headers);
}
}
else
{
echo "<p>Vul hieronder uw emailadres in. Er zal een link naar je emailadres gestuurd worden. Wanneer u hier op klikt wordt er een nieuw wachtwoord aangemaakt.</p><br />";
echo "<p><form method=\"post\" action=\"\">E-mailadres: <input type=\"text\" name=\"emailadres\" /><br /><br /><input type=\"submit\" name=\"vergeten\" value=\"Verstuur\" /></form></p>";
}
}
?>
// Als het gaat om bevestigen van het mailtje
if($_GET['actie'] == "bevestigen")
{
$activatiecode = sqlsafe($_GET['code']);
$select_code = "SELECT * FROM `".$ledentabel."` WHERE `vergeetcode` = '".$activatiecode."'";
$query_code = mysql_query($select_code) or die (mysql_error());
$show_code = mysql_fetch_assoc($query_code);
if(mysql_num_rows($query_code) == "0")
{
echo "<div style=\"color:red;\">U heeft een verkeerde activatiecode ingevuld, of uw heeft reeds een bevestiging gedaan!</div>";
}
else
{
// Email selecteren
$res = mysql_query("SELECT * FROM `".$ledentabel."` WHERE `vergeetcode` = '".$activatiecode."'");
$show = mysql_fetch_assoc($res);
// Password maken
$pass = randomcode(10);
// Melding geven
echo "Er is een mail met een nieuw wachtwoord gestuurd.";
// Database updaten
mysql_query("UPDATE `".$ledentabel."` SET `vergeetcode` = '', password = '".md5($pass)."' WHERE `vergeetcode` = '".$activatiecode."'");
// Mail versturen
$aan = $show['emailadres'];
$onderwerp = "Nieuw wachtwoord";
$bericht = "Beste,<br /><br />Via wachtwoord vergeten op ".$eigen_site." heeft u een nieuw wachtwoord aangevraagd.<br /><br /><strong>U kunt nu inloggen met het wachtwoord:</strong> ".$pass."<br /><br />Met vriendelijke groet,<br /><br />".$eigen_naam;
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$eigen_naam." <".$eigen_mail.">\r\n";
mail($aan, $onderwerp, $bericht, $headers);
}
}
else
{
if(($_SERVER['REQUEST_METHOD'] == "POST") && ($_POST['vergeten']))
{
$que = mysql_query("SELECT * FROM `".$ledentabel."` WHERE emailadres = '".sqlsafe($_POST['emailadres'])."'");
if(mysql_num_rows($que) == 0)
{
echo "<p>Het ingevuld emailadres is niet geldig of staat niet in de database!</p>";
}
else
{
// Code
$activatiecode = randomcode(10);
// Melding
echo "<p>Er is een bevestigingsmail naar je e-mailadres gestuurd.</p>";
// Database updaten dus code inserten
mysql_query("UPDATE `".$ledentabel."` SET `vergeetcode` = '".$activatiecode."' WHERE `emailadres` = '".sqlsafe($_POST['emailadres'])."'");
// Mail versturen
$aan = sqlsafe($_POST['emailadres']);
$onderwerp = "Wachtwoord vergeten";
$bericht = "Beste,<br /><br />Via de website ".$eigen_site." is aangegeven dat u uw wachtwoord vergeten bent.<br /><br />Wanneer dit het geval is, dient u op onderstaande link te klikken. Wanneer dit niet zo is, kunt u deze mail als niet verzonden beschouwen.<br /><br />Link: <a href=\"".$eigen_url."addons/wachtwoordvergeten.php?actie=bevestigen&code=".$activatiecode."\">".$eigen_url."addons/wachtwoordvergeten.php?actie=bevestigen&code=".$activatiecode."</a><br /><br />Met vriendelijke groet,<br /><br />".$eigen_naam;
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$eigen_naam." <".$eigen_mail.">\r\n";
mail($aan, $onderwerp, $bericht, $headers);
}
}
else
{
echo "<p>Vul hieronder uw emailadres in. Er zal een link naar je emailadres gestuurd worden. Wanneer u hier op klikt wordt er een nieuw wachtwoord aangemaakt.</p><br />";
echo "<p><form method=\"post\" action=\"\">E-mailadres: <input type=\"text\" name=\"emailadres\" /><br /><br /><input type=\"submit\" name=\"vergeten\" value=\"Verstuur\" /></form></p>";
}
}
?>
Script komt overigens uit MultiSess 'add-ons' overzicht en moet nog ligt worden bijgeschaafd...
En de credits gaan naar M.Poelman
Gewijzigd op 01/01/1970 01:00:00 door - Ariën -
Wauw dat is snel, heel erg bedankt, ik ga er eens mee stoeien.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$ledentabel = "kl_overzicht";
$eigen_site = "www.jcsl.nl/klanten";
$eigen_naam = "J.S. Coolen";
$eigen_mail = "[email protected]";
?>
$ledentabel = "kl_overzicht";
$eigen_site = "www.jcsl.nl/klanten";
$eigen_naam = "J.S. Coolen";
$eigen_mail = "[email protected]";
?>
En waar nodig de QRY aangepast.
Ik krijg nu als foutmelding:
Fatal error: Call to undefined function sqlsafe() in /home/jcsl/public_html/klanten/includes/wachtwoord_vergeten.php on line 51
regel 50 t/m 52:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
{
$que = mysql_query("SELECT * FROM `".$ledentabel."` WHERE kl_overzicht_email = '".sqlsafe($_POST['emailadres'])."'");
?>
{
$que = mysql_query("SELECT * FROM `".$ledentabel."` WHERE kl_overzicht_email = '".sqlsafe($_POST['emailadres'])."'");
?>
het script gebruikt een functie sqlsafe() die gelijk staat aan mysql_real_escape_string()
Kan je net zo goed even opnieuw scripten, dit lijkt natuurlijk nergens op.
Dus ik moet een functie maken waarin ik aangeef dat sqlsafe() gelijk is aan
mysql_real_escape_string() ?
@ Mr.Ark
Ik ben blij met wat ik aangeboden krijg. Ik vind het zelf nog een beetje te moeilijk.
Ik heb ook nog een probleem met het script
Warning: Cannot modify header information - headers already sent by (output started at /home/jcsl/public_html/klanten/includes/wachtwoord_vergeten.php:85) in /home/jcsl/public_html/klanten/inlog/func.toegang.php on line 72
Warning: Cannot modify header information - headers already sent by (output started at /home/jcsl/public_html/klanten/includes/wachtwoord_vergeten.php:85) in /home/jcsl/public_html/klanten/inlog/func.toegang.php on line 73
Warning: Cannot modify header information - headers already sent by (output started at /home/jcsl/public_html/klanten/includes/wachtwoord_vergeten.php:85) in /home/jcsl/public_html/klanten/inlog/func.toegang.php on line 74
Warning: Cannot modify header information - headers already sent by (output started at /home/jcsl/public_html/klanten/includes/wachtwoord_vergeten.php:85) in /home/jcsl/public_html/klanten/inlog/func.toegang.php on line 75
Warning: Cannot modify header information - headers already sent by (output started at /home/jcsl/public_html/klanten/includes/wachtwoord_vergeten.php:85) in /home/jcsl/public_html/klanten/inlog/func.toegang.php on line 76
72 t/m 76 (func.toegang
Code (php)
Dit is het script zover:
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
$ledentabel = "kl_overzicht";
$eigen_site = "www.jcsl.nl/klanten";
$eigen_naam = "J.S. Coolen";
$eigen_mail = "[email protected]";
$eigen_url = "http://www.jcsl.nl/klanten/index.php";
// Als het gaat om bevestigen van het mailtje
if($_GET['actie'] == "bevestigen")
{
$activatiecode = sqlsafe($_GET['code']);
$select_code = "SELECT * FROM `".$ledentabel."` WHERE `kl_overzicht_vergeetcode` = '".$activatiecode."'";
$query_code = mysql_query($select_code) or die (mysql_error());
$show_code = mysql_fetch_assoc($query_code);
if(mysql_num_rows($query_code) == "0")
{
$main .= "<div style=\"color:red;\">U heeft een verkeerde activatiecode ingevuld, of uw heeft reeds een bevestiging gedaan!</div>";
}
else
{
// Email selecteren
$res = mysql_query("SELECT * FROM `".$ledentabel."` WHERE `kl_overzicht_vergeetcode` = '".$activatiecode."'");
$show = mysql_fetch_assoc($res);
// Password maken
$pass = randomcode(10);
// Melding geven
$main .= "Er is een mail met een nieuw wachtwoord gestuurd.";
// Database updaten
mysql_query("UPDATE `".$ledentabel."` SET `kl_overzicht_vergeetcode` = '', kl_overzicht_password = '".md5($pass)."' WHERE `kl_overzicht_vergeetcode` = '".$activatiecode."'");
// Mail versturen
$aan = $show['emailadres'];
$onderwerp = "Nieuw wachtwoord";
$bericht = "Beste,<br /><br />Via wachtwoord vergeten op ".$eigen_site." heeft u een nieuw wachtwoord aangevraagd.<br /><br /><strong>U kunt nu inloggen met het wachtwoord:</strong> ".$pass."<br /><br />Met vriendelijke groet,<br /><br />".$eigen_naam;
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$eigen_naam." <".$eigen_mail.">\r\n";
mail($aan, $onderwerp, $bericht, $headers);
}
}
else
{
if(($_SERVER['REQUEST_METHOD'] == "POST") && ($_POST['vergeten']))
{
$que = mysql_query("SELECT * FROM `".$ledentabel."` WHERE kl_overzicht_email = '".sqlsafe($_POST['emailadres'])."'");
if(mysql_num_rows($que) == 0)
{
$main .= "<p>Het ingevuld emailadres is niet geldig of staat niet in de database!</p>";
}
else
{
// Code
$activatiecode = randomcode(10);
// Melding
$main .= "<p>Er is een bevestigingsmail naar je e-mailadres gestuurd.</p>";
// Database updaten dus code inserten
mysql_query("UPDATE `".$ledentabel."` SET `kl_overzicht_vergeetcode` = '".$activatiecode."' WHERE `emailadres` = '".sqlsafe($_POST['emailadres'])."'");
// Mail versturen
$aan = sqlsafe($_POST['emailadres']);
$onderwerp = "Wachtwoord vergeten";
$bericht = "Beste,<br /><br />Via de website ".$eigen_site." is aangegeven dat u uw wachtwoord vergeten bent.<br /><br />Wanneer dit het geval is, dient u op onderstaande link te klikken. Wanneer dit niet zo is, kunt u deze mail als niet verzonden beschouwen.<br /><br />Link: <a href=\"".$eigen_url."klantenpagnia=ww_vergeten&actie=bevestigen&code=".$activatiecode."\">".$eigen_url."klantenpagnia=ww_vergeten&actie=bevestigen&code=".$activatiecode."</a><br /><br />Met vriendelijke groet,<br /><br />".$eigen_naam;
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$eigen_naam." <".$eigen_mail.">\r\n";
mail($aan, $onderwerp, $bericht, $headers);
}
}
else
{
$main .= "<p>Vul hieronder uw emailadres in. Er zal een link naar je emailadres gestuurd worden. Wanneer u hier op klikt wordt er een nieuw wachtwoord aangemaakt.</p><br />";
$main .= "<p><form method=\"post\" action=\"\">E-mailadres: <input type=\"text\" name=\"emailadres\" /><br /><br /><input type=\"submit\" name=\"vergeten\" value=\"Verstuur\" /></form></p>";
}
}
?>
$ledentabel = "kl_overzicht";
$eigen_site = "www.jcsl.nl/klanten";
$eigen_naam = "J.S. Coolen";
$eigen_mail = "[email protected]";
$eigen_url = "http://www.jcsl.nl/klanten/index.php";
// Als het gaat om bevestigen van het mailtje
if($_GET['actie'] == "bevestigen")
{
$activatiecode = sqlsafe($_GET['code']);
$select_code = "SELECT * FROM `".$ledentabel."` WHERE `kl_overzicht_vergeetcode` = '".$activatiecode."'";
$query_code = mysql_query($select_code) or die (mysql_error());
$show_code = mysql_fetch_assoc($query_code);
if(mysql_num_rows($query_code) == "0")
{
$main .= "<div style=\"color:red;\">U heeft een verkeerde activatiecode ingevuld, of uw heeft reeds een bevestiging gedaan!</div>";
}
else
{
// Email selecteren
$res = mysql_query("SELECT * FROM `".$ledentabel."` WHERE `kl_overzicht_vergeetcode` = '".$activatiecode."'");
$show = mysql_fetch_assoc($res);
// Password maken
$pass = randomcode(10);
// Melding geven
$main .= "Er is een mail met een nieuw wachtwoord gestuurd.";
// Database updaten
mysql_query("UPDATE `".$ledentabel."` SET `kl_overzicht_vergeetcode` = '', kl_overzicht_password = '".md5($pass)."' WHERE `kl_overzicht_vergeetcode` = '".$activatiecode."'");
// Mail versturen
$aan = $show['emailadres'];
$onderwerp = "Nieuw wachtwoord";
$bericht = "Beste,<br /><br />Via wachtwoord vergeten op ".$eigen_site." heeft u een nieuw wachtwoord aangevraagd.<br /><br /><strong>U kunt nu inloggen met het wachtwoord:</strong> ".$pass."<br /><br />Met vriendelijke groet,<br /><br />".$eigen_naam;
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$eigen_naam." <".$eigen_mail.">\r\n";
mail($aan, $onderwerp, $bericht, $headers);
}
}
else
{
if(($_SERVER['REQUEST_METHOD'] == "POST") && ($_POST['vergeten']))
{
$que = mysql_query("SELECT * FROM `".$ledentabel."` WHERE kl_overzicht_email = '".sqlsafe($_POST['emailadres'])."'");
if(mysql_num_rows($que) == 0)
{
$main .= "<p>Het ingevuld emailadres is niet geldig of staat niet in de database!</p>";
}
else
{
// Code
$activatiecode = randomcode(10);
// Melding
$main .= "<p>Er is een bevestigingsmail naar je e-mailadres gestuurd.</p>";
// Database updaten dus code inserten
mysql_query("UPDATE `".$ledentabel."` SET `kl_overzicht_vergeetcode` = '".$activatiecode."' WHERE `emailadres` = '".sqlsafe($_POST['emailadres'])."'");
// Mail versturen
$aan = sqlsafe($_POST['emailadres']);
$onderwerp = "Wachtwoord vergeten";
$bericht = "Beste,<br /><br />Via de website ".$eigen_site." is aangegeven dat u uw wachtwoord vergeten bent.<br /><br />Wanneer dit het geval is, dient u op onderstaande link te klikken. Wanneer dit niet zo is, kunt u deze mail als niet verzonden beschouwen.<br /><br />Link: <a href=\"".$eigen_url."klantenpagnia=ww_vergeten&actie=bevestigen&code=".$activatiecode."\">".$eigen_url."klantenpagnia=ww_vergeten&actie=bevestigen&code=".$activatiecode."</a><br /><br />Met vriendelijke groet,<br /><br />".$eigen_naam;
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$eigen_naam." <".$eigen_mail.">\r\n";
mail($aan, $onderwerp, $bericht, $headers);
}
}
else
{
$main .= "<p>Vul hieronder uw emailadres in. Er zal een link naar je emailadres gestuurd worden. Wanneer u hier op klikt wordt er een nieuw wachtwoord aangemaakt.</p><br />";
$main .= "<p><form method=\"post\" action=\"\">E-mailadres: <input type=\"text\" name=\"emailadres\" /><br /><br /><input type=\"submit\" name=\"vergeten\" value=\"Verstuur\" /></form></p>";
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door J C
Mr.Ark schreef op 03.02.2010 00:27:
Kan je net zo goed even opnieuw scripten, dit lijkt natuurlijk nergens op.
Be my guest.... :-)
Je kan oof sqlsafe() hernoemen naar mysql_real_escape_string().
Die errors komen waarschijnlik omdat er HTML of whitespace voor of na je wachtwoordvergeten.php-script staan.
Soms helpt het om het even opnieuw op te slaan met notepad (vanwege de B-O-M).
Hm, kutbump hier :/
Gewijzigd op 01/01/1970 01:00:00 door - Ariën -
Ik ben nu al een heel stuk verder.
Ik kan de mail versturen en hij komt ook aan,
Alleen als ik de link aanklik geeft hij aan dat de code fout is. eens kijken hoe dat komt.
Ik snap de header foutmelding al want ik include dit bestand in deze index.php.
Waarbij het script in de main komt.
http://www.jcsl.nl/klanten/index.txt (indexscript)
Gewijzigd op 01/01/1970 01:00:00 door J C
Even een goede tip. Sla NOOIT passwoorden op in een cookie. Dat doe je namelijk in jouw eigen login-systeem.
dus eigenlijk is het hele inlogsysteem slecht?
Probeer anders MultiSess eens (zie eerdere link in dit topic).
Dit werkt wel veiliger.
Gewijzigd op 01/01/1970 01:00:00 door - Ariën -
Inmiddels krijg ik wel de goede code door via de email alleen als ik erop klik dan gebeurt er niks.
Daarom is foutafhandeling wel altijd tof om te hebben.
BEhlave dan deze die er de hele tijd zijn.
Warning: Cannot modify header information - headers already sent by (output started at /home/jcsl/public_html/klanten/includes/wachtwoord_vergeten.php:82) in /home/jcsl/public_html/klanten/inlog/func.toegang.php on line 72
Warning: Cannot modify header information - headers already sent by (output started at /home/jcsl/public_html/klanten/includes/wachtwoord_vergeten.php:82) in /home/jcsl/public_html/klanten/inlog/func.toegang.php on line 73
Warning: Cannot modify header information - headers already sent by (output started at /home/jcsl/public_html/klanten/includes/wachtwoord_vergeten.php:82) in /home/jcsl/public_html/klanten/inlog/func.toegang.php on line 74
Warning: Cannot modify header information - headers already sent by (output started at /home/jcsl/public_html/klanten/includes/wachtwoord_vergeten.php:82) in /home/jcsl/public_html/klanten/inlog/func.toegang.php on line 75
Warning: Cannot modify header information - headers already sent by (output started at /home/jcsl/public_html/klanten/includes/wachtwoord_vergeten.php:82) in /home/jcsl/public_html/klanten/inlog/func.toegang.php on line 76
Aar schreef op 03.02.2010 00:32:
Be my guest.... :-)
Mr.Ark schreef op 03.02.2010 00:27:
Kan je net zo goed even opnieuw scripten, dit lijkt natuurlijk nergens op.
Be my guest.... :-)
Ok ^^, maar wel me eigen versie.
Heb er 15 minuutjes over gedaan, dus kunnen paar typo's inzitten. Maar ga daar niet vanuit.
Let op: Code is niet getest.
Let op: Lees de code door en pas het zodanig aan.
Let op: Code kan je zelf nog verder uitbouwen met checks.
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
<?PHP
# Connectie met de database maken
# Zet hier ook je error_reporting(E_ALL) & ini_set('display_errors', 1) in
require_once '....';
# Error is false
$Error = false;
# Array voor de berichten
$Message = array();
# Kijken of er gepost wordt
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
# Kijken of email leeg is
if(empty($_POST['email']))
{
# Geen email adres ingevuld
$Message[] = 'Vul A.U.B een email adres in.';
# Error is true
$Error = true;
}
# Kijken of het email adres geldig is
if(preg_match('/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/', $_POST['email']))
{
# Email adres is niet geldig
$Message[] = 'Vul A.U.B een geldig email adres in.';
# Error is true
$Error = true;
}
# Kijken of error false is
if($Error == false)
{
# Query uitvoeren
$Query =
"
SELECT
id,
email
FROM
gebruikers
WHERE
email = '".mysql_real_escape_string(trim($_POST['email']))."'
";
# Resultaat van de query
$Result = mysql_query($Query);
# Kijken of de query is gelukt
if(!$Result)
{
# Foutje in de query
$Message[] = 'Er is een fout opgetreden, fout is: '.mysql_error();
}
else
{
# Kijken of het email adres voorkomt
if(mysql_num_rows($Result) == 0)
{
# Email adres komt niet voor in de database
$Message[] = 'Dit email adres komt niet voor in onze database.';
}
else
{
# Rij fetchen
$Row = mysql_fetch_assoc($Result);
# Nieuw wachtwoord aanmaken
$Nieuw_ww = mt_srand((double)microtime()*100000);
while(strlen($Nieuw_ww) <= 6) # Aantal tekens/cijfers dat wordt gebruikt
{
$i = chr(mt_rand(0,255));
if(preg_match('/^[a-z0-9]$/', $i)) # Alleen letters en cijfers
{
$Nieuw_ww = $Nieuw_ww.$i;
}
}
# Query uitvoeren
$Query =
"
UPDATE
gebruikers
SET
wachtwoord = '".md5($Nieuw_ww)."'
WHERE
id = '".intval($Row['id'])."'
";
# Kijken of de query is gelukt
if(!$Result)
{
# Foutje in de query
$Message[] = 'Er is een fout opgetreden, fout is: '.mysql_error();
}
else
{
# Persoon waar het naartoe gestuurd moet worden
$Receiver = $Row['email'];
# Onderwerp van de mail
$Subject = 'Wachtwoord Reset';
# Headers die we meesturen met de mail
$Headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'MIME-Version: 1.0' . "\r\n" .
'Content-Type: text/html; charset=ISO-8859-1' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
'X-Priority: 1' . "\r\n" .
$Mail = '<h3>Wachtwoord Reset</h3>
<p>Beste '.$Row['email'].',</p>
<p>U wachtwoord is reeds gereset door: '.$_SERVER['REMOTE_ADDR'].'<br>U nieuwe wachtwoord: '.$Nieuw_ww.'<br/>
Komt u ip adres niet overeen met die in deze email, neem dan zo spoedig mogelijk contact met ons op.</p>
<p>Met vriendelijke groet,</p>
<p>Het Team !</p>';
# Kijken of de mail verstuurd wordt
if(mail($Receiver, $Subject, $Mail, $Headers))
{
# Mail succesvol verstuurd
$Message[] = 'U ontvangt binnen nu en 10 minuten uw nieuwe wachtwoord op het volgende adres: '.$_POST['email'];
}
else
{
# Fout met versturen email
$Message[] = 'Er is een fout opgetreden met het versturen van de mail, neem zo spoedig mogelijk contact met ons op.';
}
}
}
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Wachtwoord Vergeten</title>
</head>
<body>
<h3>Wachtwoord Vergeten</h3>
<?PHP
# Kijken of er berichten zijn
if(!empty($Message))
{
# Berichten laten zien
foreach($Message as $Msg)
{
echo $Msg.'<br/>';
}
}
?>
<form id="form1" name="form1" method="post" action="">
Email adres:
<input type="text" name="email" id="email" />
<input type="submit" name="button" id="button" value="Submit" />
</form>
</body>
</html>
# Connectie met de database maken
# Zet hier ook je error_reporting(E_ALL) & ini_set('display_errors', 1) in
require_once '....';
# Error is false
$Error = false;
# Array voor de berichten
$Message = array();
# Kijken of er gepost wordt
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
# Kijken of email leeg is
if(empty($_POST['email']))
{
# Geen email adres ingevuld
$Message[] = 'Vul A.U.B een email adres in.';
# Error is true
$Error = true;
}
# Kijken of het email adres geldig is
if(preg_match('/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/', $_POST['email']))
{
# Email adres is niet geldig
$Message[] = 'Vul A.U.B een geldig email adres in.';
# Error is true
$Error = true;
}
# Kijken of error false is
if($Error == false)
{
# Query uitvoeren
$Query =
"
SELECT
id,
FROM
gebruikers
WHERE
email = '".mysql_real_escape_string(trim($_POST['email']))."'
";
# Resultaat van de query
$Result = mysql_query($Query);
# Kijken of de query is gelukt
if(!$Result)
{
# Foutje in de query
$Message[] = 'Er is een fout opgetreden, fout is: '.mysql_error();
}
else
{
# Kijken of het email adres voorkomt
if(mysql_num_rows($Result) == 0)
{
# Email adres komt niet voor in de database
$Message[] = 'Dit email adres komt niet voor in onze database.';
}
else
{
# Rij fetchen
$Row = mysql_fetch_assoc($Result);
# Nieuw wachtwoord aanmaken
$Nieuw_ww = mt_srand((double)microtime()*100000);
while(strlen($Nieuw_ww) <= 6) # Aantal tekens/cijfers dat wordt gebruikt
{
$i = chr(mt_rand(0,255));
if(preg_match('/^[a-z0-9]$/', $i)) # Alleen letters en cijfers
{
$Nieuw_ww = $Nieuw_ww.$i;
}
}
# Query uitvoeren
$Query =
"
UPDATE
gebruikers
SET
wachtwoord = '".md5($Nieuw_ww)."'
WHERE
id = '".intval($Row['id'])."'
";
# Kijken of de query is gelukt
if(!$Result)
{
# Foutje in de query
$Message[] = 'Er is een fout opgetreden, fout is: '.mysql_error();
}
else
{
# Persoon waar het naartoe gestuurd moet worden
$Receiver = $Row['email'];
# Onderwerp van de mail
$Subject = 'Wachtwoord Reset';
# Headers die we meesturen met de mail
$Headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'MIME-Version: 1.0' . "\r\n" .
'Content-Type: text/html; charset=ISO-8859-1' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
'X-Priority: 1' . "\r\n" .
$Mail = '<h3>Wachtwoord Reset</h3>
<p>Beste '.$Row['email'].',</p>
<p>U wachtwoord is reeds gereset door: '.$_SERVER['REMOTE_ADDR'].'<br>U nieuwe wachtwoord: '.$Nieuw_ww.'<br/>
Komt u ip adres niet overeen met die in deze email, neem dan zo spoedig mogelijk contact met ons op.</p>
<p>Met vriendelijke groet,</p>
<p>Het Team !</p>';
# Kijken of de mail verstuurd wordt
if(mail($Receiver, $Subject, $Mail, $Headers))
{
# Mail succesvol verstuurd
$Message[] = 'U ontvangt binnen nu en 10 minuten uw nieuwe wachtwoord op het volgende adres: '.$_POST['email'];
}
else
{
# Fout met versturen email
$Message[] = 'Er is een fout opgetreden met het versturen van de mail, neem zo spoedig mogelijk contact met ons op.';
}
}
}
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Wachtwoord Vergeten</title>
</head>
<body>
<h3>Wachtwoord Vergeten</h3>
<?PHP
# Kijken of er berichten zijn
if(!empty($Message))
{
# Berichten laten zien
foreach($Message as $Msg)
{
echo $Msg.'<br/>';
}
}
?>
<form id="form1" name="form1" method="post" action="">
Email adres:
<input type="text" name="email" id="email" />
<input type="submit" name="button" id="button" value="Submit" />
</form>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
Er zit geen limietcheck in, zie ik.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
# Kijken of het email adres geldig is
if(preg_match('/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/', $_POST['email']))
{
# Email adres is niet geldig
$Message[] = 'Vul A.U.B een geldig email adres in.';
# Error is true
$Error = true;
}
?>
# Kijken of het email adres geldig is
if(preg_match('/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}$/', $_POST['email']))
{
# Email adres is niet geldig
$Message[] = 'Vul A.U.B een geldig email adres in.';
# Error is true
$Error = true;
}
?>
Kan het zijn dat het komt omdat mijn emailadres hetzelfde is als het domein?
fout gevonden. Zat het in:
Code (php)
1
2
3
4
2
3
4
<?php
if(preg_match('/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])*(\.([a-z0-9])([-a-z0-9_-])([a-z0-9])+)*$/i', $_POST['email']))
?>
if(preg_match('/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])*(\.([a-z0-9])([-a-z0-9_-])([a-z0-9])+)*$/i', $_POST['email']))
?>
Het wachtwoord wordt op dit moment nog niet aangepast in de database
Gewijzigd op 01/01/1970 01:00:00 door J C