Avatar billede Lucky_Mik Nybegynder
25. oktober 2009 - 19:42 Der er 18 kommentarer og
1 løsning

link i mail til underside

Hej

Jeg sender en mail fra mit site med et link i:
http://localhost/xx/godkend.php?arrid=238

Når jeg klikker på linket i mailprogrammet, skal jeg logge ind på sitet, men efter login er linket reduceret til http://localhost/xx/godkend.php

Hvad kan jeg gøre for at få arrid=238 med i linket efter login ?

Venlig hilsen Kim
Avatar billede Lucky_Mik Nybegynder
25. oktober 2009 - 19:59 #1
Og er jeg logget ind før jeg klikker i linket på mailen fungerer det, men så skal jeg jo heller ikke logge ind.
Avatar billede Slettet bruger
25. oktober 2009 - 20:11 #2
Hm...

Efter du er "logget ind" er det ikke længere noget link
- men bare adressen (URL'en) på den side du har åben.

"?arrid=238" er en parameter som PHP åbenbart bruger, og derefter ikke har brug for længere (fordi du så ER logget ind, måske?)

Begge "links" peger på samme side - Hvad er problemet ?
Avatar billede Lucky_Mik Nybegynder
25. oktober 2009 - 20:22 #3
Variablen arrid=238 forsvinder fra linket når jeg går gennem login proceduren.
Avatar billede Slettet bruger
25. oktober 2009 - 20:44 #4
Gør det noget ?

Jeg gætter lige:
Mon ikke arrid er dit "bruger id" - som PHP så beder dig om passwordet for.
- når du har givet den det, ved den hvem du er, og har derfor ikke længere brug for informationen i URL'en

Den benytter nok en cookie i stedet for - så du slipper for den længere URL.
En cookie er prinsipielt det samme som ekstra parametre på URL'ee
- de er bare usynlige for brugeren (og så kan de udløbe efter et stykke tid)
Avatar billede Lucky_Mik Nybegynder
25. oktober 2009 - 20:51 #5
ja, det gør noget :-)
Ud fra arrid skal jeg hente info i mysql, så den skal med.

arrid er ikke bruger id og sitet bruger sessions, ikke cookies.
Avatar billede Slettet bruger
25. oktober 2009 - 21:07 #6
OK, så var jeg HELT ved siden af - det måtte jo ske en dag : )

Men hvad sker der med det efter første omgang ?
- kan du ikke fiske det ud ad Session'en..nen
Avatar billede Lucky_Mik Nybegynder
25. oktober 2009 - 21:13 #7
er jeg logget ind når jeg klikker på linket i mailen fungerer det.

er jeg ikke logget ind når jeg klikker på linket skal jeg "gennem" login. Jeg kommer til den rigtige side, men variablen er væk...
Avatar billede Lucky_Mik Nybegynder
25. oktober 2009 - 21:14 #8
det gør ikke noget man skal gennem login, men variablen skal med.
Avatar billede Slettet bruger
25. oktober 2009 - 21:24 #9
Det er nok ikke måden at gøre det på, er jeg bange for...

Det ville i så fald gælde for ALLE links imellem de forskellige sider på sitet.

Du må have fat i login-proceduren, og dér sørge for at gemme din arrid-variabel (enten som cookie, eller i sessionen)
- på den måde vil den være tilrådighed for PHP på alle andre sider.
Avatar billede Lucky_Mik Nybegynder
25. oktober 2009 - 21:29 #10
Det handler ikke om links mellem siderne på sitet, det fungerer fint vha sessioner.
Og arrid skal kun være til rådighed på en enkelt side.

Jeg kunne vel nok lægge variablen fra mailen i en ny variabel og så efter login sende variablen med - men er der ikke en lettere måde. Det fungerer jo når man er logget ind i forvejen før man klikker på linket i mailen.
Avatar billede dkfire Nybegynder
25. oktober 2009 - 21:41 #11
Når du logger ind, hvordan går dine sider så videre til godkend.php ?
Det ville være en god ide at vide noget kode.
Avatar billede Lucky_Mik Nybegynder
25. oktober 2009 - 21:53 #12
Når jeg kommer til at skulle logge ind, får jeg at vide at jeg ikke er logget ind, og får linket til loginsiden med koden:

"<a href=\"user_login.php?redirect=$redirect\">Klik her</a>)";

Holder jeg musemarkøren over dette link er variablen væk, men det henviser stadig til godkend.php
Avatar billede dkfire Nybegynder
25. oktober 2009 - 22:36 #13
Jamen så er det jo fordi $redirect ikke har hele din url med
Avatar billede Lucky_Mik Nybegynder
26. oktober 2009 - 07:32 #14
ja, kan jeg gøre noget ved det ?
Avatar billede Lucky_Mik Nybegynder
26. oktober 2009 - 12:33 #15
Jeg har vist selv fundet ud af det. Følgende skal være i filen, der checker om en bruger er logget ind:

//er der et arrid med, som skal redirectes
$arrid = $_GET['arrid'];
   
$redirect = $_SERVER['PHP_SELF'];

//medtag arrid-variablen i redirect
$redirect .= "?" . "arrid=" . $arrid;
 
header("Refresh: 5; URL=user_login.php?redirect=$redirect");

Om dette er den rigtige måde ved jeg ikke, men det fungerer vist.

Venlig hilsen Kim
Avatar billede dkfire Nybegynder
26. oktober 2009 - 19:48 #16
Jeg går sådan set ikke så meget op i point, men er du sikker på at der slet ikke er nogen af de kommentarer som har hjulpet dig i den rigtige retning ?
Husk på det er hjælp til selvhjælp.
Avatar billede Lucky_Mik Nybegynder
26. oktober 2009 - 20:03 #17
Jo, det er måske rigtigt og jeg er da glad for indlæggene. Jeg vil gerne dele de 30 point mellem dig og T4NK3R, men hvordan gør jeg ?

Og tak for svarene :-)

Venlig hilsen Kim
Avatar billede dkfire Nybegynder
26. oktober 2009 - 20:45 #18
For min skyld, så behøver jeg ikke de point, men husk det til en anden gang ;-)
Avatar billede Lucky_Mik Nybegynder
26. oktober 2009 - 22:29 #19
Det vil jeg gø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