Whoofy Skrevet 16. januar 2009 Del Skrevet 16. januar 2009 Hei, der. Jeg har planer om å starte en liten webside, og har tenkt å gjøre det mulig for brukere å registrere seg. Jeg får til å sette opp en registrerings-side, og gjøre slik at innholdet på siden blir bare vist dersom man er innlogget. Dette blir lagret i en MySQL-database. Mitt spørsmål følger: hvordan får jeg til å gi diverse tilgangsnivåer, samt å la brukere med de rette tilgangskravene, opprette sider? Et eksempel: en bruker registrerer seg, en jeg kjenner. Jeg ønsker å gi ham tilgang til å opprette nye sider, dette ved at alle lenker på siden er PHP $_GET (eksempel: www.sideeksempel.no/?id=forside). Det å gi tilgangsnivåer, samt opprette sider hadde jeg synes vært bra om kunne bli gjort på selve siden, uten å måtte gå inn i FTP eller noe. Mitt andre spørsmål er: hvordan får man til to variaber i en URL? (eksempel med en variabel: www.sideeksempel.no/?id=forside og eksempel med to variabler: www.sideeksempel.no/?id=nyheter&articleID=10). Noen som kan hjelpe meg ut? Lenke til kommentar
fezken Skrevet 16. januar 2009 Del Skrevet 16. januar 2009 1. Tilgangsnivåer - Du kan f.eks legge til ett ekstra felt som du kaller for 'access' i bruker tabellen din. Når brukere registrerer kan du legge inn tallet '1' som standard verdi i dette feltet. Når du ønsker å gi en bruker utvidet tilgang, kan du endre denne til f.eks '2' (Alt avhenger av hvor mange forskjellige tilgangsnivåer du ønsker å ha, men du skjønner poenget) Når du da skal gjøre sjekken om bruker har tilgang til en side som krever tilgangsnivå 2, kan du gjøre slik : <? if(isset($_SESSION['loggedin'] && $_SESSION['access'] == 2) { // Beskyttet innhold } else { // Ikke tilgang til beskyttet innhold } ?> Dette forutsetter da at du setter sessions når bruker logger inn. 2. Opprette nye sider - Jeg vet ikke hvordan oppsettet i systemet ditt er, men regner med at du benytter deg av mysql. Isåfall kan du bruke ett tekstfelt eller en wysiwyg til å la bruker opprette siden. Du lagrer innholdet i en .php fil med tilsvarende tittel . Deretter lagrer du informasjon(tittel, dato, hvem som opprettet siden, meta tags,keywords osv) i en tabell i databasen din. Sett at du bruker ett include script kan du legge de lagrede filene i den mappen hvor inkluderer fra. 3. Hvordan få flere variabler i en URL - Dette betyr bare at den inneholder flere parametere som du kan hente verdien av vha $_GET . I det link eksempelet du postet kan du sjekke verdien av id parameteret($_GET['id']) og articleID parameteret($_GET['articleID']) ved å kjøre en print_r på disse to hadde du fått ut noe sånt som : Array ( [id] => nyheter [articleID] => 10 ) Dersom "nyheter" har en funksjon for å skrive ut artikkler/nyheter må funksjonen vite hvilken artikkel/nyhet den skal skrive ut. Skjønner du poenget ? Lykke til Lenke til kommentar
Whoofy Skrevet 16. januar 2009 Forfatter Del Skrevet 16. januar 2009 (endret) Flotte greier, du! Hjertelig takk. Forstod ikke helt det med det å bruke to variabler, men det er ikke så viktig. Skal nå alltids klare meg uten det. Skal se om jeg ikke får til brukersystemet nå. Det bruker sessions ja, så det burde gå helt flott. Den koden jeg bruker for å få en variabel er slik: <?php if (isset($_GET['id']) && $_GET['id'] != "") { $id = $_GET['id']; if (file_exists('include/'.$id.'.php')) { @include ('include/'.$id.'.php'); } elseif (!file_exists('include/'.$id.'.php')) { echo '<h1 class="title">404 Error</h1> <div class="entry"> <p>The page you are trying to reach does not exist.</p> </div> '; } } else { @include ('include/home.php'); } ?> Endret 16. januar 2009 av Whoofy Lenke til kommentar
OIS Skrevet 16. januar 2009 Del Skrevet 16. januar 2009 *dårlig includescript* Anbefaler deg å søke litt i forumet her og finne et sikrere include script du kan bruke som modell. Lenke til kommentar
Wackamole Skrevet 16. januar 2009 Del Skrevet 16. januar 2009 til det formålet vil jeg anbefale Morten sitt include script! Direkte nedlastings-link Lenke til kommentar
fezken Skrevet 17. januar 2009 Del Skrevet 17. januar 2009 (endret) Skal prøve å forklare det med bruk av flere parametere(variabler om du vil) i URL. La oss si at du bruker det include scriptet(selv om det ikke er sikkert i det hele tatt) . Og vil forholder oss til URL "www.sideeksempel.no/?id=nyheter&articleID=10" Da vil første parameter i URL(id) brukes av include scriptet ditt til å inkludere filen "nyheter". La oss si at nyheter ser noe slik ut : <? if(isset($_GET['articleID']) && $_GET['articleID'] != "") { $SQL = ' SELECT tittle, article, author FROM articles WHERE id = %d LIMIT 1'; $SQL = sprintf($SQL, $_GET['articleID']); $SQL = mysql_query($SQL); // Henter resten av artikkelen ........ } ?> Da blir det andre parameteret i URL(som er articleID) hentet frem i "nyheter" . Skjønner du hvordan dette fungerer da ? Her har du ett include script som funker fett, og som jeg ser det sikkrere enn mortz sitt(om han ikke har oppdatert det da) : link Lykke til Endret 17. januar 2009 av zaxz Lenke til kommentar
Whoofy Skrevet 17. januar 2009 Forfatter Del Skrevet 17. januar 2009 Takk, forstår det sånn hallves nå. Men akuratt det kan jeg ta senere, trenger det ikke nå. Men jeg møtte på et problem. I MySQL, så laga jeg en table som heter "access" og ga den de korrekte 'instillingene' (fikk dobbeltsjekka dette). Men da klarer man ikke å registrere seg! Hva må jeg legge til i register.php for å få dette til å virke, vet du det? Jeg bruker denne register og login koden. Takk igjen. Lenke til kommentar
Epower Skrevet 17. januar 2009 Del Skrevet 17. januar 2009 function addNewUser($username, $password){ global $conn; $q = "INSERT INTO users VALUES ('$username', '$password')"; return mysql_query($q,$conn); } Bytt ut med function addNewUser($username, $password){ global $conn; $q = "INSERT INTO users (username, password) VALUES ('$username', '$password')"; return mysql_query($q,$conn); } Lenke til kommentar
Whoofy Skrevet 17. januar 2009 Forfatter Del Skrevet 17. januar 2009 function addNewUser($username, $password){ global $conn; $q = "INSERT INTO users VALUES ('$username', '$password')"; return mysql_query($q,$conn); } Bytt ut med function addNewUser($username, $password){ global $conn; $q = "INSERT INTO users (username, password) VALUES ('$username', '$password')"; return mysql_query($q,$conn); } Da jeg prøvde dette, kom det bare feilmeldinger. Lenke til kommentar
Wackamole Skrevet 17. januar 2009 Del Skrevet 17. januar 2009 Hvis vi skal finne ut hva som er feilen, må du nesten poste feilmeldingene Lenke til kommentar
Whoofy Skrevet 21. januar 2009 Forfatter Del Skrevet 21. januar 2009 (endret) Joda, det virker å registrere/logge seg inn/ut nå. Men har fortsatt ikke fått til det med access-tables og slikt. I phpMyAdmin lager jeg en table som heter "access", og setter instillingene på dem som Type: "INT", Lengde: "1", "Attributter: "UNSIGNED", "NOT NULL" og Standar er satt til "1". (Planen er da at et høyere tilgangsnivå skal være 2, 3, 4, osv.). Men hva setter jeg i de andre filene? Vet at i det som da blir fila med selve innholdet hvor man skal være logget inn for å se, skal ha denne koden: <? if(isset($_SESSION['loggedin'] && $_SESSION['access'] == 2) { // Beskyttet innhold } else { // Ikke tilgang til beskyttet innhold } ?> (Takk til zaxz ) Endret 21. januar 2009 av Whoofy Lenke til kommentar
Wackamole Skrevet 21. januar 2009 Del Skrevet 21. januar 2009 for og sette acccess numer, tar du etter du har hentet ut brukerinfo - $_SESSION['access'] = $row['access']; Lenke til kommentar
Whoofy Skrevet 22. januar 2009 Forfatter Del Skrevet 22. januar 2009 Dette skal settes i register.php om jeg ikke tar feil? Lenke til kommentar
fezken Skrevet 22. januar 2009 Del Skrevet 22. januar 2009 Den skal settes etter brukeren har logget inn, sammen med f.eks $_SESSION['loggedin']. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå