Avatar billede djicep Nybegynder
23. november 2006 - 23:53 Der er 20 kommentarer og
1 løsning

Hmm login virker ikke som det skal :S

Hejsa eksperter.

Jeg har siddet arbejdet på en side hvor man når man logger ind skal ryge hen til en anden side.
Meeen det virker ikke helt som det skal og kan ikke rigtigt forstå hvorfor.. Det er som om den ikke rigtigt sender nået afsted til min Database eller nået som helst....

Altså min function ser sådan her ud. :

    function loginUser($nick, $pass)
    {
        $nick = addslashes($nick);
        $pass = addslashes($pass);
       
        $ip = $_SERVER[REMOTE_ADDR];
       
        $bRes = mysql_query("SELECT ip, bantime FROM blabla WHERE ip='".$ip."'");
       
        if( mysql_num_rows($bRes) == 1 )
        {
            $bRes = mysql_fetch_array($bRes);
            $nu = time();
            $tLeft = $bRes[bantime]-$nu;
            header("Location: fejl.php?str=Du er bannet!<br>Tid tilbage: ".dTime($tLeft));
            exit;
        }
       
        $res = mysql_query("SELECT userNick, userId FROM blabla WHERE userNick='".$nick."' AND userPass='".$pass."'");
       
        if( mysql_num_rows($res) )
        {
            $uRow = mysql_fetch_array($res);
           
            $bRes = mysql_query("SELECT userId, bantime FROM blabla WHERE userId='".$uRow[userId]."'");
       
            if( mysql_num_rows($bRes) == 1 )
            {
                $bRes = mysql_fetch_array($bRes);
                $nu = time();
                $tLeft = $bRes[bantime]-$nu;
                header("Location: fejl.php?str=Du er bannet!<br>Tid tilbage: ".dTime($tLeft));
                exit;
            }
           
            mysql_query("UPDATE blabla SET lastLogin='".time()."' WHERE userId=".$uRow[userId]."") or die(mysql_error());
           
            $_SESSION[nick] = $uRow[userNick];
            $_SESSION[userId] = $uRow[userId];
           
            header("Location: login.php");   
        }
               
        else
        {
            header("Location: fejl.php?str=Forkert login!");
        }
    }

Og så den der hedder login.php:

<?
    include("func.php");
   
    if( isset($_POST[nick]) && isset($_POST[pass]) )
    {
        if( $_POST[aLogin] == "ON" )
        {
            setcookie("lamNick",$_POST['nick'],time()+840000000);
            setcookie("lamPass",$_POST['pass'],time()+840000000);   
        }
       
        else
        {
            setcookie("lamNick", "");
            setcookie("lamPass", "");   
        }
       
        loginUser($_POST[nick], $_POST[pass]);   
    }
   
    else
    {
        header("Location: index.php");   
    }
?>

Ved ikke lige hvorfor den ikke rigtigt sender nået til databasen og sådan, Hvis der skal bruges mere må i lige sige til, ved ikke om jeg har overset nået.

På forhånd mange tak. :)
Avatar billede mcardle Nybegynder
24. november 2006 - 03:20 #1
$ip = $_SERVER[REMOTE_ADDR];

Skal være:

$ip = $_SERVER["REMOTE_ADDR"];
Avatar billede mcardle Nybegynder
24. november 2006 - 03:21 #2
Og:
$bRes = mysql_query("SELECT ip, bantime FROM blabla WHERE ip='".$ip."'");

skal være:

$bRes = mysql_query("SELECT ip, bantime FROM blabla WHERE ip='$ip.'");
Avatar billede djicep Nybegynder
24. november 2006 - 10:58 #3
Hmm skulle det gå ind og gøre sådan at information bliver sendt til databasen ?? :S

Forstår jeg ikke helt.

Har 2 sessioner som lastLogin og lastAction og derskulle den gerne smide nået tid ind i databasen så man kan se man logger ind :S Men det gør den ikke.
Avatar billede djicep Nybegynder
24. november 2006 - 11:39 #4
Min func.php starter med det her.

if( isset($_SESSION[userId]) )
        mysql_query("UPDATE blabla SET lastAction='".time()."' WHERE userId=".$_SESSION[userId]."");

Bare lige hvis i manglede at se den her :)
Avatar billede kinderaeg Nybegynder
24. november 2006 - 11:48 #5
Time er antallet af sekunder siden unix-epoch, du skal konvertere det om til formatet 'Y-m-d h:i:s':

mysql_query("UPDATE blabla SET lastAction='".date('Y-m-d h:i:s')."' WHERE userId=".$_SESSION[userId]."");
Avatar billede djicep Nybegynder
24. november 2006 - 11:57 #6
hmm nu har jeg sat det ind, men den sender stadig ikke informationen afsted til databasen. der sker ingen ting i de 2 altså som lastAction og lastLogin :S
Avatar billede kinderaeg Nybegynder
24. november 2006 - 12:15 #7
Igen, udskriv din sql, og tjek den direkte op imod din database, eller, som sagt før, sæt en "or die(mysql_error())" på.
Avatar billede kinderaeg Nybegynder
24. november 2006 - 12:17 #8
Og så skal jeg lige være sikker på, at det felt du prøver at sætte noget ind i, også er et datetime eller timestamp-felt?!?
Og jeg antager naturligvis, at du har startet din session?!?
Avatar billede djicep Nybegynder
24. november 2006 - 13:50 #9
Ja Sessionen bliver startet i det dokument hvor db oplysningerne findes..
Avatar billede djicep Nybegynder
24. november 2006 - 13:53 #10
Det jeg synes er det mærkelige er at jeg har en side hvor jeg bruger de samme ting.. og der virker det. der skal jeg bare ikke ha den til at heade mig til en ny side. Der skal den bare gøre nået ved en menu... Har du en msn adresse hvis du vil se ?? lidt nemmere at få hjælp over det hvis det var ?? :)
Avatar billede kinderaeg Nybegynder
24. november 2006 - 13:59 #11
Hvad skriver den på siden, hvis du sætter:

die("UPDATE blabla SET lastAction='".date('Y-m-d h:i:s')."' WHERE userId=".$_SESSION[userId]);

ind lige før din update?
Avatar billede djicep Nybegynder
24. november 2006 - 14:47 #12
istedet for mysql_query ?
Avatar billede djicep Nybegynder
24. november 2006 - 14:48 #13
Oki nu har jeg sat die foran og der sker ikke en skid :S Den opdatere bare lige lyder det til ?
Avatar billede kinderaeg Nybegynder
25. november 2006 - 01:27 #14
Sæt:

die("UPDATE blabla SET lastAction='".date('Y-m-d h:i:s')."' WHERE userId=".$_SESSION[userId]);

så det kommer til at se sådan ud:

if( isset($_SESSION[userId]) )
  die("UPDATE blabla SET lastAction='".date('Y-m-d h:i:s')."' WHERE userId=".$_SESSION[userId]);
  mysql_query("UPDATE blabla SET lastAction='".time()."' WHERE userId=".$_SESSION[userId]."");

Så skulle eksekveringen af dit script gerne stoppe, og din sql bliver udskrevet på skærmen. Den sql ser du så på, og hvis du ikke kan se nogen fejl, så poster du den her, eller forsøger at køre den direkte i databasen, og ser om du får fejl der.
Avatar billede kinderaeg Nybegynder
25. november 2006 - 01:28 #15
Jeg går selvfølgelig ud fra, at du har fulgt mcardle's råd, ellers er det jo klart at du ikke kommer videre ;)
Avatar billede djicep Nybegynder
25. november 2006 - 01:31 #16
Hehe nej da :S vidste ikke det havde nået at sige
Avatar billede djicep Nybegynder
25. november 2006 - 01:35 #17
Oki nu har jeg gjort som du har sagt og der sker ABSOLUT INTET :( Har rettet det som mcardles sagde og har sat den ind i min func :S Den opdatere bare :S
Avatar billede djicep Nybegynder
25. november 2006 - 01:51 #18
oki nu har jeg da i det mindste fået den til at gøre nået men nu får jeg så bare fejl plus en header fejl :S Så så langt så godt :)
Avatar billede djicep Nybegynder
25. november 2006 - 01:55 #19
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\programmer\apache group\Apache\htdocs\blabla\func.php on line 210

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\programmer\apache group\Apache\htdocs\blabla\func.php on line 221

Warning: Cannot modify header information - headers already sent by (output started at c:\programmer\apache group\Apache\htdocs\blabla\func.php:210) in c:\programmer\apache group\Apache\htdocs\blabla\func.php on line 246

Det er de fejl den giver nu ?? :S
Avatar billede djicep Nybegynder
25. november 2006 - 02:12 #20
Heeeeeey :) Så fandt han ud af det :P lidt dooh alligevel, men nu virker det hehe :)
Avatar billede djicep Nybegynder
25. november 2006 - 03:17 #21
huhu jeg er lidt go men også kun lidt "NOOOOOOOT" :(
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen

Capgemini Danmark A/S

AI Data Architect

Rambøll Management Consulting

Senior AI Engineer

Digitaliseringsstyrelsen

IT-arkitekt hos Digitaliseringsstyrelsen