o2mlab Skrevet 23. mars 2005 Del Skrevet 23. mars 2005 Heisann... vi sitter med et loginscript hvor vi skal sjekke brukernavn og passord mot en database... Jeg prøvde med et vanlig query for å sjekke mot databasen: include("db.php"); $sql = mysql_query("SELECT * FROM users"); $row = mysql_fetch_array($sql); $ad_password = $row["nickname"]; $ad_username = $row["password"]; Dette funket dårlig... Scriptet funker dersom man setter faste navn på variablene som blir sjekket: $ad_password = "testpw"; $ad_username = "testun"; Noen som har noen gode tutorials eller noen hjelp på dette området...? MvH o2mlab Lenke til kommentar
Gilbert Skrevet 23. mars 2005 Del Skrevet 23. mars 2005 Aloha En god begynnelse er å finne ut hva $row["nickname"]; egentlig inneholder; echo $row["nickname"]; Deretter kan du også finne ut om det egentlig kommer noe resultat av spørringen: echo mysql_numrows($sql); Men jeg forstår ikke helt hvordan du kontrollerer at det er brukt rett brukernavn og passord? mysql_query("SELECT *FROM users WHERE nickname = '".$username."' AND password = '".$password."' LIMIT 1") Lenke til kommentar
Prodigy_ Skrevet 23. mars 2005 Del Skrevet 23. mars 2005 Du kan jo sjekka åssen han som har skrevet artikkelen "fullstendig loginside" på minlilleverden har gjort det: http://enilsen.klatreklubb.com/webarkiv/fullstendig.php Lenke til kommentar
pian Skrevet 23. mars 2005 Del Skrevet 23. mars 2005 $ad_password = $row["nickname"]; $ad_username = $row["password"]; er vel uansett feil?! skal det ikke være omvendt: $ad_password = $row["password"]; $ad_username = $row["nickname"]; Og du burde helt klart kryptere passordet i databasen. Slik at du sjekker det krypterte av det brukeren sender mot det krypterte i databasen. Lenke til kommentar
olear Skrevet 23. mars 2005 Del Skrevet 23. mars 2005 Kanskje dette kan hjelpe: echo " <form action=\"\" method=\"post\"> <p>Brukernavn<br /><input type=\"text\" name=\"nickname\" size=\"25\" /></p> <p>Passord<br /><input type=\"password\" name=\"password\" size=\"25\" /></p> <p><input type=\"submit\" value=\"Send\" name=\"Login\" /></p> </form> "; if ($_POST['Login']) { $nickname = $_POST['nickname']; $password = $_POST['password']; $result = mysql_query("select id from users where nickname = '$nickname' and password = '$password'"); $check_login = mysql_num_rows($result); if ($check_login > 0) {echo "Hallo " .$nickname;} if ($check_login < 1) {echo "Brukernavn/passord er feil.";} } Merk at jeg ikke bruker noe form for kryptering av passord, men dette finner du enkelt ut av selv. Lenke til kommentar
o2mlab Skrevet 29. mars 2005 Forfatter Del Skrevet 29. mars 2005 (endret) Problemet er løst, takker for alle svar Jepp, kryptering skal foretas, og jeg har forstått hvordan dette skal gjøres, så det ordner seg... bare lære meg login i PHP først, stresser litt med å skulle lære seg PHP på 5 uker, hehe Men nå har jeg et nytt lite problem: Jeg prøver meg på en spørring hvor jeg skal hente ut en variabel i session'en... min spørring ser slik ut: $bruker = mysql_query("SELECT userID FROM users WHERE nickname=$_SESSION['nickname']"); Er det noen feil i syntaxen her? Noe usikker... Eller er det rett og slett umulig å hente ut variabler fra session i en mysqlspørring?? Endret 29. mars 2005 av o2mlab Lenke til kommentar
Torbjørn Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 du skal ikke ha '' rundt array keys i en allerede ""-omsluttet streng Lenke til kommentar
o2mlab Skrevet 29. mars 2005 Forfatter Del Skrevet 29. mars 2005 (endret) Hmm... vil det da si at koden skal se noe lignende dette ut? Kan jo også nevne at det jeg prøver å løse er å kunne poste en nyhet. Formet som poster nyheten skal ta i mot en hidden value. Value skal være userID fra tabellen users som må hentes via sessions (for innlogget bruker). Jeg prøvde da denne koden, men får ikke registrert valuen for hvilken bruker som poster nyheter: $bruker = mysql_query("SELECT userID FROM users WHERE nickname=$_SESSION[nickname]"); echo '<input type="hidden" name="author" value="'.$bruker.'">'; Endret 29. mars 2005 av o2mlab Lenke til kommentar
Torbjørn Skrevet 29. mars 2005 Del Skrevet 29. mars 2005 strenger i mysql skal ha '' rundt set, dvs: ... set nickname='$variabelen_her' Lenke til kommentar
o2mlab Skrevet 30. mars 2005 Forfatter Del Skrevet 30. mars 2005 hmm, okaj... begynner å bli vanskelig å holde tunga rett i munnen i forhold til fnutter og strenger her nå, men er dette da noe i nærheten? $bruker = mysql_query("SELECT userID FROM users WHERE nickname='$_SESSION[nickname]'"); echo '<input type="hidden" name="author" value="'.$bruker.'">'; Lenke til kommentar
olear Skrevet 30. mars 2005 Del Skrevet 30. mars 2005 Men nå har jeg et nytt lite problem:Jeg prøver meg på en spørring hvor jeg skal hente ut en variabel i session'en... min spørring ser slik ut: $bruker = mysql_query("SELECT userID FROM users WHERE nickname=$_SESSION['nickname']"); Er det noen feil i syntaxen her? Noe usikker... Eller er det rett og slett umulig å hente ut variabler fra session i en mysqlspørring?? dette skal fungere: $bruker = mysql_query("SELECT userID FROM users WHERE nickname=" .$_SESSION['nickname']. ""); eller dette: $nickname = $_SESSION['nickname']; $bruker = mysql_query("SELECT userID FROM users WHERE nickname='$nickname'"); Lenke til kommentar
o2mlab Skrevet 30. mars 2005 Forfatter Del Skrevet 30. mars 2005 (endret) takker nok en gang for alle svar... Jeg har nå prøvd alle løsninger nevnt her, men fortsatt får jeg samme feilen... Prøver å se for meg noen logiske feil utover kodesnutten(e) jeg og dere har foreslått: - jeg bruker en session_register('nickname'); når brukeren logger inn. Dette skal være nok får å kunne bruker $_SESSION['nickname'] som en variabel for å hente nickname i en spørring/PHP-kode? -Session følger ikke med brukeren. Dette ser jeg egentlig på som lite sannsynlig, da jeg har en test som viser at brukeren er logget inn på siden så sant session er registrert, så jeg tviler på at det er et problem... derimot kan jeg såpass lite om dette at jeg ikke vil utelukke det, fram til noen med litt bedre peiling kan forsikre meg om at jeg kan utelukke det ser vel på det første punktet som mest sannsynlig, at jeg på en eller annen måte må "vise" nickname i session... men jeg er usikker... koden for å logge inn ligger her, dersom den kan hjelpe noen... Endret 30. mars 2005 av o2mlab Lenke til kommentar
Torbjørn Skrevet 30. mars 2005 Del Skrevet 30. mars 2005 du har da ikke hentet ut data slik du skal med en av mysql_fetch_* funksjonene? mysql_query returnerer ikke kun det du spør etter fordi du tilfeldigvis bare hare en kolonne i din spørring. hva om du "select * from whatnot", hva fordenter du da å få som retur fra mysql_query? en eller alle eller noen av kolonnene? en array kanskje? alle rader eller bare en? se på mysql_query på no2.php.net Lenke til kommentar
o2mlab Skrevet 31. mars 2005 Forfatter Del Skrevet 31. mars 2005 Nok en gang takk for alle svar og god hjelp, problemet er løst... Jeg hadde ikke sendt med noen verdi for nickname i session... Ikke lett å skulle få med seg alt... Men, som sagt, takker alle for svar 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å