Sessie beveiling doet niet wat het moet doen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

- Ariën  -
Beheerder

- Ariën -

06/06/2022 13:46:43
Quote Anchor link
$_GET heeft niks met de header te maken. Dat komt uit een URL.
Ik zou zeggen, ga alle variabelen eens na met var_dump() en je ziet wat de inhoud is, en je kan zo achterhalen waarom een statement niet goed uitgevoerd wordt.

Verder is er ook SQL-inejection!!!!
Gewijzigd op 06/06/2022 13:46:58 door - Ariën -
 
PHP hulp

PHP hulp

28/04/2024 21:50:42
 
Ward van der Put
Moderator

Ward van der Put

06/06/2022 13:47:41
Quote Anchor link
Arno van Zanten op 06/06/2022 13:34:48:
Echter werkt de zelfde opbouw in de ene pagina wel, alleen in de andere niet.

Dat kan niet, dus: zoek de verschillen.

Of kopieer de code die wel werkt en werk daarmee verder.
 
Arno van Zanten

Arno van Zanten

06/06/2022 13:48:41
Quote Anchor link
var_dump() geeft geen response
Als user krijg ik op de ID van waar ik mee ingelogt ben geen toegang tot het ID waar ik mee ingelogt ben

Toevoeging op 06/06/2022 13:49:24:

Ward van der Put op 06/06/2022 13:47:41:
Arno van Zanten op 06/06/2022 13:34:48:
Echter werkt de zelfde opbouw in de ene pagina wel, alleen in de andere niet.

Dat kan niet, dus: zoek de verschillen.

Of kopieer de code die wel werkt en werk daarmee verder.


Heb de code wat in gekort.

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
<?php
    $ID
= $_GET['ID'];
    
    $sql = 'SELECT * FROM Info WHERE ID="'.$ID.'"';
        $result = mysqli_query($connect, $sql);
        $info = mysqli_fetch_all($result, MYSQLI_ASSOC);
        mysqli_free_result($result);
        mysqli_close($connect);
            foreach($info as $details) {
                    $name = $details['Name'];
                    $function = $details['Function'];
                    $phone = $details['Phone'];
                    $email = $details['Email'];
                    $info = $details['PersonalInfo'];
                    $id = $details['ID'];
            }

    if($_SESSION['Level'] == '9') {
            echo "<center>
                <form action='./inc/replaceinfo.php' method='post'>
                <input type='text' name='name' value='"
.$name."' placeholder='".$name."'><br>
                <input type='text' name='function' value='"
.$function."' placeholder='".$function."'><br>
                <input type='text' name='phone' value='"
.$phone."' placeholder='".$phone."'><br>
                <input type='text' name='email' value='"
.$email."' placeholder='".$email."'><br>
                <textarea name='info' rows='25' cols='90'>"
.$info."</textarea><br>
                <input type='hidden' name='ID' value='"
.$id."' size='92' placeholder='".$id."'><br>
                <button type='submit' name='submit'>Edit profile</button><br>
            </form>
            </center>"
;
        }
else {
            if($_SESSION['ID'] == $ID) {
                    echo "<center>
                        <form action='./inc/replaceinfo.php' method='post'>
                        <input type='text' name='name' value='"
.$name."' placeholder='".$name."'><br>
                        <input type='text' name='function' value='"
.$function."' placeholder='".$function."'><br>
                        <input type='text' name='phone' value='"
.$phone."' placeholder='".$phone."'><br>
                        <input type='text' name='email' value='"
.$email."' placeholder='".$email."'><br>
                        <textarea name='info' rows='25' cols='90'>"
.$info."</textarea><br>
                        <input type='hidden' name='ID' value='"
.$id."' size='92' placeholder='".$id."'><br>
                        <button type='submit' name='submit'>Edit profile</button><br>
                    </form>
                    </center>"
;
            }
else {
                echo "<center><table><tr><td colspan='7' align='center'><h3>Not allowed</h3></td></tr></table></center>";
            }
        }

        var_dump();
?>
 
- Ariën  -
Beheerder

- Ariën -

06/06/2022 13:49:29
Quote Anchor link
Arno van Zanten op 06/06/2022 13:48:41:
var_dump() geeft geen response

Dan doe je iets fout!
En echt... lees de manual over hoe functies werken! Niet gokken en hopen dat het werkt, maar begrijpen hoe het werkt. Het klinkt bot, maar anders kan je net zo goed wat anders gaan doen dan dit.
Gewijzigd op 06/06/2022 13:50:30 door - Ariën -
 
Arno van Zanten

Arno van Zanten

06/06/2022 13:51:13
Quote Anchor link
Admin logt in, kan gewoon overal toegang hebben in de editprofile
User logt in en kan zijn eigen profile niet aanpassen terwijl hij wel dat ID heeft die in de $_SESSIE staat en in de $_GET mee komt
 
- Ariën  -
Beheerder

- Ariën -

06/06/2022 13:52:38
Quote Anchor link
- Ariën - op 06/06/2022 13:46:43:
Ik zou zeggen, ga alle variabelen eens na met var_dump() en je ziet wat de inhoud is, en je kan zo achterhalen waarom een statement niet goed uitgevoerd wordt.


Dit, en neem rustig de tijd.
 
Arno van Zanten

Arno van Zanten

06/06/2022 13:55:17
Quote Anchor link
var_dump als user : string(1) "7" NULL
var_dump als admin : string(1) "9" NULL


Toevoeging op 06/06/2022 14:00:46:

Gevonden, bedankt voor de var_dump ;)
 
- Ariën  -
Beheerder

- Ariën -

06/06/2022 14:02:06
Quote Anchor link
- Bestaat je $_GET['ID'] wel? Oftewel: heb je dit in je URL staan: ?ID=
- Wat zegt een print_r() op $_SESSION['Level'] (tussen <pre>-tags voor de leesbaarheid)
- Zorg ook voor preventie tegen SQL-injection.
 
Arno van Zanten

Arno van Zanten

06/06/2022 14:03:48
Quote Anchor link
Is al opgelost, var_dump gaf precies aan wat ik fout had gedaan, en ja het had te maken met de $_SESSION['ID']; die was nog niet aangemaakt. Maar dat is nu opgelost.
 
- Ariën  -
Beheerder

- Ariën -

06/06/2022 14:05:31
Quote Anchor link
Mooi :-)
 

Pagina: « vorige 1 2



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.