Denmystiskeperson Skrevet 21. februar 2007 Del Skrevet 21. februar 2007 Hei , holder på å lage et login script til siden. Login scriptet funker perfekt, men lurer på om det er noe jeg burde skifte? Merk! Jeg skal ikke ha md5 kryptering på passord fordi at det er ingen vits i forhold til hva som er på siden. Jeg er helt ny i å bruke sessions, så er dette lurt å bruke ? Tenker på å ha de sessionene hvis brukeren skal gå rundt på siden og fortsatt bruke login beskyttete script. Jeg bruker disse sessionene: $_SESSION['loggetinn'] = 1; // Her lager vi en variabel for at brukeren er logget inn. $_SESSION['brukernavn'] = $brukernavn; // Dette husker hvilket brukernavn som er logget inn $_SESSION['passord'] = $passord; // Husker passord som er logget inn $_SESSION['rettighet'] = $rettighet ; //Husker rettighetene til brukeren. Her er koden: //Kategori - admin case LoggInn: $access = $_GET["access"]; switch ($access){ default: echo " <form action='index.php?kategori=LoggInn&access=login' method='POST'> <center> Brukernavn: <input name='brukernavn' type='text'><br /> Passord: <input name='passord' type='password'><br /> <input type='submit' value='Logg Inn'> </center> </form> "; break; case login: function feil_brukernavnpassord(){ echo "<p>Brukernavn / Passord var feil! Prøv igjen ved å klikke <a href='index.php?kategori=LoggInn'> HER</a></p>"; } $brukernavn = $_POST['brukernavn']; $passord = $_POST['passord']; $query = mysql_query("SELECT * FROM brukere WHERE brukernavn='$brukernavn' AND passord='$passord'"); while ($data = mysql_fetch_array($query)) { $riktigpassord = $data['passord']; $riktigbrukernavn = $data['brukernavn']; $rettighet = $data['rettighet']; } if($brukernavn == $riktigbrukernavn){ if ($passord == $riktigpassord){ echo "RIKTIG! Du er nå loggget in man!"; $_SESSION['loggetinn'] = 1; $_SESSION['brukernavn'] = $brukernavn; $_SESSION['passord'] = $passord; $_SESSION['rettighet'] = $rettighet; HER GÅR ALT DATA SOM ER BESKYTTET MED BRUKERNAVN OG PASSORD! } }else { feil_brukernavnpassord(); $loggetinn=0; } } else{ feil_brukernavnpassord(); $loggetinn=0; } break; } //Kategori - admin - Slutt Lenke til kommentar
ZoRaC Skrevet 21. februar 2007 Del Skrevet 21. februar 2007 Ser forsåvidt greit ut, litt vanskelig å lese uten å ha "indents"... Hvorfor har du en funksjon for "feil_brukernavnpassord()" og hvorfor har du den inni switch/case? $feil_brukernavnpassord = "<p>Brukernavn / Passord var feil! Prøv igjen ved å klikke <a href='index.php?kategori=LoggInn'> HER</a></p>"; echo $feil-brukernavnpassord; Lenke til kommentar
CruellaDeVille Skrevet 21. februar 2007 Del Skrevet 21. februar 2007 Hei , holder på å lage et login script til siden.Login scriptet funker perfekt, men lurer på om det er noe jeg burde skifte? Merk! Jeg skal ikke ha md5 kryptering på passord fordi at det er ingen vits i forhold til hva som er på siden. Jeg er helt ny i å bruke sessions, så er dette lurt å bruke ? Tenker på å ha de sessionene hvis brukeren skal gå rundt på siden og fortsatt bruke login beskyttete script. Jeg bruker disse sessionene: $_SESSION['loggetinn'] = 1; // Her lager vi en variabel for at brukeren er logget inn. $_SESSION['brukernavn'] = $brukernavn; // Dette husker hvilket brukernavn som er logget inn $_SESSION['passord'] = $passord; // Husker passord som er logget inn $_SESSION['rettighet'] = $rettighet ; //Husker rettighetene til brukeren. Her er koden: //Kategori - admin case LoggInn: $access = $_GET["access"]; switch ($access){ default: echo " <form action='index.php?kategori=LoggInn&access=login' method='POST'> <center> Brukernavn: <input name='brukernavn' type='text'><br /> Passord: <input name='passord' type='password'><br /> <input type='submit' value='Logg Inn'> </center> </form> "; break; case login: function feil_brukernavnpassord(){ echo "<p>Brukernavn / Passord var feil! Prøv igjen ved å klikke <a href='index.php?kategori=LoggInn'> HER</a></p>"; } $brukernavn = $_POST['brukernavn']; $passord = $_POST['passord']; $query = mysql_query("SELECT * FROM brukere WHERE brukernavn='$brukernavn' AND passord='$passord'"); while ($data = mysql_fetch_array($query)) { $riktigpassord = $data['passord']; $riktigbrukernavn = $data['brukernavn']; $rettighet = $data['rettighet']; } if($brukernavn == $riktigbrukernavn){ if ($passord == $riktigpassord){ echo "RIKTIG! Du er nå loggget in man!"; $_SESSION['loggetinn'] = 1; $_SESSION['brukernavn'] = $brukernavn; $_SESSION['passord'] = $passord; $_SESSION['rettighet'] = $rettighet; HER GÅR ALT DATA SOM ER BESKYTTET MED BRUKERNAVN OG PASSORD! } }else { feil_brukernavnpassord(); $loggetinn=0; } } else{ feil_brukernavnpassord(); $loggetinn=0; } break; } //Kategori - admin - Slutt 7989960[/snapback] Du må escape variablene dine før du sender de til mysql, funksjonen for feil passord bør du definere på utsiden av switchen din. Jeg ville gjort noe slikt som dette: <?php $access = isset($_GET["access"]) ? $_GET['access'] : ""; switch ($access){ case 'login': $brukernavn = mysql_real_escape_string(trim($_POST['brukernavn'])); $passord = mysql_real_escape_string(trim($_POST['passord'])); $query = mysql_query("SELECT * FROM brukere WHERE brukernavn='$brukernavn' AND passord='$passord'"); if ($data = mysql_fetch_array($query) == 1) { $_SESSION['loggetinn'] = 1; $_SESSION['brukernavn'] = $data['brukernavn']; $_SESSION['passord'] = $data['passord']; $_SESSION['rettighet'] = $data['rettighet']; echo "RIKTIG! Du er nå loggget in man!"; }else{ feil_brukernavnpassord(); } break; default: echo " <form action='index.php?kategori=LoggInn&access=login' method='POST'> <center> Brukernavn: <input name='brukernavn' type='text'><br /> Passord: <input name='passord' type='password'><br /> <input type='submit' value='Logg Inn'> </center> </form> "; } function feil_brukernavnpassord(){ echo "<p>Brukernavn / Passord var feil! Prøv igjen ved å klikke <a href='index.php?kategori=LoggInn'> HER</a></p>"; } ?> Lenke til kommentar
Denmystiskeperson Skrevet 21. februar 2007 Forfatter Del Skrevet 21. februar 2007 Takker for nyttige tips! Skal prøve meg litt frem, grunnen til at jeg hadde funksjonen var at jeg måtte prøve funksjoner, første gang jeg har tatt i bruk en funksjon Men ja et lite spørsmål, Jeg har laget et script som jeg bruker for å få pages som Sier til data basen: LIMIT $fra, $til Når jeg lager en funksjon for denne side greien, function lag_sider(){ Side scriptet går her og definerer f.eks. $fra = 0 $til = 4 } //Tar for meg gjesteboken som et eksempel case gjestebok: lagsider(); $query = ("SELECT * FROM gjestebok LIMIT $fra, $til"); while ($data = mysql_fetch_array($query)){ Her skriver man ut inlegg da.. } Nå skulle jo side funksjonen fungere, men den fungerer BARE hvis jeg ikke har funksjon. Er det noe jeg må gjøre for å skrive en variabel ut fra en funksjon? Lenke til kommentar
CruellaDeVille Skrevet 21. februar 2007 Del Skrevet 21. februar 2007 Takker for nyttige tips! Skal prøve meg litt frem, grunnen til at jeg hadde funksjonen var at jeg måtte prøve funksjoner, første gang jeg har tatt i bruk en funksjon Men ja et lite spørsmål, Jeg har laget et script som jeg bruker for å få pages som Sier til data basen: LIMIT $fra, $til Når jeg lager en funksjon for denne side greien, function lag_sider(){ Side scriptet går her og definerer f.eks. $fra = 0 $til = 4 } //Tar for meg gjesteboken som et eksempel case gjestebok: lagsider(); $query = ("SELECT * FROM gjestebok LIMIT $fra, $til"); while ($data = mysql_fetch_array($query)){ Her skriver man ut inlegg da.. } Nå skulle jo side funksjonen fungere, men den fungerer BARE hvis jeg ikke har funksjon. Er det noe jeg må gjøre for å skrive en variabel ut fra en funksjon? 7990284[/snapback] Det du må ta hensyn til her er scope av variabler. En variabel definert inni en funksjon gjelder bare inni den funksjonen, slik at $fra, $til slik du har skrevet det her gjelder bare inni lagsider(); Det finnes flere løsninger på det. Enten å bruke globale variabler, noe jeg vil anse som svært tungvindt, elelr du kan legge queryen din inni funksjonen og sende med $fra, $til som parameter. $fra = 0; $til = 4; (/ egentlig antall pr side function lagside(){ global $fra, $til; $fra = $til +1; } // spørringen din med bruk av $fra, $til Slik jeg ville gjort det ville jeg brukt $fra, $til som parameter function lagside($fra, $til){ $limit = "LIMIT $fra, $til"; $query = ("SELECT * FROM gjestebok $limit "); while ($data = mysql_fetch_array($query)){ // skriv ut data eller whatever } } Da kan du kalle den slik $fra = is_numeric($_GET['fra']) ? $_GET['fra'] : die("ugyldig fraverdi"); $antall = 4; lagside($fra, $antall); print "<a href=\"index.php?fra=".$antall+1."\">neste</a>"; Dette forutsetter at du sender fra og til vha lenker, eks index.php?fra=100 Noe slikt. Lenke til kommentar
Denmystiskeperson Skrevet 21. februar 2007 Forfatter Del Skrevet 21. februar 2007 Der ja! Takk man, tenkte ikke på å inkludere hele queryen ^^ Lenke til kommentar
Donnie Darko Skrevet 3. mars 2007 Del Skrevet 3. mars 2007 Hvis jeg vil bruke den koden du har der til en side jeg holder på med, hvor skal sette inn koden? Er det det samme? Kan jeg bare sette den helt nederst på kode siden? Lenke til kommentar
Mats Danielsen Skrevet 3. mars 2007 Del Skrevet 3. mars 2007 Hva med brukeren sin id? Dersom profil etc. skal oppdateres? Lenke til kommentar
Svish Skrevet 6. mars 2007 Del Skrevet 6. mars 2007 (endret) Hvis jeg vil bruke den koden du har der til en side jeg holder på med, hvor skal sette inn koden? Er det det samme? Kan jeg bare sette den helt nederst på kode siden? 8067127[/snapback] tror du må ha funksjonen helt øverst. eller i hvert fall før du bruker den. mener nemlig at jeg fikk en sånn fant-ingen-funksjon-med-det-navnet en gang når jeg prøvde å legge funksjonene ryddig nederst for seg selv nå har jeg alle funksjoner i en egen pho fil, og så bruker require_once("funksjoner.php"); i starten av fila jeg skal bruke funksjonen Endret 6. mars 2007 av Tussi_qwerty 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å