Registratie probleem
Hij gaf eerder wel
mysql_num_rows(): supplied argument is not a valid MySQL result resource
en header fout maar dat is verdewenen na
ob_start();
ob_end_flush();
mijn code:
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
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
<?php
ob_start();
// 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 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();
// 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 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{
?>
<!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=iso-8859-1" />
<title>YAPA - registratie</title>
</head>
<body>
<h2>YAPA: Registratie</h2>
Registreer nu bij Yet Another Photo Album!
<ul>
<li>Als inlognaam wordt uw e-mailadres gebruikt. </li>
<li>Na ontvangst van uw aanmelding ontvangt u een e-mail om uw account te activeren.</li>
<li>Alle velden zijn verplicht.</li>
</ul>
<hr>
<form method="post" action="">
<pre>
Naam: <input name="naam" type="text" size="30 " />
E-mailadres: <input name="email" type="text" size="30 " />
Wachtwoord: <input name="wachtwoord" type="password" size="30" /> (minimaal 4, maximaal 8 tekens)
<input type="hidden" name="verzonden" value="1" />
<input type="hidden" name="datum" value="" />
</pre>
<input type="submit" name="Submit" value="Registreren" />
<input type="reset" name="Reset" value="Leegmaken" />
</form>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Rinus
Boven je site en error-afhandelingen gebruiken bij je query's.
Code (php)
1
2
3
2
3
<?php
or die("Error ".mysql_errno().": ".mysql_error()."<br>Excuses voor het ongemak!");
?>
or die("Error ".mysql_errno().": ".mysql_error()."<br>Excuses voor het ongemak!");
?>
Zoiets dus.
dit is de code in de functie safe_db_open
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
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
<?php
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 = mysqli_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: " . mysqli_errno($db) .
"<br /> MySQL-melding: " . mysqli_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()
?>
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 = mysqli_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: " . mysqli_errno($db) .
"<br /> MySQL-melding: " . mysqli_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