Theodorl Skrevet 9. januar 2008 Del Skrevet 9. januar 2008 Hei! Jeg trenger litt hjelp med et skjema i php som sender til en mysql database. Skjemaet er laget slik at brukeren skriver inn brukernavnet sitt og passordet i to felt først, så skriver han/hun inn i de resterende feltene. Php scriptet sjekker om brukernavn og passord er fylt ut og om de stemmer overens med hverandre. Hvis det er tilfellet legger det informasjonen i de andre feltene inn i databasen. MEN hvis brukernavn og passord ikke stemmer så sendes brukeren til en feilmeldingside hvor det står "Brukernavn og passord stemmer ikke, gå tilbake". Når brukeren da går tilbake forsvinner det passordet han/hun allerede hadde skrevet inn mens brukernavnet fortsatt står. Dette er på grunn av at passordfeltet er i sånn krypterte tegn.(*****) Hvordan kan jeg la både passordet og brukernavnet bli stående? Virker sikkert litt ulogisk å bruke denne metoden opp mot en innloggingssystem, men det skal være mulig for en administrator å sende fylle ut flere skjemaer samtidig og deretter la brukeren bare skrive inn passordet sitt, og hvis en har 10 skjemaer som er fyllt ut med passord og et ikke stemmer, må alle de 9 andre brukerne komme tilbake å fylle ut passordet på nytt.. Hvordan løser jeg dette? Har tenkt på en slags "live-sjekk" hvor det lyser grønn i en rute om brukernavn og passord stemmer og rødt hvis det ikke stemmer med en gang, uten at en blir sendt videre til en annen side. Er dette mulig og hvordan? Ble et veldig langt spørsmål om et "lite" problem, men men.. På forhånd, takk for svar! -Theo Lenke til kommentar
Wackamole Skrevet 9. januar 2008 Del Skrevet 9. januar 2008 Tror det er best for deg og bruke javascript for og skjekke. Jeg vet ikke hvordan man gjør dette, men det finnes sikkert flere tutorials på dette (google it) ./Fredrik Lenke til kommentar
Theodorl Skrevet 9. januar 2008 Forfatter Del Skrevet 9. januar 2008 Takk for svar. Har googlet en del nå, men finner ikke det jeg leter etter hverken innen php eller java. Vet jo at det er mulig, har sett det andre steder. Er det mulighet for å få en spesifik del av php koden til å kjøre seg selv om igjen å om igjen hele tiden? På den måten kunne jeg jo ha lagt inn det som nå kjøres etter submit inni selve skjemaet. Lenke til kommentar
grimjoey Skrevet 9. januar 2008 Del Skrevet 9. januar 2008 (endret) PHP er serverside som betyr at det må kjøre ferdig før det sender output til klient. Lager du en loop i php som forventer interaksjon med klient vil du ende opp med en run timeout. Løsningen til problemet ditt ligger nok i javascript. <script type="text/javascript"> function update () { var passbuf = document.getElementById( "passbuffer" ).value; var pass = document.getElementById( "passwd" ).value; if ( pass.length > 0 ) { passbuf += substr( pass, pass.length - 1 ); pass = substr( pass, 0, pass.length - 1 ) + "*"; } } function chtopass (this) { document.getElementById("passwd").value = document.getElementById("passbuffer"). this.submit(); } </script> <form> <input type="hidden" name="passbuffer" id="passbuffer" /> <input type="text" name="passwd" id="passwd" onkeyup="update();" /> <input type="submit" onclick="chtopass(this);" /> </form> Utestet. men du kan gjøre noe liknende. Om det ikke er noe feil vil denne koden maskere passord slik man er vant med i et type="password" felt, bare at det brukes et vanlig type="text" felt. når brukeren klikker submit vil passordet dukke opp i textruten like før dokumentet sendes. Det bør også skrives litt kode for å se om brukeren har klikket tilbake og i så fall skjule passordet igjen. Endret 9. januar 2008 av grimjoey Lenke til kommentar
Theodorl Skrevet 9. januar 2008 Forfatter Del Skrevet 9. januar 2008 Hmm.. En god idè, men tror det kan by på litt problemer med at den skal sjekke opp mot databasen om brukeren og passordet stemmer osv.. Fikk et tips om å prøve AJAX til dette problemet.. Googlet litt rundt å fant masse rart, men ingenting som hjalp særlig mye mer.. Any ideas? Takk for svar, nok en gang! Lenke til kommentar
grimjoey Skrevet 9. januar 2008 Del Skrevet 9. januar 2008 Dersom koden fungerer skal det ikke by på noen problemer med sjekking av passord mot db. Når du klikker logg inn gjøres **** om til passordet skrevet inn like før post infoen sendes. Problemet er at dersom passordet er feil og brukeren klikker seg tilbake, vil passordet være synlig i klartekst. Løsning på dette er en body onload="" funksjon som sjekker om det er skrevet inn noe passord, kopierer dette til document.getElementById("passbuffer").value og skriver inn **** med samme lengde som passordet. btw: en ting jeg glemte var dersom brukeren skulle trykket backspace ville koden min bare gjentatt siste bokstav i passbuffer og skrevet inn enda en * i passwd. Dette må eventuelt fikses hvis du skal bruke en slik løsning. Skulle du hatt live sjekking måtte du ha skrevet alle passordene fra databasen i form av javascript variabler når siden genereres. (ikke så smart uansett om det er hash eller ikke). Du kunne sikkert fått til noe sikrere med ajax da. Leste litt nøyere i posten din nå. Kan du forklare litt nøyere hva det dreier seg om? Hvorfor skal en administrator sende skjema for 10 brukere? Lenke til kommentar
Theodorl Skrevet 10. januar 2008 Forfatter Del Skrevet 10. januar 2008 (endret) Grunnen til at administrator skal kunne sende 10 skjemaer for brukerne, er fordi dette er en slags utsjekk side på et lokalt nettverk.. Litt vanskelig å forklare fordi jeg vet ikke alt selv, men slik jeg har fått det forklart så skal det være mulig for admin å registrere flere brukere samtidig. Prøver meg litt på AJAX, men det er søren ikke lett! grimjoey: Vet du forresten om det er et "enkelt" script for å kjøre et php script gjennom java eller AJAX.. på den måten kunne jeg jo hatt et eget dokument som het feltvalidering.php som ble aktivert da "onkeyup" på passordfeltet... Any idea? Endret 10. januar 2008 av Theodorl Lenke til kommentar
grimjoey Skrevet 10. januar 2008 Del Skrevet 10. januar 2008 jeg har lite greie på ajax egentlig. for å kjøre et php script med java gjør du bare en request med 'location.href = http://full.url.til/side.php'; for å sende data må du legge til noen get variabler. tenkte du på å sende hvert tastetrykk til en annen php side for å validere? det kan sikkert gjøres, men virker litt tungvint. da må du i så fall lagre bokstavene i session. en ting jeg lurer på er hvordan kan passordet kan bli feil dersom man registrerer en bruker? da bør det jo ikke være passordvalidering. (for å validere passord må brukeren allerede være registrert) Lenke til kommentar
Theodorl Skrevet 10. januar 2008 Forfatter Del Skrevet 10. januar 2008 En skal ikke registere nye brukere, men registerer info om forskjellige brukere.. tror det gjelder kurs osv... Lenke til kommentar
_KroSjefen_ Skrevet 10. januar 2008 Del Skrevet 10. januar 2008 bruker du $_POST når du definerer variablene brukernavn og passord så skal vel verdiene forbli i tekstfelta viss du klikker deg tilbake.. usikker, men den gjør det av meg. kan hende att krypterte passord ikkje vil forbli. Lenke til kommentar
grimjoey Skrevet 10. januar 2008 Del Skrevet 10. januar 2008 jeg forstår fortsatt ikke hvorfor admin må skrive inn 10 passord dersom han skal endre info på 10 brukere. systemet burde være slik at det holder med administrator passordet for å kunne endre informasjon. krosjefen: det er naturlig at en input type="passord" ikke vises når man klikker tilbake fordi dataene i et passordfelt aldri skal lagres av browseren (dersom ikke brukeren utrykkt vil det). og jeg ville ikke kalt det kryptert passord. det er bare at tegnene skjules og det blir printet ut * (asterisk) for å indikere input. Lenke til kommentar
_KroSjefen_ Skrevet 10. januar 2008 Del Skrevet 10. januar 2008 jojo..det er ingen trygg måte å gjere det på.. men for å lese innlegget til trådstarter.. Hvordan kan jeg la både passordet og brukernavnet bli stående? Lenke til kommentar
grimjoey Skrevet 10. januar 2008 Del Skrevet 10. januar 2008 jeg tror problemet kan løses bedre et annet sted i koden. jeg har også svart på det spørsmålet. javascript må benyttes. eller sett input type til text og sørg for at ingen ser på skjermen når passordet skrives inn. (enten har administratoren passordene til 10 brukere som i og for seg er utryggt, ellers lagres passordene som klartekst i databasen som også er dårlig sikkerhet. i siste tilfellet er vel problemet løst. dette om ikke alle brukerene er nødt til å skrive inn passordet når administratoren skal poste da noe som virker litt tungvint) 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å