nieuw login, nieuwe gebruikeropties nodig!
maar bij de vorige zat al een wachtwoord/naam wijziger bij...
die zit er bij deze niet bij.
deze wil ik dus graag zelf maken...
ik heb de code al van de vorige,
maar hij moet aangepast worden naar die ik nu heb...
hier de complete source:
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
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
<?php
include "config.php";
include "functions.php";
if (checklogin()) {
?>
<html>
<head>
<title><?= $sitenaam ?></title>
<link href="CSS/Style.css" rel="stylesheet" type="text/css" />
<script src="js/functions.js" language="javascript"></script>
</head>
<body>
<div align="center">
<div id="main">
<div id="header">
</div>
<div id="menu">
<li>
<a href="welkom.php"> Home </a>
</li>
<li><a href="#" onmouseover="mopen('m1')" onmouseout="mclosetime()">Zoeken</a>
<div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
<a href="naam.php">Klantgegevens</a>
<a href="categorie.php">Categorie/logboek</a>
<a href="add_cat1.php">Categorie toevoegen</a>
<a href="add_log1.php">Logboek toevoegen</a>
<a href="zoekcat.php">CATEGORIE VERWIJDEREN</a>
</div>
</li>
<li>
<a href="#" onmouseover="mopen('m2')" onmouseout="mclosetime()"> Leden </a>
<div id="m2" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
<a href="lidonline.php">Leden online</a>
<a href="ledenlijst.php">Ledenlijst</a>
</div>
</li>
<li>
<a href="#">Overig</a>
</li>
<li>
<a href="useropties.php">Gegevens</a>
</li>
<li>
<a href="uitloggen.php">Uitloggen</a>
</li>
</div>
<div id="content">
<div id="inhoud1">
<?
// Inloggen verplicht; safe.php
if(isset($_POST['submit'])) {
if(preg_match("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}$/i", $_POST['email'])) {
if($_POST['pass1'] != "") {
// Wachtwoord wijzigen
$sql = "SELECT password FROM leden WHERE `userid` = '".sqlsafe($_COOKIE['id'])."' AND `hash` = '".sqlsafe($_COOKIE['hash'])."'";
$query = mysql_query($sql);
$rij = mysql_fetch_object($query);
$dbpass = htmlspecialchars($rij->wachtwoord);
if($dbpass == md5($_POST['pasnow'])) {
if($_POST['pass1'] == $_POST['pass2']) {
$newpass = md5($_POST['pass1']);
$sql = "UPDATE gebruikers SET email='".$_POST['email']."',wachtwoord='".$newpass."' WHERE id='".$_SESSION['user_id']."'";
$query = mysql_query($sql);
if($query == TRUE) {
echo "Je e-mailadres is succesvol gewijzigd naar '".$_POST['email']."', en je wachtwoord is gewijzigd.<br />\n<a href=\"useropties.php\">« Ga terug</a>";
if(isset($_COOKIE['user_password'])) {
setcookie("user_password", $newpass, time() + 365 * 86400);
}
}else{
echo "Er is een fout opgetreden tijdens het bijwerken van je email/wachtwoord. Probeer het later nog eens.<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}else{
echo "De twee nieuwe wachtwoorden zijn niet hetzelfde. Probeer het opnieuw.<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}else{
echo "Het door jou opgegeven huidige wachtwoord is incorrect.<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}else{
// Alleen e-mail wijzigen
$sql = "UPDATE gebruikers SET email='".$_POST['email']."' WHERE id='".$_SESSION['user_id']."'";
$query = mysql_query($sql);
if($query == TRUE) {
echo "Je e-mailadres is succesvol gewijzigd naar '".$_POST['email']."'.<br />\n<a href=\"useropties.php\">« Ga terug</a>";
}else{
echo "Er is een fout opgetreden tijdens het bijwerken van je e-mailadres. Probeer het later nog eens.<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}
}else{
echo "Je hebt een niet geldig emailadres opgegeven (lijkt niet op [email protected]).<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}else{
// Formulier
$query = mysql_query("SELECT * FROM leden WHERE `userid` = '".sqlsafe($_COOKIE['id'])."' AND `hash` = '".sqlsafe($_COOKIE['hash'])."'");
while($row = mysql_fetch_array($query)){
?>
<form method="post" action="useropties.php">
<table>
<tr>
<td>Gebruikersnaam:<b><br><? $row['username'] ?></b><br><br></td>
</tr>
<tr>
<td>E-mailadres:<br><input type="text" name="email" value="<?= $email ?>" /><br><br></td>
</tr>
<tr>
<td>Huidige wachtwoord:<br><input type="password" name="pasnow" /> <br><small>(alleen bij nieuw wachtwoord)</small><br><br></td>
</tr>
<tr>
<td>Nieuw wachtwoord:<br><input type="password" name="pass1" /> <br><small>(leeglaten voor huidige)</small><br><br></td>
</tr>
<tr>
<td>Herhaal:<br><input type="password" name="pass2" /><br><br></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Opslaan" /><br><br></td>
</tr>
</table>
</form>
<a href="welkom.php">« Ga terug</a>
<?
}}
?>
</div>
</div></div>
</div>
</body>
</html>
<?php
} else {
echo '<center><h2>Niet ingelogd</h2>';
echo '<br><br><h4><a href="inloggen.php">Log nu in!</a></h4></center>';
}
?>
include "config.php";
include "functions.php";
if (checklogin()) {
?>
<html>
<head>
<title><?= $sitenaam ?></title>
<link href="CSS/Style.css" rel="stylesheet" type="text/css" />
<script src="js/functions.js" language="javascript"></script>
</head>
<body>
<div align="center">
<div id="main">
<div id="header">
</div>
<div id="menu">
<li>
<a href="welkom.php"> Home </a>
</li>
<li><a href="#" onmouseover="mopen('m1')" onmouseout="mclosetime()">Zoeken</a>
<div id="m1" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
<a href="naam.php">Klantgegevens</a>
<a href="categorie.php">Categorie/logboek</a>
<a href="add_cat1.php">Categorie toevoegen</a>
<a href="add_log1.php">Logboek toevoegen</a>
<a href="zoekcat.php">CATEGORIE VERWIJDEREN</a>
</div>
</li>
<li>
<a href="#" onmouseover="mopen('m2')" onmouseout="mclosetime()"> Leden </a>
<div id="m2" onmouseover="mcancelclosetime()" onmouseout="mclosetime()">
<a href="lidonline.php">Leden online</a>
<a href="ledenlijst.php">Ledenlijst</a>
</div>
</li>
<li>
<a href="#">Overig</a>
</li>
<li>
<a href="useropties.php">Gegevens</a>
</li>
<li>
<a href="uitloggen.php">Uitloggen</a>
</li>
</div>
<div id="content">
<div id="inhoud1">
<?
// Inloggen verplicht; safe.php
if(isset($_POST['submit'])) {
if(preg_match("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}$/i", $_POST['email'])) {
if($_POST['pass1'] != "") {
// Wachtwoord wijzigen
$sql = "SELECT password FROM leden WHERE `userid` = '".sqlsafe($_COOKIE['id'])."' AND `hash` = '".sqlsafe($_COOKIE['hash'])."'";
$query = mysql_query($sql);
$rij = mysql_fetch_object($query);
$dbpass = htmlspecialchars($rij->wachtwoord);
if($dbpass == md5($_POST['pasnow'])) {
if($_POST['pass1'] == $_POST['pass2']) {
$newpass = md5($_POST['pass1']);
$sql = "UPDATE gebruikers SET email='".$_POST['email']."',wachtwoord='".$newpass."' WHERE id='".$_SESSION['user_id']."'";
$query = mysql_query($sql);
if($query == TRUE) {
echo "Je e-mailadres is succesvol gewijzigd naar '".$_POST['email']."', en je wachtwoord is gewijzigd.<br />\n<a href=\"useropties.php\">« Ga terug</a>";
if(isset($_COOKIE['user_password'])) {
setcookie("user_password", $newpass, time() + 365 * 86400);
}
}else{
echo "Er is een fout opgetreden tijdens het bijwerken van je email/wachtwoord. Probeer het later nog eens.<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}else{
echo "De twee nieuwe wachtwoorden zijn niet hetzelfde. Probeer het opnieuw.<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}else{
echo "Het door jou opgegeven huidige wachtwoord is incorrect.<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}else{
// Alleen e-mail wijzigen
$sql = "UPDATE gebruikers SET email='".$_POST['email']."' WHERE id='".$_SESSION['user_id']."'";
$query = mysql_query($sql);
if($query == TRUE) {
echo "Je e-mailadres is succesvol gewijzigd naar '".$_POST['email']."'.<br />\n<a href=\"useropties.php\">« Ga terug</a>";
}else{
echo "Er is een fout opgetreden tijdens het bijwerken van je e-mailadres. Probeer het later nog eens.<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}
}else{
echo "Je hebt een niet geldig emailadres opgegeven (lijkt niet op [email protected]).<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}else{
// Formulier
$query = mysql_query("SELECT * FROM leden WHERE `userid` = '".sqlsafe($_COOKIE['id'])."' AND `hash` = '".sqlsafe($_COOKIE['hash'])."'");
while($row = mysql_fetch_array($query)){
?>
<form method="post" action="useropties.php">
<table>
<tr>
<td>Gebruikersnaam:<b><br><? $row['username'] ?></b><br><br></td>
</tr>
<tr>
<td>E-mailadres:<br><input type="text" name="email" value="<?= $email ?>" /><br><br></td>
</tr>
<tr>
<td>Huidige wachtwoord:<br><input type="password" name="pasnow" /> <br><small>(alleen bij nieuw wachtwoord)</small><br><br></td>
</tr>
<tr>
<td>Nieuw wachtwoord:<br><input type="password" name="pass1" /> <br><small>(leeglaten voor huidige)</small><br><br></td>
</tr>
<tr>
<td>Herhaal:<br><input type="password" name="pass2" /><br><br></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Opslaan" /><br><br></td>
</tr>
</table>
</form>
<a href="welkom.php">« Ga terug</a>
<?
}}
?>
</div>
</div></div>
</div>
</body>
</html>
<?php
} else {
echo '<center><h2>Niet ingelogd</h2>';
echo '<br><br><h4><a href="inloggen.php">Log nu in!</a></h4></center>';
}
?>
hier heb ik nog een stukje code wat eruti gekopieerd is...
en deze geeft de volgende melding:
code:
Code (php)
1
2
3
4
5
2
3
4
5
$query = mysql_query("SELECT * FROM leden WHERE `userid` = '".sqlsafe($_COOKIE['id'])."' AND `hash` = '".sqlsafe($_COOKIE['hash'])."'");
while($row = mysql_fetch_array($query)){
?>
while($row = mysql_fetch_array($query)){
?>
<form method="post" action="useropties.php">
<table>
<tr>
<td>Gebruikersnaam:<b><br></b><br><br></td>
error:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in H:\Websites\logboek\useropties.php on line 101
De foutmelding geeft namelijk weer dat mysql_fetch_array niet kan. Nu moeten we alleen nog maar weten waarom niet.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?
$query = mysql_query("SELECT * FROM leden WHERE `id` = '".sqlsafe($_COOKIE['id'])."'");
while($row = mysql_fetch_array($query) or die (mysql_error())){
?>
<form method="post" action="useropties.php">
<table>
<tr>
<td>Gebruikersnaam:<b><br><? $row['username'] ?></b><br><br></td>
?>
$query = mysql_query("SELECT * FROM leden WHERE `id` = '".sqlsafe($_COOKIE['id'])."'");
while($row = mysql_fetch_array($query) or die (mysql_error())){
?>
<form method="post" action="useropties.php">
<table>
<tr>
<td>Gebruikersnaam:<b><br><? $row['username'] ?></b><br><br></td>
?>
maar ik krijg nu gewoon geen error meer,
maar ook geen ingevulde velden...
verder heb ik ook geen flauw benul hoe de gegevens weggeschreven worden...
en hoedat ik ze moet ophalen...
volgens mij met cookies en sessies... (script van aar)
mischien iemand die mij op weg weet te helpen?
Gewijzigd op 01/01/1970 01:00:00 door Jaap V
or die moet je niet gebruiken als foutenafhandeling, doe het gewoon op de volgende manier.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?PHP
# Hier je query
$Query = "";
# Resultaat van de query
$Result = mysql_query($Query);
# Kijken of de query is gelukt
if(!$Result)
{
# Foutje in query
echo 'Fout opgetreden, fout: '.mysql_error();
}
else
{
# Query is succesvol uitgevoerd, ga verder.
}
?>
# Hier je query
$Query = "";
# Resultaat van de query
$Result = mysql_query($Query);
# Kijken of de query is gelukt
if(!$Result)
{
# Foutje in query
echo 'Fout opgetreden, fout: '.mysql_error();
}
else
{
# Query is succesvol uitgevoerd, ga verder.
}
?>
Verder zal het geen kwaad doen om je code eens wat overzichtelijker te maken, dan zal je ook sneller de fout kunnen vinden.
Edit:
Gebruik mysql_fetch_assoc i.p.v die anderen. assoc is het snelste van allen.
Kijken of er een form wordt gepost doen we met.
Om te kijken of een veld is ingevuld gebruiken we empty() of isset voor.
dus:
Gebruik mysql_fetch_assoc i.p.v die anderen. assoc is het snelste van allen.
Kijken of er een form wordt gepost doen we met.
Om te kijken of een veld is ingevuld gebruiken we empty() of isset voor.
dus:
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
maar het was me al gelukt :)
website staat nu online