Toon posts:

[PHP/MySQL] Checks werken niet

Pagina: 1
Acties:
  • 36 views sinds 30-01-2008

Verwijderd

Topicstarter
ej,

Ik heb een mooi inlog scriptje gemaakt met sessies. Nu heb ik dus een script gemaakt om een profiel te wijzigen. Het is nu eerst nog even de gebruikersnaam, afdeling, wachtwoord en "security level". Aan de hand van de security level bepaal ik wie wat allemaal ziet.

Eerst komen ze in een venster profiles.php waar je een user kunnen kiezen (dit is dus alleen voor de administrator), daarna kun je het profiel wijzigen (profiles_change.php) en ik voer de query's uit in profiles_uitvoer.php.

Het probleem is nu dat de wachtwoord check van dat script niet werkt.. Ik ben gisteren al de hele dag bezig geweest en heb google, de faq en ik heb gezocht op dit forum maar kon helaas niks vinden.

Ik zou het graag zelf willen oplossen maar ik heb nog niet zo heel erg veel ervaring met php.

Dit is de code die ik tot nu toe heb:

profiles_uitvoer.php:
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
<?php

session_start();

if ($_SESSION['login'] == 1) {
    ?>
    <html>
    <title>Profiles change</title>
    <body>
    <H2>change profiles</H2>

    <form method="post">
    <input type="button" value="Close Window" 
    onclick="window.close()">
    </form> 
    
    <?php



    include("config.php");

    $connect = mysql_connect($dbhost, $dbuser, $dbpassword) or die ("Could not connect to database! <BR>Reason: ". mysql_error());

    mysql_select_db($db);

    $old_name = $_POST['old_name'];
    $name = $_POST['name'];
    $department = $_POST['department'];
    $password = $_POST['password'];
    $new_password = sha1(md5($_POST['new_password']));
    $new_password_check = sha1(md5($_POST['new_password_check']));
    $sec_lvl = $_POST['sec_lvl'];

    if($name == $old_name){
        echo " ";
    } else {
        if($name == ""){
            echo "<br>Please go <a href=\"profiles.php\">Back </a> and fill in a name</br>";
        } else {
            $connect = mysql_connect($dbhost, $dbuser, $dbpassword) or die ("Could not connect to database! <BR>Reason: ". mysql_error());

            mysql_select_db($db);
            $name_query = ("UPDATE users SET username='$name' WHERE username='$old_name'");
            mysql_query($name_query, $connect);
            echo "The username is changed<BR>";
        }
    }

    if($department == ""){
        echo "Please enter a department";
    } else {
        $connect = mysql_connect($dbhost, $dbuser, $dbpassword) or die ("Could not connect to database! <BR>Reason: ". mysql_error());
        mysql_select_db($db);
        $department_query = ("UPDATE users SET department='$department' WHERE username='$name'");
        mysql_query($department_query, $connect);
    }   

    if($password == 'on'){
        if($new_password == "" or $new_password_check == ""){
            echo "One or both of the password fields are empty please <a href=\"javascript: history.back(-1)\">Go back</a> and fill in a password";
        } else {
            if($new_password == $new_password_check){
                $connect = mysql_connect($dbhost, $dbuser, $dbpassword) or die ("Could not connect to database! <BR>Reason: ". mysql_error());

                mysql_select_db($db);

                $password_query = ("UPDATE users SET password='$new_password' WHERE username='$name'");
                mysql_query($password_query, $connect);
                echo "The password is changed<BR>";

            } else {

                echo "The passwords don't match. <br> please <a href=\"profiles.php\">Go back</a> to try again <br>";
            }
        }
    } else {
        echo "password not on <BR>";
    }
    
    if($sec_lvl == ""){
        echo "sec_lvl not changed";
    } else {
        $sec_lvl_query = ("UPDATE users SET sec_lvl='$sec_lvl' WHERE username='$name'");
        mysql_query($sec_lvl_query, $connect);
        echo "The security level is changed<BR>";
    }
    ?>
                </body>
                </html>

    <?php
} else {

    include("failed.php");
}
?>


Ik hoop dat iemand mij hiermee kan helpen..

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 09:47

mulder

ik spuug op het trottoir

Wie wat waar en hoe? Ik zie helemaal geen password check, alleen een password change?

oogjes open, snaveltjes dicht


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 22-02 00:22

Janoz

Moderator Devschuur®

!litemod

Je dumpt een lap code waarbij eigenlijk alleen de melding 'password check werkt niet' gegeven wordt. Dat is hier niet de bedoeling.

Problemen in je code los je niet op door te googlen of faq's te lezen, maar door te debuggen. Kijk wat er gebeurt en waarom dat niet overeenkomt met wat je verwacht. Probeer precies het punt te vinden waar de uitvoer van je programma niet meer overeenkomt met je verwachtingen. Als je daadwerkelijk de faq hier gelezen hebt dan moet je ook het stuk over debuggen tegen gekomen zijn.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Dit topic is gesloten.