Avatar billede keth123456 Nybegynder
18. september 2005 - 16:05 Der er 11 kommentarer

login system, virker ikke.

Jeg har et login system , jeg har dog ikke selv lavet det. fundet de fra en bog, men det virker ikke.
Den kan ikke oprette en bruger:s
og er der sikkerhed i dette script?
bruger.php :
<?
class Bruger{
    var $brugernavn, $kodeord;
   
    function bruger(){
        if(isset($_SESSION["brugernavn"]) && isset ($_SESSION["kodeord"]))
        $this->log_ind($_SESSION["brugernavn"], $_SESSION["kodeord"]);
       
}

    function log_ind($brugernavn, $kodeord){
        $bruger_slash = addslashes($brugernavn);
        $kode_slash = addslashes($kodeord);
        $foresp = mysql_query("SELECT * FROM bruger WHERE brugernavn = '$bruger_slash' AND kodeord = '$kode_slash'");
    if(mysql_num_rows($foresp) == 1){
        $this->brugernavn = $brugernavn;
        $this->kodeord = $kodeord;
        $_SESSION["brugernavn"] = $this->brugernavn;
        $_SESSION["kodeord"] = $this->kodeord;
        return true;
    } else {
        $this->log_ud();
        return false;
    }
}

function log_ud(){
    if($this->logget_ind()){
        unset($this->brugernavn);
        unset($_SESSION["brugernavn"]);
        unset($this->kodeord);
        unset($_SESSION["kodeord"]);
        return true;
    } else {
        return false;
    }
}

function logget_ind(){
    if(isset($this->brugernavn) && isset($this->kodeord))
        return true;
    else
        return false;
   
}

function opret($brugernavn, $kodeord){
    $bruger_slash = addslashes($brugernavn);
    $kode_slash = addslashes($kodeord);
    $foresp = mysql_query("SELECT * FROM bruger WHERE brugernavn = '$bruger_slash'");
    if(mysql_num_rows($foresp) != 0)
        return false;
    else {
        mysql_query("INSET INTO bruger ".
        "(brugernavn, kodeord)".
        "VALUES ('$bruger_slash', ".
        "$kode_slash')");
        return true;
    }
}

function fjern($brugernavn){
    $bruger_slash = addslashes($brugernavn);
    $foresp = mysql_query("SELECT * FROM bruger WHERE brugernavn = '$bruger_slash'");
    if(mysql_num_rows($foresp) != 1)
        return false;
    else {
        mysql_query("DELETE FROM bruger ".
        "WHERE brugernavn = '$bruger_slash");
        return true;
    }
}

function hent_brugernavn(){
    if($this->logget_ind())
        return $this->brugernavn;
    else
        return "";
}

function hent_kodeord(){
    if($this->logget_ind())
        return $this->kodeord;
    else
        return "";
}

function ret_kodeord($kodeord){
    if($this->logget_ind()){
        $bruger_slash = addslashes($this->brugernavn);
        $kode_slash = addslashes($this->kodeord);
        mysql_query("UPDATE bruger SET kodeord = '$kode_slash' HERE brugernavn = '".$bruger_slash."'");
        $this->kodeord = $kodeord;
        $_SESSION["kodeord"] = $kodeord;
        return true;
    } else
        return false;
    }
}

opret.php:

<?
session_start();

include "connect.php";
include "bruger.php";
?>
<html>
<body>
<?
$bruger = new bruger();

if(isset($_POST["brugernavn"]) && isset($_POST["kodeord"])){
    if(get_magic_quotes_gpc()){
        $brugernavn = stripslashes($_POST[brugernavn]);
        $kodeord = stripslashes($_POST[kodeord]);
    } else {
        $brugernavn = $_POST["brugernavn"];
        $kodeord = $_POST["kodeord"];
    }
    $bruger->opret($brugernavn, $kodeord);
        echo "Brugeren " . $brugernavn . " er nu oprettet<br>";
        echo "Klik <a href='logind.php'>her</a> for at logge ind.";
    } else {
        echo "<form method='post' action='opret.php'<br>\n";
        echo "brugernavn: <input name=brugernavn type='text'><br>\n";
        echo "kodeord: <input name=kodeord type='password'><br>\n";
        echo "<input type=submit value=\"Opret\">";
        echo "</form><br>\n";
}
?>
</body>
</html>
Avatar billede horsmark Nybegynder
18. september 2005 - 16:47 #1
prøv at sætte en mysql error op.

$foresp = mysql_query("SELECT * FROM bruger WHERE brugernavn = '$bruger_slash' AND kodeord = '$kode_slash'") or die(mysql_error());
Avatar billede keth123456 Nybegynder
18. september 2005 - 16:48 #2
hvor vil du have at jeg skal sætte den ind?
Avatar billede keth123456 Nybegynder
18. september 2005 - 16:51 #3
Der er en fejl:
You have an error in your SQL syntax near 'INSET INTO bruger (brugernavn, kodeord) VALUES ('hej', 123')' at line 1.
Avatar billede jaw Nybegynder
18. september 2005 - 16:53 #4
Det hedder "INSERT"
Avatar billede jgivoni Nybegynder
18. september 2005 - 16:54 #5
Tja, det hedder INSERT, ikke INSET ;-)
Avatar billede horsmark Nybegynder
18. september 2005 - 16:54 #6
fordi der skal stå INSERT INTO ;-) med R
Avatar billede keth123456 Nybegynder
18. september 2005 - 16:59 #7
jep, det fandt jeg ud af :P
men er systemet sikkert ?
Avatar billede keth123456 Nybegynder
18. september 2005 - 17:00 #8
eller skal koden md5 krypteres?
Avatar billede horsmark Nybegynder
18. september 2005 - 17:03 #9
god idé ellers kan alle blot kigge i basen og logge ind :-)
Avatar billede horsmark Nybegynder
18. september 2005 - 17:04 #10
"alle" skrevet som dem der kan tilgå basen
Avatar billede keth123456 Nybegynder
18. september 2005 - 17:05 #11
ok :)
men jeg fandt lige et andet problem jeg vil se om jeg kan rette først:D
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