Gå til innhold

Hindre flere felt med samme verdi +Innloggingsfunksjoner


Anbefalte innlegg

Hei, jeg har laget ett felt for å registrere seg, og ett for å logge inn på siden min. Slik det er nå kan man regisrtere seg med samme informasjon flere ganger, slik at det blir lange lister med eks Per Hansen hvor hver enkelt Per har ulike passord.

 

1. Hvordan forhindrer man at det blir lagt inn flere brukere med samme informasjon?

EDIT: Fikset med en funksjon i Dreamweaver. Insert-->dataobjects-->user authentication

 

2. Hvordan legger man til en pop-up boks som dukker opp når man skriver inn allerede brukt navn? Informasjonen i feltetene bør nullstilles etterpå

EDIT: ikke viktig lengre

 

3. Kan man på en enkel måte få en pop-up, eller beskjed når man skriver feil innloggingspassord eller brukernavn?

EDIT ikke viktig lengre

 

4. Hvordan får man til at når du har logget inn får du status som innlogget og dermed bestille varer i ditt navn? (Bare fiktivt)

Endret av Pettersenper
Lenke til kommentar
Videoannonse
Annonse

På spørsmål 1 er svaret at du må bruke en unik nøkkel/indeks på feltet hvor vil ha unike verdier. Da vil ikke databasen godta at du legger inn verdier på nytt. Du kan også spesifisere at det ikke skal tillates nullverdier. Hvis det passer seg slik i forhold til resten av databasen kan du definere brukernavn som primærnøkkel, da får du automatisk en unik indeks på feltet, og det tillates heller ikke nullverdier.

 

De andre spørsmålene får du sikkert bedre svar på i en gruppe som har med programmering i det språket du bruker å gjøre, hva nå det måtte være ;-)

Lenke til kommentar

Hvordan ser registeringsskjemaet ut?

Fornavn og etternavn? Flere kan hete akkurat det samme, men hvis du f.eks bruker fødselsnummer er det ikke noe problem.

 

F.eks i PHP:

$query = "SELECT * FROM users WHERE identification = '$persnr'";
$query = mysql_query($query) or die(mysql_error());

$num_row = mysql_num_rows($query);

/* Er tallet større enn 0 har noen registrert seg med personnummeret */

if($num_row > 0){
     echo "En bruker med dette personnummeret er allerede registrert!\n";
     exit;
}
else{
     blablabla
}

  • Liker 1
Lenke til kommentar

Jeg er ikke helt sikker på hva jeg skal skrive for å legge det inn i det vi allerede har.

 

Vi bruker automatisk generert kundenummer som fremmednøkkel. Epostadresse er brukernavn


if (isset($_POST['Brukernavn'])) {
 $loginUsername=$_POST['Brukernavn'];
 $password=$_POST['Passord'];
 $MM_fldUserAuthorization = "";
 $MM_redirectLoginSuccess = "Loggetinn.php";
 $MM_redirectLoginFailed = "Feilbruker.php";
 $MM_redirecttoReferrer = false;
 mysql_select_db($database_Nettbutikk, $Nettbutikk);

 

Dersom man skriver inn feil passord har vi nå fått til at man går man videre til en side der det står at du skrev inn feil passord, og du må skrive inn på nytt, men det ser ut som i din kiode at man slipper å videresende til en ny side?

Endret av Pettersenper
Lenke til kommentar

Jeg er ikke helt sikker på hva jeg skal skrive for å legge det inn i det vi allerede har.

 

Vi bruker automatisk generert kundenummer som fremmednøkkel. Epostadresse er brukernavn


if (isset($_POST['Brukernavn'])) {
 $loginUsername=$_POST['Brukernavn'];
 $password=$_POST['Passord'];
 $MM_fldUserAuthorization = "";
 $MM_redirectLoginSuccess = "Loggetinn.php";
 $MM_redirectLoginFailed = "Feilbruker.php";
 $MM_redirecttoReferrer = false;
 mysql_select_db($database_Nettbutikk, $Nettbutikk);

 

Man trenger ikke å videresende nei. Er bare å bruke isset :)

Eksempel kan være:

 

if(isSet($_SESSION['Bruker']))
{
header("Location: Hovedsiden.php");
exit;
}
if(isset($_POST['Brukernavn']) && isset($_POST['Passord'])){
    $username = stripslashes($_POST['Brukernavn']);
    $passord = stripslashes($_POST['Passord']);

    /*Hvis du bruker kryptering av passord*/
    $passord = SHA1($passord);

    $username = mysql_real_escape_string($username);

    $query = "SELECT * FROM users WHERE Username = '$username' AND Passord = '$password'";
    $query = mysql_query($query) or die(mysql_error());
    $num_row = mysql_num_rows($query);

    if($num_row == 1){
    /*Create session*/

         $_SESSION['Bruker'] = username;
         echo "Du er nå innlogget. Sender deg videre...\n";
         echo '<meta HTTP-EQUIV="REFRESH" content="2; url=http://www.url.url/Hovedsiden.php">';
    }
    else{ 
         echo "Det oppsto en feil ved innloggingen, vennligst sjekk brukernavn og passord.\n";
         exit;
}
}

/* Her kan du f.eks lage en sjekk for å se om bare et av feltene er fyllt ut (brukernavn og passord). */



/*Og nederest kan du lage login-form, bare sett at når man trykker submit sendes man videre til denne siden. */

 

Edit: Men anbefaler å gjøre det på den måten at man blir videresendt. Men hver sin smak :)

Endret av Nickless
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...