Avatar billede delphiuser Mester
22. september 2006 - 22:49 Der er 5 kommentarer og
1 løsning

hjælp til online liste

Hej eksperter jeg har i mit login script lavet det sådan at den skal indsætte navn og id i en online liste. Men jeg kan ikke få det til at virke. håber i vil hjælpe mig...

her kommer mit login script....

<?php
session_start();
if(isset($_POST['submit'])) {

    mysql_connect("xxx", "xxx", "xxx");
    mysql_select_db("xxx");

    $sql = mysql_query("select id, user, pass, navn from bruger where user = '$user' AND pass = '$pass'");
    if(mysql_num_rows($sql) == 1){
        while($row = mysql_fetch_row($sql)){
           
            session_register('id');
            session_register('user');
            session_register('navn');
       
            $_SESSION['id'] = $row['id'];
            $_SESSION['user'] = $row['user'];
            $_SESSION['navn'] = $row['navn'];

            mysql_query("INSERT INTO online (navn, id) VALUES ('".$row['navn']."','".$row['id']."')");

            header("location:inc/index.php");
        }
    } else {
        header("location:index.php");
    }
}
?>

håber i kan fortælle mig og samtidig vise mig hvad jeg har gjort forkert. på forhånd tak
Avatar billede hmm10 Nybegynder
22. september 2006 - 23:24 #1
Prøv at fjern ' omkring dine varabler i values.
Avatar billede delphiuser Mester
22. september 2006 - 23:40 #2
sker stadigvæk ikke noget... den skriver ikke ind i tabellen. den opretter bare en ny liste
Avatar billede hmm10 Nybegynder
23. september 2006 - 00:40 #3
Dvs. at den indsætter korrekt, uden fejlmeddelse. Så burde det være fordi at values ikke er sat korrekt. Kunne det tænkes at $user og $pass skal sættes korrekt, via noget GET/POST og at der nu er en "tom" bruger oprettet, som snyder din mysql_num_rows() og mysql_fetch_row() og derved giver tomme værdier til din INSERT?
Avatar billede delphiuser Mester
23. september 2006 - 10:18 #4
hvordan kan jeg ændre det?
Avatar billede hmm10 Nybegynder
23. september 2006 - 12:31 #5
1) Slet alle brugere ("poster") i databasen, som hverken har et brugernavn og/eller kodeord.

2) Udskift variablerne $user med $_POST['user'] og ligeledes $pass med $_POST['pass'] - tjek om der kun er én bruger oprettet med disse samme oplysninger. Og for sikkerhedens skyld burde du md5() kryptere kodeordet (HUSK at det også skal md5()'s i databasen).

$sql = mysql_query("select id, user, pass, navn from bruger where user = '$user' AND pass = '$pass'");
  - til -
$sql = mysql_query("select `id`, `user`, `pass`, `navn` from `bruger` where `user` = '".$_POST['user']."' AND `pass` = '".md5($_POST['pass'])."' LIMIT 0,1");

3) For en god ordens skyld burde du tjekke om brugeren har indtastet brugernavnet og kodeordet.

if(isset($_POST['submit'])) {
  - til -
if(isset($_POST['submit']) && isset($_POST['user']) && isset($_POST['pass'])) {

4) Du er sikkert i udviklingsfasen og prøver dig frem stille og roligt, men du burde overveje, hvordan du fjerner den oprettede "online post" i databasen, når brugeren ikke er online mere. For det er ikke altid at en bruger er flink og trykker "LOGUD", men bare lukker browseren eller surfer videre. MEN det har du sikkert haft i dine overvejelser :)
Avatar billede delphiuser Mester
28. juli 2010 - 13:53 #6
lukker
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