geen data naar de database
zonder ob_start(); en //ob_end_flush(); krijg ik deze foutmelding:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/campowebsolutions.com/www/foto/yapa_register.php on line 29
Warning: Cannot modify header information - headers already sent by (output started at /home/campowebsolutions.com/www/foto/yapa_register.php:29) in /home/campowebsolutions.com/www/foto/yapa_register.php on line 57
dit is het relevante deel van de code op www.campowebsolutions.com/foto/
register.php
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
<?php
//ob_start();
error_reporting(E_ALL);
ini_set('display_errors',1);
// bestanden insluiten
include_once('yapa_config.php');
include_once('yapa_functions.php');
// controleren of de pagina zichzelf heeft aangeroepen
if(isset($_POST['verzonden'])){
// initialisatie
$fout_bericht = '';
$member_naam = safe_text($_POST['naam']);
$member_email = safe_text($_POST['email']);
$member_wachtwoord = safe_text($_POST['wachtwoord']);
$member_datum = safe_text($_POST['datum']);
$member_code = create_regcode(); // random 32-bits registratiecode genereren
// de database openen
$db = safe_db_open($host, $gebruiker, $wachtwoord, $database);
// een reeks controles uitvoeren:
// eerst controleren of het e-mailadres al bestaat in de database
// (dubbele vermeldingen mogen niet voorkomen)
$query = "SELECT * FROM 'yapa_members' WHERE email='$member_email'";
$result = safe_query($db, $query);
if (mysql_num_rows($result) != 0){
// e-mailadres bestaat al in de database, foutmelding tonen
$fout_bericht .= "Dit e-mailadres (<b>$member_email</b>) bestaat al!<br />";
}
elseif(!check_field($member_email, T_EMAIL)){
$fout_bericht .= "U hebt geen geldig e-mailadres opgegeven";
}
elseif(!check_field($member_wachtwoord, T_PASSWORD)){
$fout_bericht .= "U hebt geen geldig wachtwoord opgegeven (minimaal 4, maximaal 8 tekens) <b />";
}
elseif(!send_confirmation($member_email, $member_code)){;
// e-mailadres OK, query opbouwen en mailtje met
// bevestigingscode verzenden
$fout_bericht .="Het verzenden van de bevestigingsmail is mislukt";
}
if($fout_bericht){
echo $fout_bericht . "<br/>";
echo "<a href=\"$deze_pagina\">Opnieuw registreren</a>";
}
else{
// alles is goed gegaan, query opbouwen en gegevens in de database plaatsen
// wachtwoord versleutelen
$member_wachtwoord = safe_password($member_wachtwoord);
$query = "INSERT INTO yapa_members (id, naam, email, wachtwoord, datum, reg_code) VALUES
('', '$member_naam', '$member_email', '$member_wachtwoord', '$member_datum', '$member_code');";
safe_query($db, $query);
mysql_close($db);
// gebruiker doorsturen naar de bevestigingspagina
header ("Location: yapa_confirm.php");
}
}
else{
?>
//ob_start();
error_reporting(E_ALL);
ini_set('display_errors',1);
// bestanden insluiten
include_once('yapa_config.php');
include_once('yapa_functions.php');
// controleren of de pagina zichzelf heeft aangeroepen
if(isset($_POST['verzonden'])){
// initialisatie
$fout_bericht = '';
$member_naam = safe_text($_POST['naam']);
$member_email = safe_text($_POST['email']);
$member_wachtwoord = safe_text($_POST['wachtwoord']);
$member_datum = safe_text($_POST['datum']);
$member_code = create_regcode(); // random 32-bits registratiecode genereren
// de database openen
$db = safe_db_open($host, $gebruiker, $wachtwoord, $database);
// een reeks controles uitvoeren:
// eerst controleren of het e-mailadres al bestaat in de database
// (dubbele vermeldingen mogen niet voorkomen)
$query = "SELECT * FROM 'yapa_members' WHERE email='$member_email'";
$result = safe_query($db, $query);
if (mysql_num_rows($result) != 0){
// e-mailadres bestaat al in de database, foutmelding tonen
$fout_bericht .= "Dit e-mailadres (<b>$member_email</b>) bestaat al!<br />";
}
elseif(!check_field($member_email, T_EMAIL)){
$fout_bericht .= "U hebt geen geldig e-mailadres opgegeven";
}
elseif(!check_field($member_wachtwoord, T_PASSWORD)){
$fout_bericht .= "U hebt geen geldig wachtwoord opgegeven (minimaal 4, maximaal 8 tekens) <b />";
}
elseif(!send_confirmation($member_email, $member_code)){;
// e-mailadres OK, query opbouwen en mailtje met
// bevestigingscode verzenden
$fout_bericht .="Het verzenden van de bevestigingsmail is mislukt";
}
if($fout_bericht){
echo $fout_bericht . "<br/>";
echo "<a href=\"$deze_pagina\">Opnieuw registreren</a>";
}
else{
// alles is goed gegaan, query opbouwen en gegevens in de database plaatsen
// wachtwoord versleutelen
$member_wachtwoord = safe_password($member_wachtwoord);
$query = "INSERT INTO yapa_members (id, naam, email, wachtwoord, datum, reg_code) VALUES
('', '$member_naam', '$member_email', '$member_wachtwoord', '$member_datum', '$member_code');";
safe_query($db, $query);
mysql_close($db);
// gebruiker doorsturen naar de bevestigingspagina
header ("Location: yapa_confirm.php");
}
}
else{
?>
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
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
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
/**
* Configuratiebestand invoegen.
*
*/
include_once 'yapa_config.php';
function safe_query($db, $query){
global $ERRORS; // globale array met foutmeldingen
$result = '';
if (empty($query) || empty($db) || !is_string($query) || !is_object($db)){
// er zijn geen geldige parameters meegegeven
return false;
}
else{
if (DEBUG_MODE){
// uitgebreide debugging-mode, met meldingen voor de programmeur
if (!$result = @mysql_query($db, $query)){
die ("{$ERRORS['QUERY_ERROR_ADMIN']}
<br> uitgevoerde query: $query .
<br> MySQL-foutnummer: " . mysql_errno($db) .
"<br> MySQL-melding: " . mysql_error($db));
}
else {
return $result;
}
}
else{
// geen debug-mode, eindgebruiker krijgt beperkte foutmelding te zien
if (!$result = @mysql_query($db, $query)){
die ($ERRORS ['QUERY_ERROR_USER']);
}
else {
return $result;
}
}
}
}// einde functie safe_query()
function safe_db_open($host, $gebruiker, $wachtwoord, $database){
$db ='';
if (empty($host) || empty($gebruiker) || empty($wachtwoord) || empty($database)){
// er zijn geen geldige parameters meegegeven
// eventueel nog uitbreiden met controles op het meegegeven type,
// zoals is_string().
return false;
}
else{
if (DEBUG_MODE){
// uitgebreide debugging-mode, met meldingen voor de programmeur
// DEBUG_MODE is een constante, gedefinieerd in het config-bestand
if (!$db = mysql_connect($host, $gebruiker, $wachtwoord, $database)){
die ("Oooops: er is een fout opgetreden: <br />
host : $host <br />
gebruiker : $gebruiker <br />
wachtwoord : $wachtwoord <br />
database : $database <br />
MySQL-foutnummer: " . mysql_errno($db) .
"<br /> MySQL-melding: " . mysql_error($db));
}
else {
// alles OK, resource-handler teruggeven
return $db;
}
}
else{
// geen debug-mode, eindgebruiker krijgt beperkte foutmelding te zien
if (!$db = mysql_connect($host, $gebruiker, $wachtwoord, $database)){
die ("Er s een fout opgetreden bij het werken met de database");
}
else {
// alles OK, resource-handler teruggeven
return $db;
}
}
}
} // einde functie safe_db_open()
?>
error_reporting(E_ALL);
ini_set('display_errors',1);
/**
* Configuratiebestand invoegen.
*
*/
include_once 'yapa_config.php';
function safe_query($db, $query){
global $ERRORS; // globale array met foutmeldingen
$result = '';
if (empty($query) || empty($db) || !is_string($query) || !is_object($db)){
// er zijn geen geldige parameters meegegeven
return false;
}
else{
if (DEBUG_MODE){
// uitgebreide debugging-mode, met meldingen voor de programmeur
if (!$result = @mysql_query($db, $query)){
die ("{$ERRORS['QUERY_ERROR_ADMIN']}
<br> uitgevoerde query: $query .
<br> MySQL-foutnummer: " . mysql_errno($db) .
"<br> MySQL-melding: " . mysql_error($db));
}
else {
return $result;
}
}
else{
// geen debug-mode, eindgebruiker krijgt beperkte foutmelding te zien
if (!$result = @mysql_query($db, $query)){
die ($ERRORS ['QUERY_ERROR_USER']);
}
else {
return $result;
}
}
}
}// einde functie safe_query()
function safe_db_open($host, $gebruiker, $wachtwoord, $database){
$db ='';
if (empty($host) || empty($gebruiker) || empty($wachtwoord) || empty($database)){
// er zijn geen geldige parameters meegegeven
// eventueel nog uitbreiden met controles op het meegegeven type,
// zoals is_string().
return false;
}
else{
if (DEBUG_MODE){
// uitgebreide debugging-mode, met meldingen voor de programmeur
// DEBUG_MODE is een constante, gedefinieerd in het config-bestand
if (!$db = mysql_connect($host, $gebruiker, $wachtwoord, $database)){
die ("Oooops: er is een fout opgetreden: <br />
host : $host <br />
gebruiker : $gebruiker <br />
wachtwoord : $wachtwoord <br />
database : $database <br />
MySQL-foutnummer: " . mysql_errno($db) .
"<br /> MySQL-melding: " . mysql_error($db));
}
else {
// alles OK, resource-handler teruggeven
return $db;
}
}
else{
// geen debug-mode, eindgebruiker krijgt beperkte foutmelding te zien
if (!$db = mysql_connect($host, $gebruiker, $wachtwoord, $database)){
die ("Er s een fout opgetreden bij het werken met de database");
}
else {
// alles OK, resource-handler teruggeven
return $db;
}
}
}
} // einde functie safe_db_open()
?>
Gewijzigd op 01/01/1970 01:00:00 door Rinus
je tabelnaam moet zonder quotes.
yapa_members is een tabelnaam en die hoort nooit tussen quotes of andere rommel te staan. Quotes gebruik je bij een string.
Maar zorg ook nog voor foutafhandeling, een query kan altijd mislukken, ook al is de SQL nog zo goed geschreven.
Ik vind het soieso vreemd de query's bleken werkend in phpmyadmin, de configparameters staan goe, hij doorloopt alle controles maar toch geen data in de tabel :(
Misschien maar heel iets anders proberen.
En er staan dus geen errors in je errorlog?
Warning: Cannot modify header information - headers already sent by (output started at /home/campowebsolutions.com/www/foto/yapa_register.php:29) in /home/campowebsolutions.com/www/foto/yapa_register.php on line 57
dit krijg ik als errors
Plaats deze code eens vlak na regel 26 van je eerste voorbeeld?
[email protected]'
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/campowebsolutions.com/www/foto/yapa_register.php on line 35
Warning: Cannot modify header information - headers already sent by (output started at /home/campowebsolutions.com/www/foto/yapa_register.php:28) in /home/campowebsolutions.com/www/foto/yapa_register.php on line 63
dit krijg ik
SELECT * FROM yapa_members WHERE email='Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/campowebsolutions.com/www/foto/yapa_register.php on line 35
Warning: Cannot modify header information - headers already sent by (output started at /home/campowebsolutions.com/www/foto/yapa_register.php:28) in /home/campowebsolutions.com/www/foto/yapa_register.php on line 63
dit krijg ik
Die fout cannot modify header information staat bij de FAQ op deze site.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
CREATE TABLE `yapa_members` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`naam` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL DEFAULT '',
`wachtwoord` varchar(50) NOT NULL DEFAULT '',
`datum` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`reg_code` varchar(50) NOT NULL DEFAULT '',
`actief` tinyint(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
?>
CREATE TABLE `yapa_members` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`naam` varchar(50) NOT NULL,
`email` varchar(50) NOT NULL DEFAULT '',
`wachtwoord` varchar(50) NOT NULL DEFAULT '',
`datum` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`reg_code` varchar(50) NOT NULL DEFAULT '',
`actief` tinyint(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
?>
Gewijzigd op 01/01/1970 01:00:00 door rinus
kan het zijn dat de database op een 1 of andere manier niet goed geselecteerd wordt