Avatar billede KHHP Juniormester
18. maj 2012 - 21:22 Der er 5 kommentarer og
1 løsning

Fancybox

Hej
Jeg er igang med at lave et stor mængde ændringer på en gaming community og i den forbindelse vil jeg gerne slippe for at man skal hoppe ind i en fil hvor man skriver brugernavn og password, så sendes man videre til en fil der logger brugeren på, hvis dennes data findes i databasen. Til sidst sendes man til forsiden og der skrives LOGIN_SUCCESS i adresselinjen.
Jeg har før forsøgt mig med at lave login via fancybox, hvor jeg har brugt den funktion der åbner linket i en iframe, og man bliver skam også logget ind, problemet er bare at bruger får vist forsiden i det lille fancybox vindue og så selv skal lukke ned og reloade siden.
Lige nu laver jeg login således: http://pastebin.com/FKFvRtsz
Login-script: http://pastebin.com/JJebYCwP
Lige nu sendes de alle mulige steder hen. Hvis man kunne lave det inden i fancybox, og så når login er udført, automatisk lukke fancybox igen derefter reloade den side de var på.
Har hørt noget omkring noget der hedder AJAX, som skulle være en eller anden speicel form for javascript, men har aldrig rigtig stiftet bekendskab med det.
Hvordan laver jeg bedst det login, så det virker ordentligt?
Avatar billede keysersoze Guru
18. maj 2012 - 23:43 #1
http://api.jquery.com/jQuery.ajax/

Men ellers burde du vha din nuværende iframe og javascript kunne redirecte på parent så det er hele siden der virker.
Avatar billede KHHP Juniormester
19. maj 2012 - 09:41 #2
Jo, og hvordan skulle et sådant script se ud?
Avatar billede keysersoze Guru
19. maj 2012 - 09:55 #3
parent.location.href = 'dinside.html';
Avatar billede KHHP Juniormester
19. maj 2012 - 12:00 #4
Så det skal jeg placere i mit login-script, så det ser således ud:
  if ($info = mysql_fetch_array($data))
  {
    //Hvis brugeren findes bliver de logget ind
    $_SESSION['loggedin'] = 1;
    $_SESSION['username'] = $info['username'];
   
    //gem brugerens gruppe
    $_SESSION['usergroup'] = $info['usergroup'];


    //redirect til index uden fejl
    echo '<script type="text/javascript"> parent.location.href="index.php";</script>';
  }
  else
  {
    //Redirect til index med fejl besked.
    $error = 'LOGIN_FAILED_NO_MATCH_FOUND';
    echo $error;
  }<
Avatar billede KHHP Juniormester
19. maj 2012 - 22:28 #5
Fandt ud af det. Det kunne gøres uden brug af javascript. Skulle bare bruge inline funktionen i fancybox, og så tilføje min login form i en div med style=display:none
Har testet din løsning, og det virker også, så du har jo løst mit problem, at jeg så vælger at gøre noget andet, kan jo ikke være dit problem, så hvis du lige vil være så venlig at smide svar.
Avatar billede keysersoze Guru
20. maj 2012 - 19:41 #6
Som nævnt i #1 vil der være flere måder at løse problematikken på - javascript-redirect var bare den letteste hvis resten af dit script fungerede. den optimale ville nok være AJAX da du så slap for at opdatere hele siden - men så længe du har fundet en løsning er det det primære.
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