askeie Skrevet 9. september 2007 Del Skrevet 9. september 2007 hei skal ha PHP - Brukersystem med innlogging men det som eg har prøvd verker ikke men er det nogen som kan hjelpe meg med det Lenke til kommentar
Zeph Skrevet 13. september 2007 Del Skrevet 13. september 2007 Denne tråden var feilpostet og er blitt flyttet til riktig kategori. Lenke til kommentar
v3g4rd Skrevet 14. september 2007 Del Skrevet 14. september 2007 (endret) Skal du bare ha noe basic uten skikkelig sikkerhet, er det letteste å benytte MySQL som database hvor brukernavnene og passordene er lagret, og at du bruker php-sessions for å validere brukerne på php-sidene dine. edit: enda enklere: lagre brukernavnene og passordene i et php-skript Endret 14. september 2007 av v3g4rd Lenke til kommentar
askeie Skrevet 15. september 2007 Forfatter Del Skrevet 15. september 2007 eg skal ha me sikerhet Lenke til kommentar
nree Skrevet 15. september 2007 Del Skrevet 15. september 2007 (endret) mySQL: CREATE TABLE `brukere` ( `id` INT( 6 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `brukernavn` VARCHAR( 50 ) NOT NULL , `passord` VARCHAR( 50 ) NOT NULL ) ENGINE = MYISAM ; PHP: <?php ob_start(); session_start(); $a = $_GET['a']; // Variabler for mySQL $mysql_host = "localhost"; $mysql_user = "brukernavn"; $mysql_pass = "passord"; $mysql_db = "databasenavn"; // Kobler til databasen $link = mysql_connect ($mysql_host, $mysql_user, $mysql_pass) or die("Feil x01"); if(!mysql_select_db ($mysql_db)) { die("Feil x02"); } // Script for utlogging ( link til: filnavn.php?a=loggut ) if($a == "loggut") { if(session_destroy()) { echo("Vellykket utlogging"); } else { echo("En feil oppstod!"); } } // Script for innlogging elseif(!empty($_POST['submit'])) { // Beskyttelse $post_brukernavn = htmlspecialchars(strip_tags($_POST['brukernavn'])); $post_passord = htmlspecialchars(strip_tags($_POST['passord'])); // Sjekker om det er fylt inn noe i tekstfeltene if(empty($post_brukernavn)) { $error_msg = "<p>- Brukernavn</p>"; } if(empty($post_passord)) { $error_msg .= "<p>- Passord</p>"; } if(!empty($error_msg)) { echo("Du må fylle ut alle felt! Felt som ikke er fylt ut: <p>$error_msg</p>"); } else { // Spør databasen om brukernavnet finnes $mysql_sporring = "SELECT * FROM brukere where brukernavn='$post_brukernavn'"; $resultat = mysql_query($mysql_sporring); if (mysql_affected_rows() == 0) { echo "Brukernavnet du oppgav finnes ikke!"; } else { $row = mysql_fetch_array($resultat); // Sjekker passordet og omgjør til md5 om passordet i databasen er 32 tegn. $bruker_passord = $row['passord']; if(strlen($bruker_passord) == 32) { $post_passord = md5($post_passord); } if($bruker_passord !== $post_passord) { echo("Passordet for brukeren \"<i>$post_brukernavn</i>\" er feil!"); } else { // Setter innlogget session og sender brukeren til "sikker side" $_SESSION['brukernavn'] = $post_brukernavn; header('Location: innlogget.php'); } } } } // Skriver ut innloggings felt else { echo "<form action=\"\" method=\"post\"><table> <tr><td>Brukernavn:</td><td><input type=\"text\" name=\"brukernavn\" size=\"20\" /></td></tr> <tr><td>Passord:</td><td><input type=\"password\" name=\"passord\" size=\"20\" /></td></tr> <tr><td></td><td><input type=\"submit\" name=\"submit\" value=\"Logg inn\" /></td></tr> </table></form>"; } ?> De sikre sidene bør legges opp slik: <?php session_start(); if(!empty($_SESSION['brukernavn'])) { ?> Hemmelig HTML kode kun for innlogget.. (kan også legges til php her da..) <?php } ?> Ikke testet men tror det skal fungere. Om du vil ha ekstra sikkerhet setter du inn md5 kryptert passord i databasen. Håper du fikk noe ut av dette Anders Endret 15. september 2007 av goggen90 Lenke til kommentar
askeie Skrevet 15. september 2007 Forfatter Del Skrevet 15. september 2007 skal ha med att folk kan registrere bruker Lenke til kommentar
nree Skrevet 16. september 2007 Del Skrevet 16. september 2007 (endret) <?php ob_start(); session_start(); // Variabler for mySQL $mysql_host = "localhost"; $mysql_user = "brukernavn"; $mysql_pass = "passord"; $mysql_db = "databasenavn"; // Kobler til databasen $link = mysql_connect ($mysql_host, $mysql_user, $mysql_pass) or die("Feil x01"); if(!mysql_select_db ($mysql_db)) { die("Feil x02"); } // Sjekker om brukeren allerede er innlogget if(empty($_SESSION['brukernavn'])) { // Script for registrering if(!empty($_POST['submit'])) { // Beskyttelse $post_brukernavn = htmlspecialchars(strip_tags($_POST['brukernavn'])); $post_passord = htmlspecialchars(strip_tags($_POST['passord'])); // Sjekker om det er fylt inn noe i tekstfeltene if(empty($post_brukernavn)) { $error_msg = "<p>- Brukernavn</p>"; } if(empty($post_passord)) { $error_msg .= "<p>- Passord</p>"; } if(!empty($error_msg)) { echo("Du må fylle ut alle felt! Felt som ikke er fylt ut: <p>$error_msg</p>"); } else { $post_passord = md5($post_passord); // Legger til brukeren i databasen $mysql_sporring = "insert into brukere set brukernavn='$post_brukernavn', passord='$post_passord'"; $resultat = mysql_query($mysql_sporring); // Sjekker resultatet if($resultat) { echo("Din bruker ble opprettet, du kan nå logge inn!"); } else { echo("Feil x03"); } } } // Skriver ut registrerings felt else { echo "<form action=\"\" method=\"post\"><table> <tr><td>Brukernavn:</td><td><input type=\"text\" name=\"brukernavn\" size=\"20\" /></td></tr> <tr><td>Passord:</td><td><input type=\"password\" name=\"passord\" size=\"20\" /></td></tr> <tr><td></td><td><input type=\"submit\" name=\"submit\" value=\"Registrer\" /></td></tr> </table></form>"; } } else { echo "Du er allerede innlogget!"; } ?> Om du studerer begge scriptene lærer du hvordan du henter ut ting fra databasen og hvordan du setter inn. Endret 29. september 2007 av goggen90 Lenke til kommentar
Runar Skrevet 16. september 2007 Del Skrevet 16. september 2007 skal ha med att folk kan registrere bruker 9503176[/snapback] Hurra, en fremmed fyr brukte en del av tiden sin på å lage et flott brukerscript til meg helt gratis! Oj, han skrev en registrerings-del også! Det minste jeg kan gjøre er å si tusen takk! mode> Lenke til kommentar
ThaDuckMan Skrevet 23. september 2007 Del Skrevet 23. september 2007 (endret) Klikk for å se/fjerne innholdet nedenfor <?php ob_start(); session_start(); // Variabler for mySQL $mysql_host = "localhost"; $mysql_user = "brukernavn"; $mysql_pass = "passord"; $mysql_db = "databasenavn"; // Kobler til databasen $link = mysql_connect ($mysql_host, $mysql_user, $mysql_pass) or die("Feil x01"); if(!mysql_select_db ($mysql_db)) { die("Feil x02"); } // Sjekker om brukeren allerede er innlogget if(empty($_SESSION['brukernavn'])) { // Script for registrering if(!empty($_POST['submit'])) { // Beskyttelse $post_brukernavn = htmlspecialchars(strip_tags($_POST['brukernavn'])); $post_passord = htmlspecialchars(strip_tags($_POST['passord'])); // Sjekker om det er fylt inn noe i tekstfeltene if(empty($post_brukernavn)) { $error_msg = "<p>- Brukernavn</p>"; } if(empty($post_passord)) { $error_msg .= "<p>- Passord</p>"; } if(!empty($error_msg)) { echo("Du må fylle ut alle felt! Felt som ikke er fylt ut: <p>$error_msg</p>"); } else { $post_brukernavn = md5($post_brukernavn); // Legger til brukeren i databasen $mysql_sporring = "insert into brukere set brukernavn='$post_brukernavn', passord='$post_passord'"; $resultat = mysql_query($mysql_sporring); // Sjekker resultatet if($resultat) { echo("Din bruker ble opprettet, du kan nå logge inn!"); } else { echo("Feil x03"); } } } // Skriver ut registrerings felt else { echo "<form action=\"\" method=\"post\"><table> <tr><td>Brukernavn:</td><td><input type=\"text\" name=\"brukernavn\" size=\"20\" /></td></tr> <tr><td>Passord:</td><td><input type=\"password\" name=\"passord\" size=\"20\" /></td></tr> <tr><td></td><td><input type=\"submit\" name=\"submit\" value=\"Registrer\" /></td></tr> </table></form>"; } } else { echo "Du er allerede innlogget!"; } ?> Om du studerer begge scriptene lærer du hvordan du henter ut ting fra databasen og hvordan du setter inn. 9504364[/snapback] Nå har ikke jeg deltatt i det emnet eller noe fra før, men Goggen: Dette var kjempe flott at du brukte tid på for å både lære og hjelpe en u-erfaren person i PHP. Poeng til deg!! Endret 30. september 2007 av Zeph Lenke til kommentar
Runar Skrevet 23. september 2007 Del Skrevet 23. september 2007 Hvorfor bruke md5() på brukernavnet, Goggen? Trodde det var vanlig å kryptere passordet, ikke brukernavnet. Lenke til kommentar
MirusMentis Skrevet 25. september 2007 Del Skrevet 25. september 2007 (endret) Dette så kjempebra ut, og godt kommentert!! Dum som jeg er så lurer jeg på hva som skjer om jeg registrerer to brukere med samme brukernavn? Burde vi ikke sjekke om det allerede finner en bruker med dette navnet? Lurer litt på denne: form action=\"\" Er det en gyldig action? trodde man måtte ha et filnavn der jeg. Endret 25. september 2007 av rwd-drifter Lenke til kommentar
v3g4rd Skrevet 26. september 2007 Del Skrevet 26. september 2007 Lurer litt på denne: form action=\"\" Er det en gyldig action? trodde man måtte ha et filnavn der jeg. 9575940[/snapback] Så lenge du ikke skriver noe der, referer den til den gjeldende siden i stedet. Har ikke møtt på noen browsere til nå som ikke er kompatibel med den måten å gjøre det på.. Lenke til kommentar
Ståle Skrevet 26. september 2007 Del Skrevet 26. september 2007 Kan jo evnt bruke $_SERVER['PHP_SELF'] Lenke til kommentar
nree Skrevet 29. september 2007 Del Skrevet 29. september 2007 (endret) Hvorfor bruke md5() på brukernavnet, Goggen? Trodde det var vanlig å kryptere passordet, ikke brukernavnet. <{POST_SNAPBACK}> Rett og slett bare en feil fra min side, rettet opp nå Dette så kjempebra ut, og godt kommentert!! Dum som jeg er så lurer jeg på hva som skjer om jeg registrerer to brukere med samme brukernavn? Burde vi ikke sjekke om det allerede finner en bruker med dette navnet? <{POST_SNAPBACK}> Takk Burde sjekkes om det finnes fra før ja, siden om man registrerer en bruker med samme navn vil det bli den nyeste som blir sjekket (uten justeringer).. Nå har ikke jeg deltatt i det emnet eller noe fra før, men Goggen: Dette var kjempe flott at du brukte tid på for å både lære og hjelpe en u-erfaren person i PHP. Poeng til deg!! <{POST_SNAPBACK}> Fint at folk setter pris på det Endret 18. oktober 2007 av Goggen90 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å