Avatar billede chris0905 Nybegynder
29. februar 2012 - 14:17 Der er 20 kommentarer og
1 løsning

Udvid loginbox automatisk

Hej Eksperter.

Jeg har en side, hvor man kan logge ind via en box, der åbnes når man trykker på en knap via JavaScript.

Jeg vil gerne have, at når man har forsøgt at logge ind med et forkert login, så skal man komme ind på siden, og så skal loginboxen være åben.

Boxen bliver åbnet på følgende måde:

<script type="text/javascript">
        $(document).ready(function() {

            $(".signin").click(function(e) {
                e.preventDefault();
                $("fieldset#signin_menu").toggle();
                $(".signin").toggleClass("menu-open");
            });

            $("fieldset#signin_menu").mouseup(function() {
                return false
            });
            $(document).mouseup(function(e) {
                if($(e.target).parent("a.signin").length==0) {
                    $(".signin").removeClass("menu-open");
                    $("fieldset#signin_menu").hide();
                }
            });           

        });
</script>


Håber i kan hjælpe mig med det.

På forhånd tak!

Hilsen
Christoffer

P.s. det skal nok siges, at jeg er absolut ikke inde i javascript.
Avatar billede olebole Juniormester
29. februar 2012 - 17:28 #1
<ole>

"Jeg vil gerne have, at når man har forsøgt at logge ind med et forkert login" >> Hvordan ved siden, det er tilfældet? Der skal reageres på et eller andet - men hvad?

/mvh
</bole>
Avatar billede chris0905 Nybegynder
01. marts 2012 - 21:03 #2
jeg har en php-if sætning... den skaber også en §_SESSION .. Håber det er info nok, ellers sig til...
Avatar billede olebole Juniormester
01. marts 2012 - 21:14 #3
Så kan du vel lade PHP sætte en passende klasse på de(t) element(er), som skal være åbne
Avatar billede chris0905 Nybegynder
07. marts 2012 - 21:56 #4
der må jeg nok have en forklaring... ;)
Avatar billede olebole Juniormester
07. marts 2012 - 22:12 #5
Jeg kan ikke have nogen viden om, hvordan det skal gøres. Det kan kun du
Avatar billede mireigi Novice
09. marts 2012 - 00:57 #6
Det som Ole mener er, at HTML er ren tekst, som sendes fra serveren til klienten. Med PHP kan du lave indhold som henter indhold fra en database eller genererer indhold ud fra bestemte parametre.

Nu kender jeg ikke noget til PHP, men kan give dig en ASP syntax, som du sikkert kan skrive om:

<%
  strLoginClassName = "LoginBox"
  If blnLoginError = True Then
      strLoginClassName = strLoginClassName & " Open"
  Else
      strLoginClassName = strLoginClassName & " Closed"
  End If
%>

<div class="<% = strLoginClassName %>">
Bruger: <input name="username" type="text" /><br />
Kode:  <input name="password" type="password" />
</div>
Avatar billede chris0905 Nybegynder
09. marts 2012 - 16:17 #7
Hej! jeg kan ikke helt få sat den sammen...

kan i hjælpe mig, hvis jeg lægger koden her:

<?
//DB connect mv.
//if login-sætning... {

//set nogle session_variabler
}else{
$message = "Forkert brugernavn eller password!";
}
?>

<div id="topnav" class="topnav"><a href="login" class="signin"><span>LOGIN</span></a> </div>

  <fieldset id="signin_menu">
    <!-- <? include('loginForm.php'); ?> -->
    <form method=POST id="signin" action="#">
        <? echo $message; ?>
      <label for="username">Username</label>
      <input id="user" name="user" value="" title="username" tabindex="4" type="text">
      </p>
      <p>
        <label for="password">Password</label>
        <input id="pass" name="pass" value="" title="password" tabindex="5" type="password">
      </p>
      <p class="remember">
        <input id="signin_submit" value="Sign in" tabindex="6" type="submit" name=submit>
        <input id="rememberMe" name="rememberMe" value="1" tabindex="7" type="checkbox">
        <label for="rememberMe">Remember me</label>
      </p>
      <!--
      <p class="forgot"> <a href="#" id="resend_password_link">Forgot your password?</a> </p>
      <p class="forgot-username"> <A id=forgot_username_link
title="If you remember your password, try logging in with your email"
href="#">Forgot your username?</A> </p>
-->
    </form>
  </fieldset>

<script src="http://aext.net/example/twitterlogin/javascripts/jquery.js" type="text/javascript"></script>
<script type="text/javascript">
        $(document).ready(function() {

            $(".signin").click(function(e) {
                e.preventDefault();
                $("fieldset#signin_menu").toggle();
                $(".signin").toggleClass("menu-open");
            });

            $("fieldset#signin_menu").mouseup(function() {
                return false
            });
            $(document).mouseup(function(e) {
                if($(e.target).parent("a.signin").length==0) {
                    $(".signin").removeClass("menu-open");
                    $("fieldset#signin_menu").hide();
                }
            });           

        });
</script>
<script src="http://aext.net/example/twitterlogin/javascripts/jquery.tipsy.js" type="text/javascript"></script>
<script type='text/javascript'>
  $(function() {
  $('#forgot_username_link').tipsy({gravity: 'w'});
  });
</script>


Jeg håber virkelig, at I kan og vil hjælpe mig her, for jeg er virkelig på bar bund... ;)
Avatar billede olebole Juniormester
09. marts 2012 - 17:11 #8
Ikke uden det, du ikke viser her:

//if login-sætning... {

//set nogle session_variabler
}
Avatar billede olebole Juniormester
09. marts 2012 - 17:12 #9
Uden det kan jeg jo ikke sætte noget specielt nede i HTML'en, når brugerens login fejler  =)
Avatar billede olebole Juniormester
09. marts 2012 - 17:18 #10
Hvilket element skal have hvilken klasse for at blive vist som ønsket?
Avatar billede chris0905 Nybegynder
09. marts 2012 - 21:36 #11
Det er det "fieldset" med id'en "signin_menu", som skal være åben, når login fejler...

koden i if afsnittet:

if(mysql_num_rows($query) == 1) {
        setcookie('---',$_POST['------']);
        $data = mysql_fetch_assoc($query);
        session_register('---');
        $_SESSION['-'] = $data['-'];
        $_SESSION['-'] = $data['-'];
        $_SESSION['-'] = $data['-'];
        $_SESSION['-'] = $data['-'];
       
        $now = date("Y-m-d H:i:s");
       
        $query = mysql_query("UPDATE ---- SET --- = '$now' WHERE -- = '{$_SESSION['--']}'")or die(mysql_error());
       
}else{
        $message = "Forkert brugernavn eller password!";
}
Avatar billede olebole Juniormester
10. marts 2012 - 14:24 #12
Så kunne løsningen være:

if(mysql_num_rows($query) == 1) {
        setcookie('---',$_POST['------']);
        $data = mysql_fetch_assoc($query);
        session_register('---');
        $_SESSION['-'] = $data['-'];
        $_SESSION['-'] = $data['-'];
        $_SESSION['-'] = $data['-'];
        $_SESSION['-'] = $data['-'];
       
        $now = date("Y-m-d H:i:s");
       
        $query = mysql_query("UPDATE ---- SET --- = '$now' WHERE -- = '{$_SESSION['--']}'")or die(mysql_error());
        $loggedin = true;
}else{
        $message = "Forkert brugernavn eller password!";
        $loggedin = false;
}

- og:

<fieldset id="signin_menu"<?php echo $loggedin?'':' class="menu-open"' ?>>
Avatar billede chris0905 Nybegynder
10. marts 2012 - 17:44 #13
jeg kan ikke få det til at virke... :( Siden er fuldstændig uændret...
Avatar billede olebole Juniormester
10. marts 2012 - 18:07 #14
Det kan jeg ikke tro. Kik i kildekoden og kopier koden til dit fieldset, når login lykkes, og når det ikke gør. Så bør det resultere i henholdsvis:

<fieldset id="signin_menu">

- og:

<fieldset id="signin_menu" class="menu-open">

Som jeg har forstået dig, er det sådan, det skal være. Ellers må du fortælle mig noget andet
Avatar billede chris0905 Nybegynder
10. marts 2012 - 18:24 #15
Det er også sådan, men det virker ikke... min loginbox er ikke udvidet, når den "genindlæser" siden... jeg kan sende dig et link som besked, hvis du vil.
Avatar billede olebole Juniormester
10. marts 2012 - 19:42 #16
Ja, gør det - og lav et midlertidigt login, jeg kan teste med  =)
Avatar billede olebole Juniormester
10. marts 2012 - 19:57 #17
Prøv:

<fieldset id="signin_menu" style="display:<?php echo $loggedin?'none':'block' ?>">
Avatar billede chris0905 Nybegynder
11. marts 2012 - 11:41 #18
nu virker den... jeg måtte dog lige sætte $loggedin også udenfor if-login-sætningen, så den automatisk var lukket, hvis der ikke var forsøgt login.

Nu fik jeg så bare det problem, at min knap ikke ændre farve til "åben-farve"... Altså når man logger in med forkert login, så er login-knappen en anden farve end boksen... Kan du hjælpe med det?
Avatar billede olebole Juniormester
11. marts 2012 - 16:03 #19
Det må du kunne fikse efter samme model
Avatar billede chris0905 Nybegynder
01. april 2012 - 19:31 #20
Du har jo svaret på spørgsmålet, men husker jeg rigtigt at du ikke samler point? Eller så smid meget gerne et svar! ;)
Tak for hjælpen!
Avatar billede olebole Juniormester
01. april 2012 - 19:51 #21
Selvtak - og ellers tak. Du napper dem bare selv  *o)
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