Forum » Server-Side scripting » Goed gebruik
Hardstyle
Berichten: 225
avatar
Offline Stuur privebericht
Hallo,

Ik begin nu aan een berichten systeem, dus met berichten versturen enzovoorts.
Ik wil alles goed beveiligen, is addslashes & stripslashes genoeg bij de inputs & outputs?

Hier het script tot nu toe.
Jullie mogen beoordelen.

Script ik zo overzichtelijk, is de manier die ik gebruik met de if/elseif/else goed zo?

newmsg.php
Code | Selecteer Alles
minimaliseren
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
if(!isset($_POST['submit'])
{
    
// hier het formulier
}
else
{
    
$sql mysql_query("SELECT nickname
                        FROM members
                        WHERE nickname = '" 
mysql_real_escape_string($_POST['to']) . "'");
                        
    if(empty(
$_POST['to'])
    {
        echo(
"Je bent vergeten in te vullen naar wie je het bericht wilt versturen.");
    }
    elseif(empty(
$_POST['msg'])
    {
        echo(
"Je moet wel een bericht versturen.");
    }
    elseif(
$_POST['to'] == $data['nickname'])
    {
        echo(
"Je kan geen bericht naar jezelf verzenden.");
    }
    else
    {
        if(
mysql_num_rows($sql) == 0)
        {
            echo(
"Deze persoon bestaat niet.");
        }
        else
        {
            echo(
"Je bericht is verzonden.");

            
mysql_query("INSERT INTO
                         message_logs
                         (date,
                         info)
                         VALUES
                         ('" 
time() . "',
                         '" 
strtolower($res['nickname']) . " send a message to " strtolower($_POST['to']) . "'
                         )"
);

            
mysql_query("INSERT INTO
                         message
                         (date,
                         from
                         to,
                         subject,
                         msg,
                         removed,
                         read)
                         VALUES
                         ('" 
time() . "',
                         '" 
strtolower($data['nickname']) . "',
                         '" 
strtolower($_POST['to']) . "',
                         '" 
addslashes($_POST['subject']) . "',
                         '" 
addslashes($_POST['msg']) . "',
                         'no',
                         'no'
                         )"
);
        }
    }
}




Edit:
$data haalt de gegevens over de ingelogde gebruiker uit de database
Laatst gewijzigd door Jackie op 2010-12-10 11:44:13
10-12-2010 11:35
Dit topic is 207 keer bekeken door 33 verschillende leden
Reacties op: "Goed gebruik"
1
Joeybouwen.nl
Berichten: 968
avatar
Offline Stuur privébericht
Ik vind de qeury niet overzichtelijk.
10-12-2010 17:20
<?/ $me=Android ?>
Berichten: 1713
avatar
Offline Stuur privébericht
Quote: Jbouwen

Ik vind de qeury niet overzichtelijk.


Dan heb jij geen ervaring. Dit is juist netjes!

htmlspecialchars
mysql_fetch_assoc

al geprobeerd ?
10-12-2010 18:30
Hardstyle
Berichten: 225
avatar
Offline Stuur privébericht
@Jbouwen
Ik probeer de query zo overzichtelijk mogelijk te maken, wat vind je er niet goed aan dan?

@Maviose
Dankjewel, ik maak tuurlijk gebruik van die functies.

Ik gebruik altijd stripslashes om iets de outputten!!!!

Dit is mijn login pagina.

login.php
Code | Selecteer Alles
minimaliseren
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
// copyright: Youri van Mill
// date:      10-12-2010

if(!isset($_POST['submit'])) 
{
    echo(
"<form method=\"post\" action=\"\">
    <table>
    <tr>
        <td>Gebruikersnaam:</td>
        <td><input type=\"text\" name=\"nickname\" /></td>
    </tr>
    <tr>
        <td>Wachtwoord:</td>
        <td><input type=\"password\" name=\"password\" /></td>
    </tr>
    <tr>
        <td colspan=\"2\"><input type=\"submit\" name=\"submit\" value=\"Login\" /></td>
    </tr>
    </table>
</form>"
);
}
else
{
    
$sql mysql_query("SELECT *
                        FROM members 
                        WHERE nickname = '" 
mysql_real_escape_string($_POST['nickname']) . "'");

    if(empty(
$_POST['nickname']))
    { 
        echo(
"Je bent vergeten een gebruikersnaam in te vullen."); 
    } 
    elseif(empty(
$_POST['password']))
    { 
        echo(
"Je hebt geen wachtwoord ingevult."); 
    }
    else
    {
        if(
mysql_num_rows($sql) == 0)
        { 
            echo(
"Deze persoon bestaat niet."); 
        } 
        else
        {
            
$res mysql_fetch_assoc($sql);
                    
            if(
md5($_POST['password']) != $res['password'])
            {
                echo(
"Je wachtwoord komt niet overeen met het wachtwoord die past bij de gebruikersnaam.");
            }
            else
            {
                
$_SESSION['nickname'] = strtolower($_POST['nickname']);

                
mysql_query("INSERT INTO 
                             member_logs 
                             (date, 
                             info) 
                             VALUES
                             ('" 
time() . "',
                             '" 
$_SESSION['nickname'] . " logged in.')"); 
                             
                
mysql_query("UPDATE
                             members
                             SET onlinedate = '" 
time() . "'
                             WHERE nickname = '" 
$_SESSION['nickname'] . "'");

                
header("location: /index.php");
            }
        }
    }
}
10-12-2010 18:59
Reageer op: "Goed gebruik"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden