webby1 Skrevet 18. februar 2010 Del Skrevet 18. februar 2010 (endret) Har lagd et logginn-script i php som er tilkoblet mysql. Men scriptet bruker bare den første brukeren som er registrert i databasen. Hvordan kan scriptet logge seg inn på de andre brukerne i databasen enn bare en bruker om gangen? $tilkobling = mysql_connect("mysql.hosted.servetheworld.net", "", ""); //var_dump($tilkobling); mysql_select_db("toppspi_base", $tilkobling); $sql = "SELECT kontoid, bruker, passord, navn, yrke"; $sql .= " FROM kontoer ORDER BY bruker"; $resultat = mysql_query($sql, $tilkobling); while ($rad = mysql_fetch_array($resultat) ) { $bruker = $rad['bruker']; $passord = $rad['passord']; } ?> <?php if (isset($_POST['bruker']) == $bruker && ($_POST['passord']) == $passord ) { echo "Riktig"; } else { ?> <form action="" method="post"> <input type="text" name="bruker"> <input type="password" name="passord"> <input type="submit" name="login" value="Logg inn"> </form> <?php } ?> Endret 18. februar 2010 av webby1 Lenke til kommentar
webby1 Skrevet 18. februar 2010 Forfatter Del Skrevet 18. februar 2010 Takk for svar. Er helt ny i dette game, så lurte på hvordan man bruker WHERE til å oppnå tilgang til andre brukere? Lenke til kommentar
Gjest Skrevet 18. februar 2010 Del Skrevet 18. februar 2010 (endret) Du gjør slik: Velg bruker fra en tabel hvor brukernavn = post_brukernavn og passord = post_password. Vil bli noe slik i sql: SELECT SELECT kontoid, bruker, passord, navn, yrke FROM kontoer WHERE bruker = AND passord = Etter begge "="- tegnene skal du sette inn POST variablene fra det brukeren prøvde å logge inn med. Bare søk på google etter eksempler Endret 18. februar 2010 av Gjest Lenke til kommentar
Thomas. Skrevet 18. februar 2010 Del Skrevet 18. februar 2010 (endret) Noe sånt: <?php $tilkobling = mysql_connect("mysql.hosted.servetheworld.net", "", ""); //var_dump($tilkobling); mysql_select_db("toppspi_base", $tilkobling); $sql = "SELECT * FROM kontoer WHERE bruker = '" . $_POST['bruker'] . "' AND passord = '" . $_POST['passord'] . "'"; $resultat = mysql_query($sql, $tilkobling); while ($rad = mysql_fetch_array($resultat) ) { $bruker = $rad['bruker']; $passord = $rad['passord']; } ?> <?php if (isset($_POST['bruker']) == $bruker && ($_POST['passord']) == $passord ) { echo "Riktig"; } else { ?> <form action="" method="post"> <input type="text" name="bruker"> <input type="password" name="passord"> <input type="submit" name="login" value="Logg inn"> </form> <?php } ?> edit: for sein Endret 18. februar 2010 av Thomas. Lenke til kommentar
webby1 Skrevet 18. februar 2010 Forfatter Del Skrevet 18. februar 2010 Ah tusen takk! Lenke til kommentar
webby1 Skrevet 18. februar 2010 Forfatter Del Skrevet 18. februar 2010 (endret) Prøvde WHERE, men da ville ikke tekstboksene til innlogg komme opp. Kom rett inn. "Riktig" Endret 18. februar 2010 av webby1 Lenke til kommentar
webby1 Skrevet 19. februar 2010 Forfatter Del Skrevet 19. februar 2010 La merke til at AND ikke fungerer. All innhold blir borte med bruken av AND. Hva kan være grunnen til det? Lenke til kommentar
Runar Skrevet 20. februar 2010 Del Skrevet 20. februar 2010 La merke til at AND ikke fungerer. All innhold blir borte med bruken av AND. Hva kan være grunnen til det? Vis oss all kode du bruker. Det er nesten umulig å si hva som er feil uten å vite hva du faktisk har gjort. Lenke til kommentar
webby1 Skrevet 21. februar 2010 Forfatter Del Skrevet 21. februar 2010 (endret) <?php $tilkobling = mysql_connect("mysql.hosted.servetheworld.net", "", ""); //var_dump($tilkobling); mysql_select_db("toppspi_base", $tilkobling); $sql = "SELECT * FROM kontoer"; $sql .= " WHERE bruker='" . $_POST['bruker'] . "' AND passord='" . $_POST['passord'] . "'"; $resultat = mysql_query($sql, $tilkobling); while ($rad = mysql_fetch_array($resultat) ) { $bruker = $rad['bruker']; $passord = $rad['passord']; } ?> <?php session_start(); if (isset($_POST['knapp']) ) { //sjekk om brukernavn og passord er riktig if ($_POST['bruker'] == $bruker && $_POST['passord'] == $passord) { $_SESSION['navn'] = ucfirst($_POST['bruker']); $_SESSION['innlogget'] = true; echo "ja"; } else { //kaller opp siden på nytt igjen, dvs tvinger ny innlogging header("Location {$_SERVER['PHP_SELF']}"); exit; //hindrer at koden utføres på tross av redirect } } else { //skal vise i skjemaet ?> <h3>Du må logge deg inn</h3> <form action="<?= $_SERVER['PHP_SELF'] ?>" method="post"> <input type="text" name="bruker">Brukernavn<br> <input type="password" name="passord">Passord<br> <input type="submit" name="knapp" value="Logg inn"> </form> <?php } ?> Har skrevet en ny kode, men når jeg kobler mysql til logginn ($bruker og $passord) så kommer jeg rett inn uansett hva jeg skriver på tekstboksen. Det er bare slik, hvis man kobler til mysql. Hvis jeg legger inn brukernavn og passord i selve koden istedenfor variablene så fungerer innloggingen. Hva er det som er galt med koden? Endret 21. februar 2010 av webby1 Lenke til kommentar
Runar Skrevet 21. februar 2010 Del Skrevet 21. februar 2010 Akkurat, ja. Jeg er litt for opptatt til å feilsøke koden din, men jeg ville gjort det noe lignende dette: Merk at dette er veldig simpelt (ikke testet), og du bør ha flere kontroller, blant annet om noen av feltene er tomme, eller om de inneholder skadelige tegn. <?php $db = mysql_connect() // Koble til databasen if( isset( $_POST['knapp'] ) ) // Fortsett hvis knappen "knapp" er trykket { $result = mysql_query( "SELECT * FROM kontoer WHERE bruker = " . $_POST['bruker'] . " AND passord = " . $_POST['passord'] ); if( mysql_num_rows( $result ) > 0 ) // Fortsett hvis antall rader (brukere) returnert er mer 0 { // Lag ny session med brukernavn og diverse info } else { // Ingen brukere returnert, vis feilmelding eller whatever } } else { // Vis skjema } ?> Lenke til kommentar
webby1 Skrevet 22. februar 2010 Forfatter Del Skrevet 22. februar 2010 Nå ble problemet løst! Takk! En ting jeg lurer på er bruken av lenker i det interne innholdet. Lenke til flere sider som er interne uten å logge ut av brukeren. Noen som vet? Lenke til kommentar
Gjest Skrevet 22. februar 2010 Del Skrevet 22. februar 2010 Er ikke verre å lage en session, og på de interne sidene sjekke om session eksiterer eller ikke. Hvis session ikke eksiterer, redirect til login siden Lenke til kommentar
webby1 Skrevet 22. februar 2010 Forfatter Del Skrevet 22. februar 2010 Takk igjen! Hvordan begrenser man kolonner fra mysql? Lenke til kommentar
Runar Skrevet 22. februar 2010 Del Skrevet 22. februar 2010 Med "begrenser", mener du å kun hente X antall kolonner fra databasen, eller kun hente kolonnene A, B og C? Eller noe helt annet? Lenke til kommentar
webby1 Skrevet 22. februar 2010 Forfatter Del Skrevet 22. februar 2010 Ja, x antall kolonner fra f.eks overskrifter. Målet er å få 5 artikler på hver side. Lenke til kommentar
Runar Skrevet 22. februar 2010 Del Skrevet 22. februar 2010 (endret) SELECT * FROM table WHERE lorem = ipsum LIMIT 5 http://dev.mysql.com/doc/refman/5.1/en/select.html Hvis du vil hente ut artiklene 5 til 10, skriver du LIMIT 4, 5, hvor 4 sier hvilken rad du vil begynne på (regnes som 0, så neste tall, 5, blir første rad som hentes) og 5 er hvor mange rader som skal hentes. Endret 22. februar 2010 av Runar Lenke til kommentar
webby1 Skrevet 23. februar 2010 Forfatter Del Skrevet 23. februar 2010 (endret) Takk igjen! Holder på å lage redigeringsfunksjon av artikler, men sliter en del med å kombinere å hente tekst og publisere den nye teksten. Hva er den beste løsningen til dette? Endret 23. februar 2010 av webby1 Lenke til kommentar
Runar Skrevet 23. februar 2010 Del Skrevet 23. februar 2010 Takk igjen! Holder på å lage redigeringsfunksjon av artikler, men sliter en del med å kombinere å hente tekst og publisere den nye teksten. Hva er den beste løsningen til dette? Jeg ville gjort det på følgende måte: Hver artikkel vises sammen med en link for å redigere (/artikler/1/rediger) Nevnte side henter inn all data fra artikkelen basert på tallet i urlen (artikkelid) og fyller dette inn i et skjema Når skjemaet sendes (til en ny side eller samme, hvor det behandles er irrelevant) lagres dataene til artikkelen med samme ID Du må altså kjøre to spørringer (tre, hvis vi regner med den hvor du leser selve artikkelen): en for å hente all artikkeldata og en for å lagre. Var det noe lignende dette du tenkte på? Jeg kan komme med enkle kodeeksempler hvis det er ønskelig. Lenke til kommentar
webby1 Skrevet 23. februar 2010 Forfatter Del Skrevet 23. februar 2010 Ja, var noe slikt jeg tenkte på. Vil gjerne se noen kodeeksempler. 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å