wachtwoord opvragen pagin werkt niet
Weet iemand wat ik fout doe?
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
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
<?php
include('config.php');
$Error = false;
$Message = array();
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(empty($_POST['email']))
{
$Message[] = 'Vul een email adres in.';
$Error = true;
}
if(preg_match( $_POST['email']))
{
$Message[] = 'Vul een geldig email adres in.';
$Error = true;
}
if($Error == false)
{
# Query uitvoeren
$Query =
"
SELECT id, email
FROM users
WHERE email = '".mysql_real_escape_string(trim($_POST['email']))."'
";
$Result = mysql_query($Query);
if(!$Result)
{
$Message[] = 'Er is een fout opgetreden, fout is: '.mysql_error();
}
else
{
if(mysql_num_rows($Result) == 0)
{
$Message[] = 'Dit email adres komt niet voor in onze database.';
}
else
{
$Row = mysql_fetch_assoc($Result);
$Nieuw_ww = mt_srand((double)microtime()*100000);
while(strlen($Nieuw_ww) <= 6)
{
$i = chr(mt_rand(0,255));
if(preg_match('/^[a-z0-9]$/', $i))
{
$Nieuw_ww = $Nieuw_ww.$i;
}
}
$Query = "
UPDATE users
SET password = '".sha1($Nieuw_ww)."'
WHERE id = '".intval($Row['id'])."'
";
$Result = mysql_query($Query);
if($Result)
{
$Receiver = $Row['email'];
$Subject = 'Wachtwoord Reset';
$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 nieuwe wachtwoord: '.$Nieuw_ww.'<br/>
Werkt het nieuwe wachtwoord niet? Neem dan zo snel mogelijk contact op (http://web-stars.nl/contact.php). <br />
Is deze mail niet van u afkomstig, negeer deze mail en meldt het bij web-stars!</p>
<p>Met vriendelijke groet,</p>
<p>Web-stars!</p>';
?>
<script type="text/javascript">
function myFunction() {
window.open('http://gmail.com');
}
</script>
<?php
}
else
{
$Message[] = 'Er is een fout opgetreden, fout is: '.mysql_error();
}
}
}
}
}
?>
<?php
include('header.php')
?>
<div class="header"></div>
<div class="container">
<h2>Nieuw wachtwoord opvragen</h2>
<?PHP
# Kijken of er berichten zijn
if(!empty($Message))
{
# Berichten laten zien
foreach($Message as $Msg)
{
echo $Msg.'<br/>';
}
}
?>
</script>
<div class="col-md-3">
<form id="form1" name="form1" method="post" onsubmit="myFunction();">
<div class="form-group">
<label for="email">E-mailadres</label>
<input type="email" name="email" class="form-control" id="email">
</div>
<input type="submit" value="verzenden" class="btn btn-primary" />
</form></div>
</body>
</html>
include('config.php');
$Error = false;
$Message = array();
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(empty($_POST['email']))
{
$Message[] = 'Vul een email adres in.';
$Error = true;
}
if(preg_match( $_POST['email']))
{
$Message[] = 'Vul een geldig email adres in.';
$Error = true;
}
if($Error == false)
{
# Query uitvoeren
$Query =
"
SELECT id, email
FROM users
WHERE email = '".mysql_real_escape_string(trim($_POST['email']))."'
";
$Result = mysql_query($Query);
if(!$Result)
{
$Message[] = 'Er is een fout opgetreden, fout is: '.mysql_error();
}
else
{
if(mysql_num_rows($Result) == 0)
{
$Message[] = 'Dit email adres komt niet voor in onze database.';
}
else
{
$Row = mysql_fetch_assoc($Result);
$Nieuw_ww = mt_srand((double)microtime()*100000);
while(strlen($Nieuw_ww) <= 6)
{
$i = chr(mt_rand(0,255));
if(preg_match('/^[a-z0-9]$/', $i))
{
$Nieuw_ww = $Nieuw_ww.$i;
}
}
$Query = "
UPDATE users
SET password = '".sha1($Nieuw_ww)."'
WHERE id = '".intval($Row['id'])."'
";
$Result = mysql_query($Query);
if($Result)
{
$Receiver = $Row['email'];
$Subject = 'Wachtwoord Reset';
$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 nieuwe wachtwoord: '.$Nieuw_ww.'<br/>
Werkt het nieuwe wachtwoord niet? Neem dan zo snel mogelijk contact op (http://web-stars.nl/contact.php). <br />
Is deze mail niet van u afkomstig, negeer deze mail en meldt het bij web-stars!</p>
<p>Met vriendelijke groet,</p>
<p>Web-stars!</p>';
?>
<script type="text/javascript">
function myFunction() {
window.open('http://gmail.com');
}
</script>
<?php
}
else
{
$Message[] = 'Er is een fout opgetreden, fout is: '.mysql_error();
}
}
}
}
}
?>
<?php
include('header.php')
?>
<div class="header"></div>
<div class="container">
<h2>Nieuw wachtwoord opvragen</h2>
<?PHP
# Kijken of er berichten zijn
if(!empty($Message))
{
# Berichten laten zien
foreach($Message as $Msg)
{
echo $Msg.'<br/>';
}
}
?>
</script>
<div class="col-md-3">
<form id="form1" name="form1" method="post" onsubmit="myFunction();">
<div class="form-group">
<label for="email">E-mailadres</label>
<input type="email" name="email" class="form-control" id="email">
</div>
<input type="submit" value="verzenden" class="btn btn-primary" />
</form></div>
</body>
</html>
Misschien handig om te vertellen wat er niet aan lukt, en wat er nu wel gebeurt?
der gebeurd niks als ik een goed emailadres invul
Je opent nu gmail in je <form>
Klopt regel 15 wel?
Sha1 is volgens mij niet echt een veilige manier om wachtwoord te beveiligen.
Stop met mysql. Stap over op mysqli of pdo.
Gewijzigd op 11/07/2015 20:52:15 door Obelix Idefix
En ja, je verstuurt nergens het e-mailbericht...
Gewijzigd op 12/07/2015 11:11:20 door Thomas van den Heuvel
Daarom is het raadzaam om de gebruiker via mail een linkje te geven met zijn nieuwe wachtwoord. Of nog veiliger: Een tijdelijke link die na aanklikken snel verloopt waar je een nieuw wachtwoord zelf kan invoeren.
Gewijzigd op 11/07/2015 23:08:50 door - Ariën -
Obelix, error reporting, helemaal vergeten tnx.