Kom niet uit foutmelding± mysql_fetch_array() expects parameter 1 to be resource, boolean
Nu blijf ik stom genoeg alleen tegen de zelfde fout aan lopen....
Misschien dat jullie mijn verder kunnen helpen ?
Foutmelding:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\Password-lost.php on line 122
Stukje script:
// Query uitvoeren
$Query =
"
UPDATE
members
SET
password = '".md5($password)."'
WHERE
member_id = '".intval($Row['member_id'])."'
";
// 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
{
// Persoon waar het naartoe gestuurd moet worden
$Row = mysql_fetch_array($Result);
De laatste regel is regel 122, de fout zit volgens mij daar boven, ik heb een tabel in mySQL members, met daarin o.a. kolommen, password, member_id.
Volgens mij zou het zo moeten werken, echter blijkt de praktijk anders... =[
Ik het graag als iemand mij verder kan helpen :)!!
Toevoeging op 16/12/2011 02:49:26:
PS: ik ben net nieuw in de PHP. Gelieve rekening mee te houden, bij een eventuele uitleg =P
Ik weet niet wat je bedoeling is, maar je probeert een UPDATE query uit te voeren (je gaat dus gegevens updaten) en vervolgens probeer je dan de gegevens op te vragen. Dat werkt niet. Die update query geeft alleen een zogenaamde "boolean" terug (true of false, ofwel geslaagd of mislukt). Om de gegevens op te halen, gebruik je een SELECT query.
Dit script is bedoeld als wachtwoord vergeten link,Ik zal voor de duidelijkheid even me hele script erin plakken:
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
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
<?php
// Connectie met de database maken
// Zet hier ook je error_reporting(E_ALL) & ini_set('display_errors', 1) in
require_once ('config.php');
// Verbinding maken met MySQL
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if (!$link) {
die('Could not connect: ' . mysql_error());
}
//Select database
$db = mysql_select_db(DB_DATABASE);
if(!$db) {
die("Unable to select database");
}
// 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('/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])*(\.([a-z0-9])([-a-z0-9_-])([a-z0-9])+)*$/i', $_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
member_id,
email_adres
FROM
members
WHERE
email_adres = '".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
$password = mt_srand((double)microtime()*100000);
while(strlen($password) <= 6) // Aantal tekens/cijfers dat wordt gebruikt
{
$i = chr(mt_rand(0,255));
if(preg_match('/^[a-z0-9]$/', $i)) // Alleen letters en cijfers
{
$password = $password.$i;
}
}
// Query uitvoeren
$Query =
"
UPDATE
members
SET
password = '".md5($password)."'
WHERE
member_id = '".intval($Row['member_id'])."'
";
// 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
{
// Persoon waar het naartoe gestuurd moet worden
$Row = mysql_fetch_array($Result);
// 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_adres'].',</p>
<p>U wachtwoord is reeds gereset door: '.$_SERVER['REMOTE_ADDR'].'<br>U nieuwe wachtwoord: '.$password.'<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_adres'];
}
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.';
}
}
}
}
}
}
?>
// Connectie met de database maken
// Zet hier ook je error_reporting(E_ALL) & ini_set('display_errors', 1) in
require_once ('config.php');
// Verbinding maken met MySQL
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if (!$link) {
die('Could not connect: ' . mysql_error());
}
//Select database
$db = mysql_select_db(DB_DATABASE);
if(!$db) {
die("Unable to select database");
}
// 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('/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])*(\.([a-z0-9])([-a-z0-9_-])([a-z0-9])+)*$/i', $_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
member_id,
email_adres
FROM
members
WHERE
email_adres = '".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
$password = mt_srand((double)microtime()*100000);
while(strlen($password) <= 6) // Aantal tekens/cijfers dat wordt gebruikt
{
$i = chr(mt_rand(0,255));
if(preg_match('/^[a-z0-9]$/', $i)) // Alleen letters en cijfers
{
$password = $password.$i;
}
}
// Query uitvoeren
$Query =
"
UPDATE
members
SET
password = '".md5($password)."'
WHERE
member_id = '".intval($Row['member_id'])."'
";
// 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
{
// Persoon waar het naartoe gestuurd moet worden
$Row = mysql_fetch_array($Result);
// 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_adres'].',</p>
<p>U wachtwoord is reeds gereset door: '.$_SERVER['REMOTE_ADDR'].'<br>U nieuwe wachtwoord: '.$password.'<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_adres'];
}
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>
Code (php)
<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>
PS: hoe krijg ik dit in het vervolg als een mooi script erin geplakt ipv plane tekst?
Toevoeging op 16/12/2011 12:26:05:
:$ het is er al goed in geplakt zie ik, laatste vraag vervalt =P
En SET is geen onderdeel van een SELECT query.
Denk eerst even goed na, of je iets wil aanpassen (UPDATE), of wilt ophalen (SELECT).
Gewijzigd op 16/12/2011 12:27:17 door - Ariën -
Het is de bedoel dat er een nieuw wachtwoord word verstuurd ( aanpassen dus( Update ))
En hij moet het e-mail adres waaraan de e-mail word verstuurd $Receiver ophalen, uit het veld waar je je e-mail adres moet invoeren.( het $Receiver veld moet nog worden geschreven maar ik wil eerst de rest foutloos laten werken )