Her har jeg noen script som IKKE jeg står bak, men jeg trenger hjelp til å debugge dem:
Her er sjemaet til Registrering
Her er Scriptet
Men problemet er at kun det krypterte passordet legges i databasen, ingen annen info.
Loginn-Sjemaet
Her er scriptet (Disse funker helt fint etter å ha lagt info i DBn manuelt)
Her er innlogget.php (som jeg hadde tenkt skulle Includeres i alle filene)
Start.php (Men
funker ikke)
Kan noen hjelpe meg med SESSIONen og Registreringsscriptet?
HTML-kode
<form action="nybrukeraction.php" method="post"> Navn<br> <input type="text" name='navn' maxlenght="60"><br> Din e-mailadresse<br> <input type="text" name='epost' maxlenght="60"><br> Ønsket brukernavn<br> <input type="text" name='brukernavn' maxlenght="30"><br> Passord<br> <input type="password" name='passord' maxlenght="30"><br> Gjenta passord<br> <input type="password" name='gjentapassord' maxlenght="30"><br> <input type="submit" value="Registrer"> </form>
Kode
<?php if($_POST['navn'] && $_POST['epost'] && $_POST['brukernavn'] && $_POST['passord'] && $_POST['gjentapassord']) { $email_sjekk = ereg("^[^@ ()$#><;%*?&+='\{}æøåÆØÅ]+@[^@ ()$#><;%*?&+='\{}æøåÆØÅ]+\.[^@ ()$#><;*%?&+='\{}æøåÆØÅ\.]+$", $_POST['epost']); if($email_sjekk == "1") { //Sjekker om passordene er like, hvis de er like så går vi videre! if($_POST['passord'] == $_POST['gjentapassord']) { //Logger på databasen. Legg inn din egen info $hostname = "localhost"; $user = "*****"; $password = "*****"; $db = "*****"; $connection = @mysql_connect($hostname, $user, $password) or die("Umulig å få kontakt med database"); @mysql_select_db($db); //Sjekker om brukernavnet som er oppgitt finnes i databasen $sjekker_brukernavn = @mysql_query("SELECT brukernavn FROM brukere WHERE brukernavn='$_POST[brukernavn]'"); //Her går vi videre hvis ikke brukernavnet er likt med noen i databasen if(@mysql_num_rows($sjekker_brukernavn) == 0) { //Krypterer passordet $passord = crypt($_POST['passord']); //Legger inn all infoen i databasen $legger_inn_info = @mysql_query("INSERT INTO brukere (brukernavn, passord, navn, epost) VALUES ('$brukernavn', '$passord', '$navn', '$epost')"); //Hvis det ikke gikk å legge inn info så printer ut en feilmelding if(@mysql_affected_rows($legger_inn_info) == "0") { print("Det skjedde en feil i registreringen! Vennligst gå tilbake og prøv på nytt!"); } else { print("Alle dine info er nå lagt til i databasen. Du kan nå bruke loginnsidene uten hindringer!"); } } else { print("Det brukernavnet som du oppga finnes allerede i databasen. Gå tilbake og finn på ett annet!"); } } else { print("Passordene er ikke like! Gå tilbake og prøv på nytt!"); } } else { print("Emailadressen du oppga er ikke gyldig!<br>\n"); } } else { print("Du må fylle ut alle feltene for å komme videre"); } ?>
Men problemet er at kun det krypterte passordet legges i databasen, ingen annen info.
HTML-kode
<form action="logginnaction.php" method="post"> Brukernavn<br> <input type="text" name="brukernavn" maxlenght="30"><br> Passord<br> <input type="password" name="passord" maxlenght="30"><br> <input type="submit" value="Logg inn"> </form>
Kode
<?php if($_POST['brukernavn'] && $_POST['passord']) { //Logger på databasen. Legg inn din egen info $hostname = "localhost"; $user = "*****"; $password = "*****"; $db = "*****"; $connection = @mysql_connect($hostname, $user, $password) or die("Umulig å få kontakt med database"); @mysql_select_db($db); //Lager krypteringsfunksjonen function sjekker_pw($oppgitt, $lagret) { $salt = substr($lagret, 0, CRYPT_SALT_LENGTH); $oppgitt_kryptert = crypt($oppgitt, $salt); return($lagret == $oppgitt_kryptert); } //Sjekker brukernavn $sjekker_brukernavn = @mysql_query("SELECT brukerid,passord FROM brukere WHERE brukernavn='{$_POST['brukernavn']}'"); if(@mysql_num_rows($sjekker_brukernavn) == 0) { print("Feil brukernavn"); } else { //Får det krypterte passordet fra databasen $hentet_passord = @mysql_fetch_array($sjekker_brukernavn); //Sjekker om brukernavn og passord er likt if(!(sjekker_pw($_POST['passord'], $hentet_passord['passord']))) { print("Passordet var feil"); } else { //Lagrer passord og brukernavn i sessions session_start(); $_SESSION['innlogget'] = 1; $_SESSION['brukernavn'] = $brukernavn; $_SESSION['passord'] = $hentet_passord['passord']; //Sender brukeren videre til neste side header("Location: innlogget.php"); } } } else { print("Du må fylle ut både brukernavn og passord!"); } ?>
Kode
<?php session_start(); if($_SESSION['brukernavn'] && $_SESSION['passord']) { //Logger på databasen. Legg inn din egen info $hostname = "localhost"; $user = "*****"; $password = "*****"; $db = "*****"; $connection = @mysql_connect($hostname, $user, $password) or die("Umulig å få kontakt med database"); @mysql_select_db($db); //Sjekker passord og brukernavn med database $henter_bruker = @mysql_query("SELECT brukerid FROM brukere WHERE brukernavn='{$_SESSION['brukernavn']}' AND passord='{$_SESSION['passord']}'"); if(@mysql_num_rows($henter_bruker) == 0) { print("Feil brukernavn og/eller passord!"); } } else { include('start.php'); } ?>
Start.php (Men
Kode
<?php echo ($_SESSION['brukernavn']); ?>
Kan noen hjelpe meg med SESSIONen og Registreringsscriptet?