Avatar billede Thomsen11 Nybegynder
20. juli 2009 - 18:21 Der er 21 kommentarer og
1 løsning

Personlig side via ID i MySQL

Hej eksperter!
Jeg har lavet et brugersystem på en hjemmeside som fungerer fint. Brugerne oprettes af mig som admin og oprettes i en tabel i PHPmyAdmin. I tabellen har jeg et felt som er ID, det er med auto_increment, så det automatisk ændres efter antallet af brugere jeg opretter.
Mit spørgsmål er så om det kan lade sig gøre at lave en personlig side til alle mine brugere. Det skal helst være sådan at de efter deres login, bliver sendt videre til deres personlige side. Jeg får ikke mange gæster så siderne må gerne ligge som seperate filer på min server. Siderne er ikke noget problem at lave, de skal kun indeholde info og nogle ting som kalender, siden kan kun ses af brugeren.

Kan det lade sig gøre? Hvis I ikke forstår mig må i endelig skrive!

På forhånd tak!!
Avatar billede Thomsen11 Nybegynder
20. juli 2009 - 18:23 #1
Jeg glemte at tilføje at ID måske kunne bruges som videresending til den personlige side :)
Avatar billede arne_v Ekspert
20. juli 2009 - 18:28 #2
Ja. Det skal bare kodes.

:-)

Hvis din login side gemmer deres id i session kan du lade resten af siderne goere forskelligt udfra id.
Avatar billede Thomsen11 Nybegynder
20. juli 2009 - 18:30 #3
Jeg er ikke helt med på din angivelse. Jeg er ikke ret erfaren inden for området. Kan du specifere det mere præcist?
Avatar billede kpdk Nybegynder
20. juli 2009 - 18:31 #4
Ja, det kan man sagtens. Der er en hulens masse måder man kan begynde at gribe det an på.

Herunder antager jeg at man valgte at lave det i PHP med en MySQL database som backend.

I sin simpleste form kan det være noget med at man efter et login sendes videre til index.php?bruger=1 hvor bruger=1 er id'et. Her kan man så eksempelvis lave således at der laves en kontrol på om bruger-variablen er et tal, at den er højere end 0 og mindre eller lig med det nuværende antal brugere i databasen. Derefter kan den så hente brugerinformation ud, f.eks. navn, alder, profiltekst osv - igen ud fra brugerid'et og fremvise på en personlig eller privat måde. Hvis det er en privat måde må man selvfølgelig vurdere hvor meget (hvis noget) skal være tilgængeligt for alle og lave en løsning der svarer til ens behov (umiddelbart lyder det til at du gerne vil have den helt privat). Der er ligeledes en del måder at kontrollere at privatheden overholdes, både i form af et logintjek og et tjek på om id'et på brugeren som er logget ind = id'et i databasen. Hvis ens - accepter og vis profil, ellers afvis.

Igen, der er masser af måder man kan gribe det an på - det her er bare et løst og simpelt eksempel på én mulig tilgangsvinkel :)

/kpdk
Avatar billede arne_v Ekspert
20. juli 2009 - 18:40 #5
Specificere hvad mere praecist?

Gemme id i session kan vist ikke vaere meget mere praecist.

Og vi kan ikke vaere mere praecis med hensyn til resten, da vi jo ikke kender din applikation og din database.
Avatar billede arne_v Ekspert
20. juli 2009 - 18:41 #6
Jeg kan ikke lide at sende id med i URL.

Det rejser en del security issues.
Avatar billede nemlig Professor
20. juli 2009 - 19:41 #7
Jeg deler arne_v's pointe med ikke at sende id med i URL.
Brug i stedet Sessions.

Læs lidt om sessions her: Det er rigtigt smart at bruge sessions.

http://www.phpbegynder.dk/artikler.php?id=22&page=1
Avatar billede Thomsen11 Nybegynder
20. juli 2009 - 20:58 #8
Jeg forstår jeres pointer!!
Har læst lidt mere og tror jeg får gavn af jeres svar!
Jeg takker mange gange for jeres hjælp!
Avatar billede kpdk Nybegynder
21. juli 2009 - 17:36 #9
Jeg er 110% enig i at sessioner til enhver tid er bedre end at lave det til en lang, snørklet og let-modificerbar URI :)

Held og lykke med dit projekt :)
Avatar billede Thomsen11 Nybegynder
21. juli 2009 - 22:26 #10
Nu har jeg læst og søgt en masse på emnet, men jeg er stadig ikke parat til at lave det.
Er jeg ikke erfaren nok til at begynde på sådan et projekt?
Jeg er nød til at få lidt pædagoisk hjælp:)
I kender ikke nogle guides til at lave sådanne systemer som i omtaler?
Jeg har lavet loginsystemet i sessions via en guide (http://www.udvikleren.dk/PHP/Article.aspx/87/), men er der en bedre måde er jeg parat til at starte forfra.
Avatar billede arne_v Ekspert
22. juli 2009 - 02:21 #11
Der er i bogstaveligste forstand tusinder af PHP og MySQL guide på nettet.

Vær tålmodig, læs en masse og eksperimenter en masse.

Det tager tid at lære at programmere godt. Også i PHP.
Avatar billede nemlig Professor
22. juli 2009 - 08:46 #12
Hvis du har lavet login-systemet, er du da godt på vej.
Og har du fulgt den omtalte guide, og det virker, så skal vi kigge nærmere på sesions-variablen $_SESSION['Brugernavn'].
Denne variabelen bruger du til at hente oplysningerne om din bruger.

Jeg har fx. tilføjet lidt i den sidste fil, for at vise, hvordan du henter oplysninger om brugeren.

<?php
session_start();
if(!$_SESSION['loget_in'] == 1) {//Hvis brugeren ikke er logget in
header("Location: http://www.domain.dk/login.html");//Sender brugeren videre
exit;//Sørger for at resten af koden, ikke bliver udført
}

//Hent data om den aktuelle bruger fra MySQL
$conn = mysql_connect("localhost", "brugernavn", "password");
mysql_select_db("database"); //Indtast selv de rigtige oplysninger


$resultat = mysql_query("SELECT * FROM `brugere` WHERE Brugernavn = '".$_SESSION['Brugernavn']'."'");//HENTER alle felter på din bruger
if (mysql_num_rows($resultat) == 1) {  //VIS OPLYSNINGER, HVIS DER HENTE EN POST
$row = mysql_fetch_array($resultat);
echo "<br>Brugernavn = ".$row['Brugernavn'];
echo "<br>Brugerid = ".$row['Id'];
//osv..
} else {
echo "Ingen oplysninger fundet";
}

?>
Avatar billede Thomsen11 Nybegynder
22. juli 2009 - 11:54 #13
Først og fremmest er jeg positivt overrasket over at du gider at bruge tid på mig, så du får lige endnu en tak (:
Men jeg har nu stadigt et problem. Hvis jeg indsætter den kode som du har ændret i, (Har ændret brugernavn password og database) kan siden ikke ses i browseren. Har uploadet scriptene til serveren.
Avatar billede nemlig Professor
22. juli 2009 - 12:00 #14
Det er svært at svare på, når vi ikke kan se koderne.
Du er velkommen til at sende scriptene til min mail-adresse (se min profil).
Skal jeg lige kigge på det!
Avatar billede Thomsen11 Nybegynder
23. juli 2009 - 21:13 #15
Men mine scripts er bare de scripts der lagde på hjemmesiden. Det eneste jeg har ændret er login til MySQL.

Hvor stort et problem er det iøvrigt at lave sådan en login script, med sessions som jeg ønsker, fra bunden?
Avatar billede nemlig Professor
23. juli 2009 - 21:27 #16
Hvis du har messenger, så prøv at fange mig på nemlig10 (a) hotmail.com. Så kan vi lige tage det.

Ovennævnte scripts gør netop brug af Sessions.
Avatar billede nemlig Professor
23. juli 2009 - 21:46 #17
Og hvis du selv vil prøve, kan jeg se, at der er en fejl i mit ovennævnte forslag til kode:

Denne linje:
$resultat = mysql_query("SELECT * FROM `brugere` WHERE Brugernavn = '".$_SESSION['Brugernavn']'."'");//HENTER alle felter på din bruger

Ændres til:

$resultat = mysql_query("SELECT * FROM `brugere` WHERE Brugernavn = '".$_SESSION['Brugernavn']."'");//HENTER alle felter på din bruger

Du kan fx. kalde filen for "brugeroplysninger.php".
Når du så har logget ind med korrekt kode og password, kan du prøve at indlæse denne her side.
Så burde den hente oplysninger om den pågældende bruger.
Avatar billede Thomsen11 Nybegynder
24. juli 2009 - 18:36 #18
Din rettelse fik scriptet til at virke! Men nu får brugeren jo kun sine informationer fra databasen oplyst. Kan det ikke lade sig gøre at sende brugeren videre til en specifik side som ligger på serveren? Forskellig fra bruger til bruger sendes de videre til deres egen side.

Har prøvet at kontakte dig via Messenger, men det har ikke været muligt.

Jeg er stadig taknemmelig over du bruger din tid på mit problem!
Avatar billede nemlig Professor
24. juli 2009 - 20:15 #19
Jeg er ikke helt med på, hvad du mener.
Jeg har nu godkendt dig i Messenger. Du kan prøve om du kan fange mig.
Avatar billede Thomsen11 Nybegynder
28. juli 2009 - 15:09 #20
Hov - Havde helt glemt at du skulle ligge et svar. Gør endelig det, nemlig!
Avatar billede nemlig Professor
28. juli 2009 - 16:24 #21
Hejsa - så får du lige et svar!
Avatar billede nemlig Professor
28. juli 2009 - 16:24 #22
Så prøver jeg igen.......
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
Computerworld tilbyder specialiserede kurser i database-management

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