Avatar billede LilleUdvikler Nybegynder
18. maj 2011 - 22:13 Der er 17 kommentarer og
1 løsning

Login script med tilhørende profil til alle brugere.

Hej drenge og piger, herre og damer.

Links til dette spørgsmål:
www.pressrest.dk

Jeg kunne godt tænke mig, at have det sådan, at man får en profil, hvor man kan ændre i sine detaljer og uploade et billede når man opretter en profil på min hjemmeside.

+ at man skal kunne trykke på, et brugernavn, som et link også komme til deres profil, hvor man kan læse lidt om dem. Ligesom man kan alle andre steder, og fx Eksperten.dk :o)

Jeg har en idé om, at når man trykker på et brugernavns link, så skal den gå efter brugerens ID nummer, ligesom den gør på Facebook, når man IKKE er venner med personen.

Er der evt. en nem måde, at gøre dette på? :o)
Avatar billede pstidsen Novice
18. maj 2011 - 22:20 #1
Hvis du vil have en til at programmere det for dig, tror jeg ikke ngen vil gøre det gratis;)
Avatar billede LilleUdvikler Nybegynder
18. maj 2011 - 22:22 #2
Det skrev jeg ikke, synes du? :o)

Jeg spurgte bare til, hvordan det måske kunne lade sig gøre. Jeg er sikker på, der nok skal være nogle, der ikke får ondt i røven over, at fortælle, hvordan man kunne gøre :o)
Avatar billede pstidsen Novice
18. maj 2011 - 22:26 #3
rolig rolig. Jeg sagde det bare :-)
Avatar billede wanze Nybegynder
18. maj 2011 - 23:13 #4
Hvilken del skal du bruge hjælp til? Lave brugersystem? Uploade billeder? Vise profiler?
Avatar billede danco Nybegynder
18. maj 2011 - 23:26 #5
Som jeg ser det vil det blot prøve at du har et par MySQL tabeller.

En tabel der indeholder login oplysninger
En tabel der indeholder profil oplysninger
En tabel der indeholder billeder til en profil (Hvis en profil kan have flere billeder)

Det kunne være noget lign:

Login
ProfileID - UserEmail - UserPassword

Profile
ProfileID - FirstName - Lastname - Email

ProfileImages
ProfileID - Image

Så laver du en login side som forespørger på ProfileID hvor Email og password matcher, kunne være følgende SQL streng:

SELECT ProfileID FROM Login WHERE UserEmail='Account@domain.com' AND UserPassword='EncryptedPassword'

Derefter laver du et PHP dokument der hedder profile.php som tager ID som paramater i URL'en. Derefter er det blot et spørgsmål om at skelne mellem om profilen er ens egen eller en andens. Hvis det er ens egen profil tillader man redigering ellers ikke.
Avatar billede wanze Nybegynder
18. maj 2011 - 23:38 #6
danco:
Udmærket struktur, dog giver det ingen mening at have to tabeller Login/Profile - hvilken fordel skulle det bringe? Det gør kun, at dine forespørgsler bliver længere og langsommere.

Noget andet er, at hvis brugere skal kunne have flere billeder, da vil ProfileID ikke længere være unikt i ProfileImage, hvilket betyder at ProfileImages ikke har en primær nøgle. Sørg altid for at en tabel har en nøgle, ellers bliver den håbløst langsom at arbejde med.
Avatar billede danco Nybegynder
18. maj 2011 - 23:45 #7
Wanze ;
Tak fordi du pointere det overfor mig. Jeg har naturligvis ikke været dygtig nok til min formulering. Omkring ProfileImage mener jeg naturligvis at ProfileID og image er en sammensat primærnøgle.

Omkring login, jeg tænkte mig nok ikke synderligt godt om lige der, jeg kan godt se at der skabes unødig redundant information. Profile tabellen skal naturligvis indholde Passwordet også.

Dog vil jeg forsvare mig selv ved at sige at dette normalt er noget jeg fanger under min normalisering, noget som jeg ikke har gjort det store ud af i denne sammenhæng.
Avatar billede wanze Nybegynder
18. maj 2011 - 23:55 #8
Ja, du ville nok fange det, men jeg tror ikke OP har rutinen til at gøre det samme - det er derfor, jeg pointerer det. ;-)

Dog er jeg lidt forvirret - bibeholder du stadig tanken om 3 tabeller? Når der er en en-til-en-relation mellem Login og Profile, så virker det overflødigt at bruge to tabeller.
Avatar billede danco Nybegynder
18. maj 2011 - 23:58 #9
Og derfor er jeg glad for at du fangede det for mig. Nu hvor det måske gik en kende for stærkt.

Nej, jeg vil så nedligge Login tabellen og flytte informationen fra den over i Profile.

DBMS er jo ligeglad hvor store tabellerne bliver, det er blot os andre der skal holde tingen lige i munden når vi arbejder med dem.
Avatar billede wanze Nybegynder
19. maj 2011 - 00:04 #10
Udmærket, så er vi enige.
Avatar billede LilleUdvikler Nybegynder
19. maj 2011 - 14:33 #11
Hej de herre.

Mange tak for svaret danco og wanze.

Jeg forstår udemærket, hvad du skriver. Jeg er bare overhovedet ikke klar over, hvordan jeg skal begynde. Er der evt nogle der har et lille script, som jeg kan begynde med, så skal jeg nok få bygget det videre.

Jeg er rimelig ny i PHP, så derfor er det ikke bare lige, for mig, at begynde og kode det hele selv.

Hvis det er noget, som nogen skal have penge for, at lave et lille forskud på profil.php (Jeg har selve login systemet). Så må jeg selv kigge på nettet og hitte noget ud :o)
Avatar billede danco Nybegynder
19. maj 2011 - 15:24 #12
Jamen prøv og uddyb hvad du mere konkret vil have svar på, det er ikke let at svare når det ikke er konkret, skal du bruge hjælp til at vise informationerne i profil.php eller hvad er det du går "kold" på ?
Avatar billede LilleUdvikler Nybegynder
19. maj 2011 - 15:27 #13
Altså.

Jeg har en database, hvor jeg har oplysningerne: id, brugernavn, password, navn, adresse, telefon, email.

Så når man logger ind på min hjemmeside, så kan man trykke på "profil" i en menu. Den viser så ens egne oplysninger.

Så er det, at jeg gerne vil have, at andre brugere skal kunne klikke på, andre brugere - så man kan se hinandens profiler. (Indviklet ;o))

Så, hvad jeg ikke kan finde ud af er: Jeg ved ikke hvordan man smider en users id op i url'en, hvordan man kan definere om det er en andens profil.. Faktisk så har jeg ingen ide om, hvordan jeg programmere det så mine brugere kan se andres profiler også.
Avatar billede danco Nybegynder
19. maj 2011 - 15:52 #14
Lad os nu antage at du, når en bruger logger ind, gemmer ID fra databasen i en session. Du kan vælge at gemme brugernavn mv efter behov.
Så laver du profil.php så generel at den kan antage 2 former. En form hvor den bare viser informationerne der ligger i databasen og en form hvor man kan redigere i informationerne. På den måde kan du altså skillle det op at hvis den profil der bliver vidst har samme ID som den der ligger i din session, ja så skal man have mulighed for at redigere. Hvis profilen har et andet ID, ja så skal skal den bare vises.

For at man kan se andres profiler vil det jo kræve at du har et dokument der viser alle profiler der findes. Det kan laves med relativt få linjer kode:


$sql = "SELECT id,brugernavn FROM Profile";
$rs = mysql_query($sql) or die(mysql_error());
while($row = mysql_fetch_array($rs)) {
  echo '<a href="profil.php?id='.$row['id'].'">.$row['brugernavn'].'</a>';
 
  echo '<br>';
}


Ovenstående kode vil således lave en fuld liste over alle profiler der findes på din side og derefter præsentere dem i en lang liste efter hinanden, hvert brugernavn vil være et link til profil.php hvor en parameter sendes med i URL'en.
Avatar billede LilleUdvikler Nybegynder
19. maj 2011 - 16:35 #15
Jeg kan af en eller anden grund, ikke gemme id i en session. Jeg har prøvet at sige (SELECT * FROM $tbl_name WHERE id = '$id')

Og det kan jeg ikke. Hvorfor ikke det?
Avatar billede danco Nybegynder
19. maj 2011 - 16:40 #16
På første linje i dit PHP dokument hvor du logger brugeren ind skriver du:

session_start();

Når du så har konstateret at login er korrekt kan du bruge følgende til at gemme i en session:

$_SESSION['id'] = $row['id'];

$row['id'] er naturligvis afhængig af hvad du vælger at gemme dine database resultater i. Derefter skal du huske session_start() på alle dine sider og så har du adgang til brugerens id gennem $_SESSION['id']

Måske bør du overveje at lukke tråden her og så oprette nye tråde med mere specifikke overskrifter hver gang du støder på en problemstilling.
Avatar billede LilleUdvikler Nybegynder
19. maj 2011 - 16:45 #17
Danco, kan du ikke smide et svar. Også lukker jeg tråden her. Så tænkte jeg på, om jeg må skrive til dig privat besked. Det ville helt klart være mere nyttigt, end at starte en ny tråd hver gang. :o)
Avatar billede danco Nybegynder
19. maj 2011 - 17:02 #18
jeg smider et svar.

Pointen med at lave nye tråde er dels at give flere point ud og dels at andre personer med samme problem som dig kan læse tråden og måske finde et svar selv.
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