Sessie of (mijn) script fout??
Ik heb een website gemaakt met een cms systeem waardoor iedere gebruiker 1 tabblad van de site kan beheren.
Er word dus ingelogt en er word dan een sessie weggeschreven met o.a. gebruikernaam/userlevel. Als iemand dus wat wilt aanpassen kan dat alleen aan de tabel gelijknamig aan zijn of haar gebruikersnaam. ook bepaalde opties zijn pas beschikbaar indien het een correct userlevel staat ingesteld.
Dit werkt normaal gesproken ook goed.
Alleen komt het af en toe op eens voor dat er een menu wegvalt en dat ik opeens ingelogd lijkt te zijn onder een andere naam. ik dus alleen bij de links van mijn buurman/vrouw...erg raar lijkt mij, hoe kan er nou opeens een waarde veranderen aan de $_SESSION, tegelijk ben ik dus voor de helft uitgelogd. ik kan het niet anders meer omschrijven.
ik heb ook met de hosting gebeld maar die weten ook niet wat het kan zijn, ze hebben wel windows hosting en het zou eventueel te maken kunnen hebben volgens hun dat ik alles gemaakt heb in apache. (???)
Ik hoop dat iemand mijn probleem snapt en als er vragen zijn dan beantwoord ik die uiteraard graag.
Indien er code gewenst is dan graag duidelijk welke...
Alvast bedankt,
Groeten Bart
------------------------
dit is mijn authenticatie, hier staat ook dat menu'tje in die tevoorschijnkomt als je bent ingelogd, die dus zomaar opeens foetsie is...
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
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
<?php
//als er gegevens ingevult zijn vergelijk deze dan met de database
if (isset($_POST['gebruiker'], $_POST['wachtwoord'])){
//mysql
$sql = "SELECT * FROM user WHERE USERNAME = " . "'" . $_POST['gebruiker'] . "'";
$resultaat = mysql_query($sql);
if (mysql_num_rows($resultaat) > 0){
$rij = mysql_fetch_array($resultaat);
$gebruiker = $_POST['gebruiker'];
$wachtwoord = md5($_POST['wachtwoord']);
$username = $rij['USERNAME'];
$password = md5($rij['PASSWORD']);
$level = $rij['LEVEL'];
if ($gebruiker == $username){
if ($wachtwoord == $password){
if ($level == "0"){
$_SESSION['gebruiker'] = $username;
$_SESSION['wachtwoord'] = $password;
$_SESSION['level'] = $level;
}
if ($level == "1"){
$_SESSION['gebruiker'] = $username;
$_SESSION['wachtwoord'] = $password;
$_SESSION['level'] = $level;
}
} else { echo "<p><b>Uw wachtwoord is niet correct</b></p>"; }
} else { echo "<p><b>Gebruikersnaam is niet correct</b></p>"; }
} else { echo "<p><b>Gebruiker niet gevonden</b></p>"; }
}
//als er een sessie aanwezig is controleer deze dan
if (isset($_SESSION['gebruiker'])){
//mysql
$sql = "SELECT * FROM user WHERE USERNAME = " . "'" . $_SESSION['gebruiker'] . "'";
$resultaat = mysql_query($sql);
if (mysql_num_rows($resultaat) > 0){
$rij = mysql_fetch_array($resultaat);
$level = $_SESSION['level'];
if($_SESSION['gebruiker'] == $rij['USERNAME']){
if($_SESSION['wachtwoord'] == md5($rij['PASSWORD'])){
echo "<div id=\"uitloggen\">";
echo " <a href=\"http://www.wijkwaard.nl\">[www.wijkwaard.nl]</a>";
echo " <a href=\"ibs.php\">[hoofdmenu]</a>";
echo " <a href=\"uitloggen.php\">[uitloggen]</a>";
echo "</div>";
if ($level == "0"){
echo "<div id=\"status_rechts\">Uw bent ingelogd als:<b> \"" . $_SESSION['gebruiker'] . "\"</b>";
echo " met gebruikers rechten.</div>";
}
if ($level == "1"){
echo "<div id=\"status_rechts\">Uw bent ingelogd als:<b> \"" . $_SESSION['gebruiker'] . "\"</b>";
echo " met administratie rechten.</div>";
}
echo "</div>";
}
}
}
} else { require ('login_form.php'); }
?>
//als er gegevens ingevult zijn vergelijk deze dan met de database
if (isset($_POST['gebruiker'], $_POST['wachtwoord'])){
//mysql
$sql = "SELECT * FROM user WHERE USERNAME = " . "'" . $_POST['gebruiker'] . "'";
$resultaat = mysql_query($sql);
if (mysql_num_rows($resultaat) > 0){
$rij = mysql_fetch_array($resultaat);
$gebruiker = $_POST['gebruiker'];
$wachtwoord = md5($_POST['wachtwoord']);
$username = $rij['USERNAME'];
$password = md5($rij['PASSWORD']);
$level = $rij['LEVEL'];
if ($gebruiker == $username){
if ($wachtwoord == $password){
if ($level == "0"){
$_SESSION['gebruiker'] = $username;
$_SESSION['wachtwoord'] = $password;
$_SESSION['level'] = $level;
}
if ($level == "1"){
$_SESSION['gebruiker'] = $username;
$_SESSION['wachtwoord'] = $password;
$_SESSION['level'] = $level;
}
} else { echo "<p><b>Uw wachtwoord is niet correct</b></p>"; }
} else { echo "<p><b>Gebruikersnaam is niet correct</b></p>"; }
} else { echo "<p><b>Gebruiker niet gevonden</b></p>"; }
}
//als er een sessie aanwezig is controleer deze dan
if (isset($_SESSION['gebruiker'])){
//mysql
$sql = "SELECT * FROM user WHERE USERNAME = " . "'" . $_SESSION['gebruiker'] . "'";
$resultaat = mysql_query($sql);
if (mysql_num_rows($resultaat) > 0){
$rij = mysql_fetch_array($resultaat);
$level = $_SESSION['level'];
if($_SESSION['gebruiker'] == $rij['USERNAME']){
if($_SESSION['wachtwoord'] == md5($rij['PASSWORD'])){
echo "<div id=\"uitloggen\">";
echo " <a href=\"http://www.wijkwaard.nl\">[www.wijkwaard.nl]</a>";
echo " <a href=\"ibs.php\">[hoofdmenu]</a>";
echo " <a href=\"uitloggen.php\">[uitloggen]</a>";
echo "</div>";
if ($level == "0"){
echo "<div id=\"status_rechts\">Uw bent ingelogd als:<b> \"" . $_SESSION['gebruiker'] . "\"</b>";
echo " met gebruikers rechten.</div>";
}
if ($level == "1"){
echo "<div id=\"status_rechts\">Uw bent ingelogd als:<b> \"" . $_SESSION['gebruiker'] . "\"</b>";
echo " met administratie rechten.</div>";
}
echo "</div>";
}
}
}
} else { require ('login_form.php'); }
?>
en hier komen bijvoorbeeld de links te staan welke hij/zij kan verwijderen/bewerken:
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
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
<?php
if($_SESSION['level'] == "1"){
if (isset($_GET['sorteer'])){
if ($_GET['sorteer'] == "categorie_az") {
$sql = "SELECT * FROM categorie JOIN titel ON titel.cat_id = categorie.cat_id ORDER BY `CAT_NAAM` ASC";
}
if ($_GET['sorteer'] == "categorie_za") {
$sql = "SELECT * FROM categorie JOIN titel ON titel.cat_id = categorie.cat_id ORDER BY `CAT_NAAM` DESC";
}
if ($_GET['sorteer'] == "naam_az") {
$sql = "SELECT * FROM categorie JOIN titel ON titel.cat_id = categorie.cat_id ORDER BY `TITEL_TEKST` ASC";
}
if ($_GET['sorteer'] == "naam_za") {
$sql = "SELECT * FROM categorie JOIN titel ON titel.cat_id = categorie.cat_id ORDER BY `TITEL_TEKST` DESC";
}
if ($_GET['sorteer'] == "naam_new") {
$sql = "SELECT * FROM categorie JOIN titel ON titel.cat_id = categorie.cat_id ORDER BY `TITEL_ID` DESC";
}
if ($_GET['sorteer'] == "naam_old") {
$sql = "SELECT * FROM categorie JOIN titel ON titel.cat_id = categorie.cat_id ORDER BY `TITEL_ID` ASC";
}
}
else {
$sql = "SELECT * FROM categorie JOIN titel ON titel.cat_id = categorie.cat_id ORDER BY `CAT_NAAM` ASC";
}
}
if($_SESSION['level'] == "0"){
$presql = mysql_query("SELECT * FROM categorie WHERE CAT_NAAM='". $_SESSION['gebruiker'] ."'");
$prerij = mysql_fetch_array($presql);
if (isset($_GET['sorteer'])){
if ($_GET['sorteer'] == "az") {
$sql = "SELECT * FROM `titel` WHERE CAT_ID='". $prerij['CAT_ID'] ."' ORDER BY `TITEL_TEKST` ASC";
}
if ($_GET['sorteer'] == "za") {
$sql = "SELECT * FROM `titel` WHERE CAT_ID='". $prerij['CAT_ID'] ."' ORDER BY `TITEL_TEKST` DESC";
}
if ($_GET['sorteer'] == "new") {
$sql = "SELECT * FROM `titel` WHERE CAT_ID='". $prerij['CAT_ID'] ."' ORDER BY `TITEL_ID` DESC";
}
if ($_GET['sorteer'] == "old") {
$sql = "SELECT * FROM `titel` WHERE CAT_ID='". $prerij['CAT_ID'] ."' ORDER BY `TITEL_ID` ASC";
}
}
else {
$sql = "SELECT * FROM `titel` WHERE CAT_ID='". $prerij['CAT_ID'] ."' ORDER BY `TITEL_ID` DESC";
}
}
$resultaat = mysql_query($sql);
while ($rij = mysql_fetch_array($resultaat)) {
echo "<tr id=\"ibs_row_dynamic\">";
echo "<td id=\"\">". $rij['TITEL_ID'] ."</td>";
echo "<td id=\"\">". $rij['TITEL_TEKST'] ."</td>";
if($_SESSION['level'] == "1"){
echo "<td id=\"\">". $rij['CAT_NAAM'] ."</td>";
}
echo "<td id=\"\"><a href=\"ibs_links.php?actie=bewerken&id=" . $rij['TITEL_ID'] . "\" >bewerken</a></td>";
echo "<td id=\"\"><a href=\"ibs_links.php?actie=verwijder&id=" . $rij['TITEL_ID'] . "\" onClick=\"return bevestiging(4)\">verwijder</a></td>";
echo "</tr>";
}
?>
if($_SESSION['level'] == "1"){
if (isset($_GET['sorteer'])){
if ($_GET['sorteer'] == "categorie_az") {
$sql = "SELECT * FROM categorie JOIN titel ON titel.cat_id = categorie.cat_id ORDER BY `CAT_NAAM` ASC";
}
if ($_GET['sorteer'] == "categorie_za") {
$sql = "SELECT * FROM categorie JOIN titel ON titel.cat_id = categorie.cat_id ORDER BY `CAT_NAAM` DESC";
}
if ($_GET['sorteer'] == "naam_az") {
$sql = "SELECT * FROM categorie JOIN titel ON titel.cat_id = categorie.cat_id ORDER BY `TITEL_TEKST` ASC";
}
if ($_GET['sorteer'] == "naam_za") {
$sql = "SELECT * FROM categorie JOIN titel ON titel.cat_id = categorie.cat_id ORDER BY `TITEL_TEKST` DESC";
}
if ($_GET['sorteer'] == "naam_new") {
$sql = "SELECT * FROM categorie JOIN titel ON titel.cat_id = categorie.cat_id ORDER BY `TITEL_ID` DESC";
}
if ($_GET['sorteer'] == "naam_old") {
$sql = "SELECT * FROM categorie JOIN titel ON titel.cat_id = categorie.cat_id ORDER BY `TITEL_ID` ASC";
}
}
else {
$sql = "SELECT * FROM categorie JOIN titel ON titel.cat_id = categorie.cat_id ORDER BY `CAT_NAAM` ASC";
}
}
if($_SESSION['level'] == "0"){
$presql = mysql_query("SELECT * FROM categorie WHERE CAT_NAAM='". $_SESSION['gebruiker'] ."'");
$prerij = mysql_fetch_array($presql);
if (isset($_GET['sorteer'])){
if ($_GET['sorteer'] == "az") {
$sql = "SELECT * FROM `titel` WHERE CAT_ID='". $prerij['CAT_ID'] ."' ORDER BY `TITEL_TEKST` ASC";
}
if ($_GET['sorteer'] == "za") {
$sql = "SELECT * FROM `titel` WHERE CAT_ID='". $prerij['CAT_ID'] ."' ORDER BY `TITEL_TEKST` DESC";
}
if ($_GET['sorteer'] == "new") {
$sql = "SELECT * FROM `titel` WHERE CAT_ID='". $prerij['CAT_ID'] ."' ORDER BY `TITEL_ID` DESC";
}
if ($_GET['sorteer'] == "old") {
$sql = "SELECT * FROM `titel` WHERE CAT_ID='". $prerij['CAT_ID'] ."' ORDER BY `TITEL_ID` ASC";
}
}
else {
$sql = "SELECT * FROM `titel` WHERE CAT_ID='". $prerij['CAT_ID'] ."' ORDER BY `TITEL_ID` DESC";
}
}
$resultaat = mysql_query($sql);
while ($rij = mysql_fetch_array($resultaat)) {
echo "<tr id=\"ibs_row_dynamic\">";
echo "<td id=\"\">". $rij['TITEL_ID'] ."</td>";
echo "<td id=\"\">". $rij['TITEL_TEKST'] ."</td>";
if($_SESSION['level'] == "1"){
echo "<td id=\"\">". $rij['CAT_NAAM'] ."</td>";
}
echo "<td id=\"\"><a href=\"ibs_links.php?actie=bewerken&id=" . $rij['TITEL_ID'] . "\" >bewerken</a></td>";
echo "<td id=\"\"><a href=\"ibs_links.php?actie=verwijder&id=" . $rij['TITEL_ID'] . "\" onClick=\"return bevestiging(4)\">verwijder</a></td>";
echo "</tr>";
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Bart Scheltinga
Bart schreef op 29.01.2009 16:00:
ik heb ook met de hosting gebeld maar die weten ook niet wat het kan zijn, ze hebben wel windows hosting en het zou eventueel te maken kunnen hebben volgens hun dat ik alles gemaakt heb in apache. (???)
Ik heb geen id, zou het zo ook niet weten, post eens wat relevante code zou ik zeggen. Maar wat je daar zegt lijkt me sterk. Apache draait ook gewoon onder Windows, verder zou er in princiepe heel weinig verschil moeten zijn tussen php op linux en windows.
Karl schreef op 29.01.2009 16:07:
Ik heb geen id, zou het zo ook niet weten, post eens wat relevante code zou ik zeggen. Maar wat je daar zegt lijkt me sterk. Apache draait ook gewoon onder Windows, verder zou er in princiepe heel weinig verschil moeten zijn tussen php op linux en windows.
Bart schreef op 29.01.2009 16:00:
ik heb ook met de hosting gebeld maar die weten ook niet wat het kan zijn, ze hebben wel windows hosting en het zou eventueel te maken kunnen hebben volgens hun dat ik alles gemaakt heb in apache. (???)
Ik heb geen id, zou het zo ook niet weten, post eens wat relevante code zou ik zeggen. Maar wat je daar zegt lijkt me sterk. Apache draait ook gewoon onder Windows, verder zou er in princiepe heel weinig verschil moeten zijn tussen php op linux en windows.
Tja...dat leek mij ook al sterk, maar op dit moment kan je me alles aanpraten..
niet allemaal tegelijk...:-)
Edit:
Volgens mij doet dit precies hetzelfde als jouw eerste scriptje.
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
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
<?php
session_start();
if (isset($_POST['gebruiker'], $_POST['wachtwoord']))
{
$sql = "SELECT *
FROM user
WHERE USERNAME = '" . mysql_real_escape_string($_POST['gebruiker']) . "'
AND PASSWORD = MD5('" . mysql_real_escape_string($_POST['wachtwoord']) . "'";
$resultaat = mysql_query($sql);
if ($resultaat)
{
if(mysql_num_rows($resultaat) == 1)
{
$rij = mysql_fetch_array($resultaat);
$_SESSION['gebruiker'] = $rij['USERNAME'];
$_SESSION['level'] = $rij['LEVEL'];
}
else
{
session_destroy();
echo '<p><b>Uw inloggegevens zijn niet correct</b></p>';
}
}
else
{
echo 'Query Error'; // Zelf iets moois van maken
}
}
if (isset($_SESSION['gebruiker']))
{
echo '<div id="uitloggen">
<a href="http://www.wijkwaard.nl">[www.wijkwaard.nl]</a>
<a href="ibs.php">[hoofdmenu]</a>
<a href="uitloggen.php">[uitloggen]</a>
</div>';
switch ($_SESSION['level'])
{
case 1: $tekst = ' met administratierechten.';
break;
default : $tekst = ' met gebruikersrechten.';
break;
}
echo '<div id="status_rechts">U bent ingelogd als:<b> "' . $_SESSION['gebruiker'] . '"</b>' . $tekst . '</div>';
}
else
{
require ('login_form.php');
}
?>
session_start();
if (isset($_POST['gebruiker'], $_POST['wachtwoord']))
{
$sql = "SELECT *
FROM user
WHERE USERNAME = '" . mysql_real_escape_string($_POST['gebruiker']) . "'
AND PASSWORD = MD5('" . mysql_real_escape_string($_POST['wachtwoord']) . "'";
$resultaat = mysql_query($sql);
if ($resultaat)
{
if(mysql_num_rows($resultaat) == 1)
{
$rij = mysql_fetch_array($resultaat);
$_SESSION['gebruiker'] = $rij['USERNAME'];
$_SESSION['level'] = $rij['LEVEL'];
}
else
{
session_destroy();
echo '<p><b>Uw inloggegevens zijn niet correct</b></p>';
}
}
else
{
echo 'Query Error'; // Zelf iets moois van maken
}
}
if (isset($_SESSION['gebruiker']))
{
echo '<div id="uitloggen">
<a href="http://www.wijkwaard.nl">[www.wijkwaard.nl]</a>
<a href="ibs.php">[hoofdmenu]</a>
<a href="uitloggen.php">[uitloggen]</a>
</div>';
switch ($_SESSION['level'])
{
case 1: $tekst = ' met administratierechten.';
break;
default : $tekst = ' met gebruikersrechten.';
break;
}
echo '<div id="status_rechts">U bent ingelogd als:<b> "' . $_SESSION['gebruiker'] . '"</b>' . $tekst . '</div>';
}
else
{
require ('login_form.php');
}
?>
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -