Fancybox som login

Tags:    php mysql 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:
inc/login.php
Fold kodeboks ind/udHTML kode 

admin/auth.php
Fold kodeboks ind/udPHP kode 

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?



2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Hej Kenneth.

Jeg ville nok starte med at samle det lidt sammen, hvis du gerne vil have en mere dynamisk oplevelse.

For det første ville jeg ikke bruge iframe til login, da den, netop som du siger, kun arbejder indeni sin egen frame.

Så jeg ville benytte en division (div) i stedet, den skjuler man så den kun kommer frem når den åbnes i fancybox, det er der en funktion (i fancybox) til.

I og med det er en div, arbejdes der med content i samme html dokument.

Derefter ville jeg gøre sådan at det er samme php side der tager i mod login requests. Så skal man nemlig ikke rundt på flere sider for at logge ind.

Eksmpel på index.php:
Fold kodeboks ind/udPHP kode 


Bemærk at jeg kaldte auth.php internt i stedet for at sende brugeren derhen, det kræver at vi retter i auth.php så der er en funktion vi kan kalde:

auth.php
Fold kodeboks ind/udPHP kode 


Bemærk at jeg har skrevet koden frit her i kommentar feltet (og lidt forhastet), koden er derfor ikke testet og der er risiko for syntaksfejl. Men det er den overordnede fremgangsmetode jeg ville bruge.

Håber det hjælper.

---

Nå ja!

AJAX er ikke en speciel form for JavaScript, det er nærmere en række metoder man kan bruge til at sende pakker asynkront med det der vises i browseren (Altså at det sker 'bag ved' om man vil). Det vil egentlig bare sige at man fx kunne sende loginoplysninger til din auth.php uden at behøve at genindlæse index.php.

Ajax er meget simpelt, hvis man kan javascript og w3schools.com/ajax kan anbefales.




Indlæg senest redigeret d. 19.05.2012 13:32 af Bruger #16824
SÅ fik jeg det til at virke. Har dog ikke lavet min auth.php om til en funktion endnu, men det bliver måske lavet senere. Ville lige have alt til at virke først.
Men tak for hjælpen.
Her er lige en lille tilføjelse til hvordan det kom til at virke.
Login link
Fold kodeboks ind/udHTML kode 

Alt i forbindelse med fancybox i head:
Fold kodeboks ind/udHTML kode 

Uden det sidste <script></script> ville det ikke virke.



t