MySQL php og session

Tags:    php mysql session

<< < 12 > >>
Jeg skal ha' lavet en session der tjekker om man er admin eller user
har lavet en session som registrere ens login, men kan ikke finde ud af at kode min (admin user) ind i den session


jeg har lavet denne række i min mysql
felt navn = rights
data type = SET
Længde/Værdi*1 = 'admin','user'

min connect samt registrering af session er denne
Fold kodeboks ind/udPHP kode 


min session ser sådan ud
Fold kodeboks ind/udPHP kode 


har prøvet at kode dele fra denne session ind men kan ikke få den registreret i connection til mysql
Fold kodeboks ind/udPHP kode 





20 svar postet i denne tråd vises herunder
11 indlæg har modtaget i alt 11 karma
Sorter efter stemmer Sorter efter dato
session_register('name') er forældet (http://php.net/manual/en/function.session-register.php) skriv i stedet:
$_SESSION['name'] = $name;


session_is_registered('name') er forældet (http://www.php.net/manual/en/function.session-is-registered.php) skriv i stedet
isset($_SESSION['name'])

Du sætter på intet tidspunkt 'rights' i $_SESSION.

At session brugernavn og logind tror jeg er en fejl og muligvis et sikkerhedshul. I stedet session et brugerid.








#1
Opret en række i din database som du kalder for "admin". Så gør du sådan at administratorer, der står der 1 i deres database, og for brugerne skal der stå 2.
Fold kodeboks ind/udPHP kode 





Derfor skal du bruge din database.
Fold kodeboks ind/udPHP kode 


Derfor skal du lave en ekstra "række" i din bruger-tabel i databasen, og kalde den "admin". Så kan du gøre sådan at i bruger-registrationen indsætter den tallet "2" til rækken "admin", og når du er administrator skal den bare hedde "1" istedet for.


Men hvis du er den eneste administrator på siden, er det hurtigere at gøre således:
Fold kodeboks ind/udPHP kode 




Indlæg senest redigeret d. 08.05.2011 22:29 af Bruger #16025
#Jacob
I din "if($_SESSION['rights'] == "3")" mangler du tegn. Koden skal se sådan her ud:
Fold kodeboks ind/udPHP kode 


Men for at få det til at virke kræver det selvfølgelig også at du har $_SESSION's kørende.

#Nikolaj
Det burde virke fint, men er du sikker på at du har sat 'admin' rækken ind i din tabel hvor der er brugernavn og password?

Hvis du har gjort det, så kan du bare skrive sådan:
Fold kodeboks ind/udPHP kode 


Variablen $select vil selvfølgelig føre til en variabel for din mysql_query i databasen :)



Det er for at oprette din sessions.

Jeg gør sådan her:
Fold kodeboks ind/udPHP kode 


Den kode er til hvis du logger ind. Den sætter jeg altid ind i min index fil.
Men det er rigtigt nok det med rækkerne :)



Indlæg senest redigeret d. 09.05.2011 18:48 af Bruger #16025
#Nikolaj
Hvis du ønsker hjælp, så kan jeg godt gøre det for dig :)



#Nikolaj
Hvor meget vil du give?



#Nikolaj
Altså, det er jo et par timers arbejde for mig, grundet af mangel på tid. Normalt ville jeg tage et par hundrede kroner, men fordi at det er dig så kan du få det til 100 kroner :)



#Nikolaj
Det er helt iorden. Du kan også bare betale over 2 gange :D



Mit første forsøg på sådan et system her (består af mange filer):

connect.php, ret "HOST", "USER", "PASSWORD" og "DB" til din egen db.
Fold kodeboks ind/udKode 


user_system.php
Fold kodeboks ind/udKode 


priveleges.php, denne fil er teknisk set ikke nødvendigt, men den gør livet lettere. Den sætter nogle af rettighederne til navngivet rettigheder og opretter bruger rettigheder der samler de navngivet. Her vist for et forum.
Fold kodeboks ind/udKode 


install.php, denne fil opretter tabellen i databasen. Upload den, afvikle den og fjern den fra serveren igen.
Opret bruger:
Fold kodeboks ind/udKode 



Det følgende viser koden til oprette en bruger:
Fold kodeboks ind/udKode 

Du kan selv sætte koden ind i en fil med form osv. Husk at rette kaj og password til værdier fra formen, $common_user er fra priveleges.php filen.


Det følgende viser koden til logind:
Fold kodeboks ind/udKode 


Det følgende viser koden til at teste om en bruge er logget ind:
Fold kodeboks ind/udKode 


Det følgende viser koden til at teste om en bruger har rettigheder:
Fold kodeboks ind/udKode 




<< < 12 > >>
t