Avatar billede sonic_86 Nybegynder
14. april 2003 - 23:20 Der er 18 kommentarer og
1 løsning

Er der nogle fejl i mit bruger system?

Hej
Jeg er i gang med at lave et bruger system men jeg ved ikke om der er nogle fejl, nogle der gider at tjeke det for fejl?

<?php
include("config.php");
session_start();

if(!isset($_POST['Submit'])) {
    echo 'Du skal logge ind <a href="login.php">her</a>';
} else {
    $post_nick = $_POST['nick'];
    $post_password = $_POST['password'];
   
    $resultat=mysql_query("SELECT id FROM brugere WHERE nick = '$post_nick' AND password=MD5('$post_password')");
    $number=mysql_num_rows($resultat);
    if($number == 1) {
    mysql_query("UPDATE brugere SET online = 1 WHERE nick = '$post_nick'") or die ("Fejl X: ".mysql_error());
    $_SESSION['logget_ind'] = 1;
    $_SESSION['nick'] = $post_nick;
    $_SESSION['passwod'] = $post_password;
    echo 'Du er nu logget ind :)<br>klik <a href="index.php"<her</a> for at komme til index';
    } else {
        echo 'De indtastede oplysninger er ikke korrekte<br>klik <a href="login.php">her</a> for at prøve igen';
    }
}
?>
Avatar billede tipsen Nybegynder
14. april 2003 - 23:25 #1
Har nogle småændringer - spørg, hvis du ikke er med:

<?php
include("config.php");

if(!isset($_POST['Submit'])) {
    echo 'Du skal logge ind <a href="login.php">her</a>';
} else {
    $post_nick = addslashes($_POST['nick']);
    $post_password = addslashes($_POST['password']);

    $resultat=mysql_query("SELECT id FROM brugere WHERE nick = '$post_nick' AND password=MD5($post_password)");
    $number=mysql_num_rows($resultat);
    if($number == 1) {
        mysql_query("UPDATE brugere SET online = 1 WHERE nick = '$post_nick'") or die('Fejl: '.mysql_error());
        session_start();
        $_SESSION['logget_ind'] = 1;
        $_SESSION['nick'] = $post_nick;
        $_SESSION['password'] = $post_password;
        echo 'Du er nu logget ind :)<br>klik <a href="index.php"<her</a> for at komme til index';
    } else {
        echo 'De indtastede oplysninger er ikke korrekte<br>klik <a href="login.php">her</a> for at prøve igen';
    }
}
?>
Avatar billede sonic_86 Nybegynder
14. april 2003 - 23:27 #2
Hvad gør addslashes?
Avatar billede tipsen Nybegynder
14. april 2003 - 23:32 #3
Den gør tekststrengen "mysql-venlig" - dvs. den escaper alle de tegn der har potentiale til at kunne smadre sql-forespørgslen!

Se: http://dk.php.net/manual/en/function.addslashes.php
Avatar billede sonic_86 Nybegynder
14. april 2003 - 23:35 #4
Hmm den skriver denne fejl:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in login-ok.php on line 11
De indtastede oplysninger er ikke korrekte
klik her for at prøve igen
Avatar billede tipsen Nybegynder
14. april 2003 - 23:57 #5
er det muligt at md5() skal have input i '' !?
Avatar billede sonic_86 Nybegynder
14. april 2003 - 23:58 #6
Hmm kan ikke få det til at virke :(
Avatar billede tipsen Nybegynder
15. april 2003 - 00:03 #7
Så bare gå tilbage til basis - skal ikke lige kunne sige, hvad der forårsager fejlen...
Avatar billede sonic_86 Nybegynder
15. april 2003 - 00:04 #8
k
Kan du se andre fejler?
Avatar billede tipsen Nybegynder
15. april 2003 - 00:20 #9
Jeg rettede jo flere forskellige steder - prøv at sammenligne med originalen.
Avatar billede sonic_86 Nybegynder
15. april 2003 - 00:26 #10
Din kode dur jeg rettet bare:

password=MD5($post_password)
til
password=MD5('$post_password')
Avatar billede tipsen Nybegynder
15. april 2003 - 00:40 #11
Det var da også det jeg foreslog; "er det muligt at md5() skal have input i '' !?"
Avatar billede tipsen Nybegynder
15. april 2003 - 00:41 #12
Nå - anyway - din kode er meget pæn og hvis du sørger for at koden på de beskyttede sider er lige så pæn, burde du ikke få problemer, så vidt jeg kan se.
Avatar billede sonic_86 Nybegynder
15. april 2003 - 00:44 #13
Sådan ser koden ud til de beskyttede sider:

<?php
session_start();
if(!$_SESSION['logget_ind'] == 1) {
header("Location: login.php");
exit;
}
//Og så alt min kode..
?>
Avatar billede tipsen Nybegynder
15. april 2003 - 00:48 #14
det er fint.
Avatar billede sonic_86 Nybegynder
15. april 2003 - 00:51 #15
Og sikkert nok?
Avatar billede tipsen Nybegynder
15. april 2003 - 01:32 #16
Til det meste brug er det sikkert nok - en script-kiddie vil ikke lige kunne bryde igennem det!
Avatar billede sonic_86 Nybegynder
17. april 2003 - 17:48 #17
Ok tak for hjælpen vil du havde pointsne?
Avatar billede sonic_86 Nybegynder
18. april 2003 - 22:24 #18
Når beholder pointsne, tak for hjælpen tipsen!
Avatar billede tipsen Nybegynder
23. april 2003 - 01:48 #19
[lige kommet hjem fra påskeferie]: det var så lidt!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester