Gå til innhold

Søke I matrise etter angitt bruker/pass


Anbefalte innlegg

Skrevet (endret)

Hei,

er forholdsvis ny i PHP, så jeg er forsatt på lærestadiet.

 

Det jeg lurer på er følgende:

 

Jeg holder på å utvikle et passord script hvor besøkende må oppgi både

brukernavn og passord for å bli logget inn.

 

Dette greier jeg fint dersom jeg kun har en bruker og passord, men dersom jeg vil ha flere brukere får jeg problemer.

 

Det jeg vil er at det skal søkes gjennom matrisen om det finnes verdier med samme verdi som blir skrevet inn av besøkende.

 

Har på følelsen dette ble rotete men scriptet skal se slik ut:

 

<?php
$bruker=$_POST['bruker'];
$pass=$_POST['pass'];

$brukeren= array ("Superman",
                       "Barbie");
$passordet= array ("abc22",
                            "knvs901");


//IF Syntax her...
// Hvordan søke gjennom $brukeren og $passordet etter matchende verdier?
?>

 

Takker for all hjelp. Er veldig noob, vil bli bedre :)

Endret av erixz
Videoannonse
Annonse
Skrevet (endret)

Har akkurat laget en kode til det:

<?php
$navn = $_POST['navn']; //brukernavnet som skrives inn
$pass = $_POST['submit']; //passordet som skrives inn
$submit = $_POST['submit']; //Det submitkanppen heter

$bruker['et brukernavn'] = 'et passord';
$bruker['et brukernavn2'] = 'et passord2';
$bruker['et brukernavn3'] = 'et passord3';

if (isset($submit)){
if ($bruker[$navn] == $pass){
echo 'Du er logget inn';
}else{
echo 'du er ikke logget inn';
}
}
?>

 

Håper den hjalp

Endret av AlecTBM
Skrevet

Skjønner ikke hva som skjer her: (forklar)

$bruker['et brukernavn] = 'et passord';
$bruker['et brukernavn2] = 'et passord2';
$bruker['et brukernavn3] = 'et passord3';

Skrevet


$bruker['et brukernavn] = 'et passord';
$bruker['et brukernavn2] = 'et passord2';
$bruker['et brukernavn3] = 'et passord3';

 

Jo.

Dette er en type array som man selv bestemer navnet til.

i steden for $bruker['0'] og sånt.

 

Det er listen over brukere si at brukernavnet er Superman og passordet er abc22

 

da blir array-et slik:

$bruker['Superman'] = 'abc22';

 

håper dette opplyste deg

Skrevet

$bruker['et brukernavn] = 'et passord';
$bruker['et brukernavn2] = 'et passord2';
$bruker['et brukernavn3] = 'et passord3';

6658444[/snapback]

Forresten skal det være:

 


$bruker['et brukernavn'] = 'et passord';
$bruker['et brukernavn2'] = 'et passord2';
$bruker['et brukernavn3'] = 'et passord3';

Skrevet (endret)

Men dette funker vel ikke?

Verdien som blir lagret i $bruker heter jo bare "array".

 

Vet jeg må ta i bruk foreach, men hvordan bruke den i dette tilfelle? :S

 

Hvordan kan dette gå? - Som sagt, jeg er noob :p

Endret av erixz
Skrevet

Du trenger ikke bruke foreach hvis du gjør som Alec prøver å si her. Ta denne kodesnutten:

 

// Henter ned POST-variabler (som du har sendt med et skjema)
$navn = $_POST['navn'];     // Brukernavnet som skrives inn
$pass = $_POST['passord'];  // Passordet som skrives inn
$submit = $_POST['submit']; // Det submitkanppen heter

// Bruker-arrayet ditt
$bruker['erixz'] = 'olebrum';
$bruker['alectbm'] = 'donaldduck';
$bruker['gozzer'] = 'mikkemus';

// Sjekker om siden lastes med skjemadata
if (isset($submit)){
  
  // sjekker om brukernavnet finnes i arrayet, 
  // og om passordet stemmer med den oppføringen
  if ($bruker[$navn] == $pass){
     echo 'Du er logget inn';
     // her vil du nok ønske å sende kisen til en ny side, 
     // eller sette litt sesjon-variabler
  } else {
     echo 'du er ikke logget inn';
  }
}

 

Vil tro at det skal fungere ganske så bra, hvis du har en side med et skjema (la oss kalle den login.php). I skjemaet har du felt med navn "navn" og "passord", og en knapp med navn "submit".

 

Skjemaet skal kalle på seg selv (login.php), og koden ovenfor kan pr. nå står hvor som helst i html-en din, men bør vel i fremtiden (uten echo) stå over <head> elementet.

 

Bare prøv å lag en side som passer beskrivelsen, og se hvordan det går. Går det galt, får du i samme slengen et mer spesifikt problem å spørre om hjelp om :-)

Skrevet

Den skal funke den der. Bruker den selv.

PS. Når du skriver echo $bruker så kommer det opp array ja.

 

Men hvis du skriver:

echo $bruker['erixz'];

Så får du opp passordet.

Skrevet

Hvordan gjør jeg slik at om man blir logget inn, startes det en cookie som gjør slik at man forblir på logget uten å gjøre noe i 10 min.

 

Når man trykk loggut blir cookien avsluttet.

 

Skjønner?

Skrevet

Fortell hvordan du gjør det med sessions, interessert i å lære mest mulig :)

Jeg skal ut nå, men setter pris på om du eller andre har forklart litt til jeg er tilbake :)

Skrevet

Når du bruker sessions må du har session_start() rett under <? i php fila, så når du har sjekket at bruker og pwd stemmer kan du sette $_SESSION['login']=$bruker['brukernavn']

 

Så på hver side der du vil at brukeren skal være innlogget så sjekker du om $_SESSION['login'] er satt og hva den er satt til

 

når du skal logge ut bruker du session_destroy()

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...