nieuw login, nieuwe gebruikeropties nodig!

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jaap V

Jaap V

18/12/2009 13:36:00
Quote Anchor link
ik heb dus een nieuw login script,
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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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\">&laquo; 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()\">&laquo; Ga terug</a>";
     }
    }
else{
     echo "De twee nieuwe wachtwoorden zijn niet hetzelfde. Probeer het opnieuw.<br />\n<a href=\"javascript:history.back()\">&laquo; Ga terug</a>";
    }
   }
else{
    echo "Het door jou opgegeven huidige wachtwoord is incorrect.<br />\n<a href=\"javascript:history.back()\">&laquo; 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\">&laquo; 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()\">&laquo; Ga terug</a>";
   }
  }
 }
else{
  echo "Je hebt een niet geldig emailadres opgegeven (lijkt niet op [email protected]).<br />\n<a href=\"javascript:history.back()\">&laquo; 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">&laquo; 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)
PHP script in nieuw venster Selecteer het PHP script
1
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)){
 
 ?>

<form method="post" action="useropties.php">
<table>
<tr>
<td>Gebruikersnaam:<b><br>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? $row['username'] ?>
</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
 
PHP hulp

PHP hulp

26/04/2024 07:53:21
 
Mark moes

mark moes

18/12/2009 13:39:00
Quote Anchor link
Pas het eerst eens een beetje zo aan dat je wat foutafhandeling kunt toepassen, dus or die (mysql_error()) er achter kunt zetten.

De foutmelding geeft namelijk weer dat mysql_fetch_array niet kan. Nu moeten we alleen nog maar weten waarom niet.
 
Jaap V

Jaap V

18/12/2009 13:48:00
Quote Anchor link
ik heb hem nu aangepast naar dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>
?>



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
 
Mr.Ark

Mr.Ark

18/12/2009 14:17:00
Quote Anchor link
Zet error_reporting eens aan.

or die moet je niet gebruiken als foutenafhandeling, doe het gewoon op de volgende manier.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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.
}

?>


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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?PHP

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
}


?>


Om te kijken of een veld is ingevuld gebruiken we empty() of isset voor.

dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?PHP

# Kijken of veld 1 is ingevuld
if(!empty($_POST['veld'])
{

    # Veld 1 is ingevuld
    echo 'Hé, u heeft veld 1 ingevuld.';
}

else
{
    # Veld 1 is niet ingevuld
    echo 'Vul A.U.B veld 1 in.';
}


?>
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
 
Jaap V

Jaap V

18/12/2009 16:52:00
Quote Anchor link
sorry voor late reactie,
maar het was me al gelukt :)

website staat nu online
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.