kan de foutjes niet oplossen
heb een paar kleine foutje waar ik na 2 dagen debuggen nog steeds uit kom.
dit zijn de warnings die ik krijg:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in E:\8.5\root\bsw\login\index.php on line 55
Warning: mysql_query() expects parameter 1 to be string, resource given in E:\8.5\root\bsw\login\index.php on line 62
Warning: mysql_affected_rows(): 4 is not a valid MySQL-Link resource in E:\8.5\root\bsw\login\index.php on line 68
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
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
<?php
include ('../include/config.php');
// debugger
# errors weergeven
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
# sql debug
define('DEBUG_MODE',false); // true == aan, false == uit
# functie voor sql debug
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
if (isset($_POST['formsubmitted'])) {
$error = array(); // maak een array voor error opslag
// naam
if (!isset($_POST['name'])) { // wanneer er geen naam is ingevoerd
$error[] = 'Voer een naam in aub. '; // voeg toe aan array errors
} else {
$name =mysql_real_escape_string($_POST['name']); //wanneer een naam is ingevuld koppel deze aan een variabele
}
//email
if (!isset($_POST['e-mail'])) {
$error[] = 'voer uw email in aub. '; // voeg toe aan array errors
} else {
if (preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", // controle op tekens in het email adres.
$_POST['e-mail'])) {
$Email = mysql_real_escape_string($_POST['e-mail']);
} else {
$error[] = 'uw email adres is ongeldig.';
}
}
// password
if (!isset($_POST['password'])) {
$error[] = 'vul aub uw wachtwoord in.';
} else {
if(!isset($_POST['password1'])){
$error[]='herhaal uw wachtwoord aub.';
}else{
if($_POST['password']== $_POST['password1']){
$Password = md5(mysql_real_escape_string($_POST['password']));
} else {
$error[]=' Wachtwoorden komen niet overeen.';
}
}
}
if (empty($error)){ //wanneer er geen errors zijn gaat dit naar de database
// controle of email adres niet al in gebruik is.
$query_verify_email = "SELECT * FROM members WHERE Email =".$Email;
$result_verify_email = mysql_query($query_verify_email);
//als de query mislukt ,vergelijkbaar met: if($result_verify_email==false)
if ($result_verify_email) {
echo ' er heeft een fout plaatsgevonden in de database ';
}
// als het email adres nog niet geregistreerd is .
if (mysql_num_rows(mysql_query($result_verify_email) == 0) {
// Creeër een unieke activatie code
$activation = md5(uniqid(rand(), true));
$query_insert_user ="INSERT INTO `members` ( `Username`, `Email`, `Password`, `Activation`) VALUES ( '$name', '$Email', '$Password', '$activation')";
$result_insert_user = mysql_query($query_insert_user);
if (!$result_insert_user) {
echo 'Registreren mislukt excusses voor de overlast.';
}
//als de query gelukt is.
if (mysql_affected_rows($link) == 1) {
// verstuur de email:
$message = " Om uw account te activeren klik alstublieft op deze link:\n\n";
$message .= WEBSITE_URL . '/activate.php?email=' . urlencode($Email) . "&key=$activation";
mail($Email, 'Registration Confirmation', $message, 'From:'.EMAIL);
// Flush the buffered output.
// maak deze pagina compleet:
echo '<div class="success">Bedankt voor het registreren. Een conformatie email is verzondern naar ' . $Email .' klik alstublieft op de link in de email om uw account te activeren</div>';
} else {
//als t niet goed ging.
echo '<div id="sysError" class="errormsgbox">U heeft zich niet kunnen registreren. Excusses voor het ongemak.
</div>';
}
// het email adres is niet beschikbaar.
} else {
echo '<div class="errormsgbox" >Het email adres is al geregistreerd.</div>';
}
//als de error[] fouten bevat toon deze
} else {
echo '<div class="errormsgbox"> <ol>';
foreach ($error as $key => $values) {
echo '<li>' . $values . '</li>';
}
echo '</ol></div>';
}}
?>
include ('../include/config.php');
// debugger
# errors weergeven
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
# sql debug
define('DEBUG_MODE',false); // true == aan, false == uit
# functie voor sql debug
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
if (isset($_POST['formsubmitted'])) {
$error = array(); // maak een array voor error opslag
// naam
if (!isset($_POST['name'])) { // wanneer er geen naam is ingevoerd
$error[] = 'Voer een naam in aub. '; // voeg toe aan array errors
} else {
$name =mysql_real_escape_string($_POST['name']); //wanneer een naam is ingevuld koppel deze aan een variabele
}
if (!isset($_POST['e-mail'])) {
$error[] = 'voer uw email in aub. '; // voeg toe aan array errors
} else {
if (preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", // controle op tekens in het email adres.
$_POST['e-mail'])) {
$Email = mysql_real_escape_string($_POST['e-mail']);
} else {
$error[] = 'uw email adres is ongeldig.';
}
}
// password
if (!isset($_POST['password'])) {
$error[] = 'vul aub uw wachtwoord in.';
} else {
if(!isset($_POST['password1'])){
$error[]='herhaal uw wachtwoord aub.';
}else{
if($_POST['password']== $_POST['password1']){
$Password = md5(mysql_real_escape_string($_POST['password']));
} else {
$error[]=' Wachtwoorden komen niet overeen.';
}
}
}
if (empty($error)){ //wanneer er geen errors zijn gaat dit naar de database
// controle of email adres niet al in gebruik is.
$query_verify_email = "SELECT * FROM members WHERE Email =".$Email;
$result_verify_email = mysql_query($query_verify_email);
//als de query mislukt ,vergelijkbaar met: if($result_verify_email==false)
if ($result_verify_email) {
echo ' er heeft een fout plaatsgevonden in de database ';
}
// als het email adres nog niet geregistreerd is .
if (mysql_num_rows(mysql_query($result_verify_email) == 0) {
// Creeër een unieke activatie code
$activation = md5(uniqid(rand(), true));
$query_insert_user ="INSERT INTO `members` ( `Username`, `Email`, `Password`, `Activation`) VALUES ( '$name', '$Email', '$Password', '$activation')";
$result_insert_user = mysql_query($query_insert_user);
if (!$result_insert_user) {
echo 'Registreren mislukt excusses voor de overlast.';
}
//als de query gelukt is.
if (mysql_affected_rows($link) == 1) {
// verstuur de email:
$message = " Om uw account te activeren klik alstublieft op deze link:\n\n";
$message .= WEBSITE_URL . '/activate.php?email=' . urlencode($Email) . "&key=$activation";
mail($Email, 'Registration Confirmation', $message, 'From:'.EMAIL);
// Flush the buffered output.
// maak deze pagina compleet:
echo '<div class="success">Bedankt voor het registreren. Een conformatie email is verzondern naar ' . $Email .' klik alstublieft op de link in de email om uw account te activeren</div>';
} else {
//als t niet goed ging.
echo '<div id="sysError" class="errormsgbox">U heeft zich niet kunnen registreren. Excusses voor het ongemak.
</div>';
}
// het email adres is niet beschikbaar.
} else {
echo '<div class="errormsgbox" >Het email adres is al geregistreerd.</div>';
}
//als de error[] fouten bevat toon deze
} else {
echo '<div class="errormsgbox"> <ol>';
foreach ($error as $key => $values) {
echo '<li>' . $values . '</li>';
}
echo '</ol></div>';
}}
?>
met vriendelijke groet
Ralph van der Tang
Gewijzigd op 04/10/2012 11:05:46 door Ralph van der Tang
script geupdate boven.
Haakjes tellen.
---
bv. lijn 74-75
Code (php)
1
2
3
4
2
3
4
<?php
// als het email adres nog niet geregistreerd is .
if (mysql_num_rows(mysql_query($result_verify_email) == 0) {
?>
// als het email adres nog niet geregistreerd is .
if (mysql_num_rows(mysql_query($result_verify_email) == 0) {
?>
* Zie hier eens: http://php.net/manual/en/function.mysql-num-rows.php
mysql_num_rows verwacht een resource; een result van een mysql_query
in jouw geval dus $result_verify_email
* http://php.net/manual/en/function.mysql-query.php
mysql_query verwacht dan weer een SQL-string. Je weet wel, iets als "SELECT username, email FROM ..."
en mysql_query geeft een resource terug.
mysql_query($result_verify_email) is dus pure nonsens.
dus ... dit moet worden
Code (php)
1
2
3
4
2
3
4
<?php
// als het email adres nog niet geregistreerd is .
if (mysql_num_rows($result_verify_email) == 0) {
?>
// als het email adres nog niet geregistreerd is .
if (mysql_num_rows($result_verify_email) == 0) {
?>
En dit controleer je dus even voor alle mysql-functies
Gewijzigd op 04/10/2012 12:14:57 door Kris Peeters
krijg query was empty dat klopt maar hoe kan je dan verder gaan script werkt niet door terwijl het dat juist wel zou moeten
// geen == maar === . Anders wordt een false ook doorgelaten en heb je dus niets aan de if.
----
Lijn 65:
Je bent de ' vergeten
-----
mysql_affected_rows():
Je mag de parameter weglaten, ofwel zet je daar de return van mysql_connect.
dus, ergens in config.php heb je
$link = mysql_connect(...);
...
mysql_affected_rows($link);
En toon zelf nog eens hoe je code er nu uitziet.
Gewijzigd op 09/10/2012 10:23:37 door Kris Peeters
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in G:\8.5\root\bsw\login\index.php on line 70
dit komt waarschijnlijk door de null die gegeven wordt door : $result_verify_email = mysql_query($query_verify_email);
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in G:\8.5\root\bsw\login\index.php on line 79
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
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
<?php
include ('../include/config.php');
// begin debugging
# errors weergeven
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
# sql debug
define('DEBUG_MODE',true); // true == aan, false == uit
# functie voor sql debug
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
// einde debugging
if (isset($_POST['formsubmitted']))
{
$error = array(); // maak een array voor error opslag
// naam
if (!isset($_POST['name'])) { // wanneer er geen naam is ingevoerd
$error[] = 'Voer een naam in aub. '; // voeg toe aan array errors
} else {
$name =mysql_real_escape_string($_POST['name']); //wanneer een naam is ingevuld koppel deze aan een variabele
}
//email
if (!isset($_POST['e-mail'])) {
$error[] = 'voer uw email in aub. '; // voeg toe aan array errors
} else {
if (preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", // controle op tekens in het email adres.
$_POST['e-mail'])) {
$Email = mysql_real_escape_string($_POST['e-mail']);
} else {
$error[] = 'uw email adres is ongeldig.';
}
}
// password
if (!isset($_POST['password'])) {
$error[] = 'vul aub uw wachtwoord in.';
} else {
if(!isset($_POST['password1'])){
$error[]='herhaal uw wachtwoord aub.';
}else{
if($_POST['password']=== $_POST['password1']){
$Password = md5(mysql_real_escape_string($_POST['password']));
} else {
$error[]=' Wachtwoorden komen niet overeen.';
}
}
}
if (empty($error)){ //wanneer er geen errors zijn gaat dit naar de database
// controle of email adres niet al in gebruik is.
$query_verify_email = "SELECT * FROM members WHERE Email =".$Email;
$result_verify_email = mysql_query($query_verify_email);
$array_verify_email= mysql_fetch_array($result_verify_email);
//als de query mislukt ,vergelijkbaar met: if($result_verify_email==false)
if ($result_verify_email) {
echo ' er heeft een fout plaatsgevonden in de database ';
}
// als het email adres nog niet geregistreerd is .
if (mysql_num_rows($result_verify_email) === 0) {
// Creeër een unieke activatie code
$activation = md5(uniqid(rand(), true));
// insert member query.
$query_insert_user ="INSERT INTO `members` ( `Username`, `Email`, `Password`, `Activation`) VALUES ( '$name', '$Email', '$Password', '$activation')";
$result_insert_user = mysql_query($query_insert_user);
if (!$result_insert_user) {
echo 'Registreren mislukt excusses voor de overlast.';
}
//als de query gelukt is.
if (mysql_affected_rows($link) == 1) {
// verstuur de email:
$message = " Om uw account te activeren klik alstublieft op deze link:\n\n";
$message .= WEBSITE_URL . '/activate.php?email=' . urlencode($Email) . "&key=$activation";
mail($Email, 'Registration Confirmation', $message, 'From:'.EMAIL);
// Flush the buffered output.
// maak deze pagina compleet:
echo '<div class="success">Bedankt voor het registreren. Een conformatie email is verzondern naar ' . $Email .' klik alstublieft op de link in de email om uw account te activeren</div>';
} else {
//als t niet goed ging.
echo '<div id="sysError" class="errormsgbox">U heeft zich niet kunnen registreren. Excusses voor het ongemak.</div>';
}
// het email adres is niet beschikbaar.
} else {
echo '<div class="errormsgbox" >Het email adres is al geregistreerd.</div>';
}
//als de error[] fouten bevat toon deze
} else {
echo '<div class="errormsgbox"> <ol>';
foreach ($error as $key => $values) {
echo '<li>' . $values . '</li>';
}
echo '</ol></div>';
}
}
mysql_close($link); //sluit de database verbinding
?>
include ('../include/config.php');
// begin debugging
# errors weergeven
ini_set('display_errors',1); // 1 == aan , 0 == uit
error_reporting(E_ALL | E_STRICT);
# sql debug
define('DEBUG_MODE',true); // true == aan, false == uit
# functie voor sql debug
function showSQLError($sql,$error,$text='Error')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
// einde debugging
if (isset($_POST['formsubmitted']))
{
$error = array(); // maak een array voor error opslag
// naam
if (!isset($_POST['name'])) { // wanneer er geen naam is ingevoerd
$error[] = 'Voer een naam in aub. '; // voeg toe aan array errors
} else {
$name =mysql_real_escape_string($_POST['name']); //wanneer een naam is ingevuld koppel deze aan een variabele
}
if (!isset($_POST['e-mail'])) {
$error[] = 'voer uw email in aub. '; // voeg toe aan array errors
} else {
if (preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", // controle op tekens in het email adres.
$_POST['e-mail'])) {
$Email = mysql_real_escape_string($_POST['e-mail']);
} else {
$error[] = 'uw email adres is ongeldig.';
}
}
// password
if (!isset($_POST['password'])) {
$error[] = 'vul aub uw wachtwoord in.';
} else {
if(!isset($_POST['password1'])){
$error[]='herhaal uw wachtwoord aub.';
}else{
if($_POST['password']=== $_POST['password1']){
$Password = md5(mysql_real_escape_string($_POST['password']));
} else {
$error[]=' Wachtwoorden komen niet overeen.';
}
}
}
if (empty($error)){ //wanneer er geen errors zijn gaat dit naar de database
// controle of email adres niet al in gebruik is.
$query_verify_email = "SELECT * FROM members WHERE Email =".$Email;
$result_verify_email = mysql_query($query_verify_email);
$array_verify_email= mysql_fetch_array($result_verify_email);
//als de query mislukt ,vergelijkbaar met: if($result_verify_email==false)
if ($result_verify_email) {
echo ' er heeft een fout plaatsgevonden in de database ';
}
// als het email adres nog niet geregistreerd is .
if (mysql_num_rows($result_verify_email) === 0) {
// Creeër een unieke activatie code
$activation = md5(uniqid(rand(), true));
// insert member query.
$query_insert_user ="INSERT INTO `members` ( `Username`, `Email`, `Password`, `Activation`) VALUES ( '$name', '$Email', '$Password', '$activation')";
$result_insert_user = mysql_query($query_insert_user);
if (!$result_insert_user) {
echo 'Registreren mislukt excusses voor de overlast.';
}
//als de query gelukt is.
if (mysql_affected_rows($link) == 1) {
// verstuur de email:
$message = " Om uw account te activeren klik alstublieft op deze link:\n\n";
$message .= WEBSITE_URL . '/activate.php?email=' . urlencode($Email) . "&key=$activation";
mail($Email, 'Registration Confirmation', $message, 'From:'.EMAIL);
// Flush the buffered output.
// maak deze pagina compleet:
echo '<div class="success">Bedankt voor het registreren. Een conformatie email is verzondern naar ' . $Email .' klik alstublieft op de link in de email om uw account te activeren</div>';
} else {
//als t niet goed ging.
echo '<div id="sysError" class="errormsgbox">U heeft zich niet kunnen registreren. Excusses voor het ongemak.</div>';
}
// het email adres is niet beschikbaar.
} else {
echo '<div class="errormsgbox" >Het email adres is al geregistreerd.</div>';
}
//als de error[] fouten bevat toon deze
} else {
echo '<div class="errormsgbox"> <ol>';
foreach ($error as $key => $values) {
echo '<li>' . $values . '</li>';
}
echo '</ol></div>';
}
}
mysql_close($link); //sluit de database verbinding
?>
Gewijzigd op 09/10/2012 10:43:50 door ralph van der Tang
Ralph van der Tang op 09/10/2012 10:34:36:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in G:\8.5\root\bsw\login\index.php on line 70
Je snapt toch wat daar op je scherm staat?
Als je query string niet klopt, zal mysql_query niet werken en zullen alle andere mysql_functies ook fouten geven.
Dan zal je uiteraard niet kunnen berekenen hoeveel records er zijn, zal je niet kunnen fetchen, ...
Ik heb je al gezegd dat die query string fout is en hoe ze te verbeteren.
op de een of andere manier werkt mijn insert query niet
de error die ik krijg is de volgende:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@test.nl, 0ab19c1
de query is:
$query_insert_user ="INSERT INTO `members` ( `Username`, `Email`, `Password`, `Activation`) VALUES ( ".$Name.",".$Email.", ".$Password.", ".$Activation.")";
alle variabelen hebben een waarde
alvast bedankt
Ralph
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$query_insert_user ="
INSERT INTO members
( Username, Email, Password, Activation)
VALUES
( '" . $Name . "','" . $Email . "', '" . $Password . "', '" . $Activation . "')";
?>
$query_insert_user ="
INSERT INTO members
( Username, Email, Password, Activation)
VALUES
( '" . $Name . "','" . $Email . "', '" . $Password . "', '" . $Activation . "')";
?>
(zoals ik zie dat boven mij ook al staat)
dank jullie beiden het werkt