Just nu i M3-nätverket
Gå till innehåll

Inloggning med IF-sats


Castor_Fiber

Rekommendera Poster

Jag söker efter en enkel inloggningsfunktion i PHP..

 

Där det endast finns ett användarnamn & lösenord skrivet direkt på sidan, alltså ingen databas behövs.. OM man kan fylla i hur många användarnamn & lösenord som helst, manuellt är ju ett önskemål.. Alltså bara stapla upp giltliga användarnamn och lösenord. (Det kommer max vara 50 slutna användare..)

 

Så kortfattat...

 

 

IF

 

"Användarnamnet+lösenord stämmer"

 

Där händer detta... XXXXXXXXXX

 

ELSE

 

Då händer detta...

 

SLUT

 

 

Detta är väl rätt enkelt, kan det i ASP, men behöver det i PHP som jag aldrig jobbat i men nu MÅSTe jag ha det.. Så finns det någon vänligt sinnad själ som kan guida mig till detta.. Gärna med en fin kod att modifiera.. Tack!

 

Länk till kommentar
Dela på andra webbplatser

Om en del av koden ser ut som såhär...

Där man fyller i användarnamn och lösenord..

Kan man här då lägga till flera olika användarnamn och lösenord..

 

<?php

 

session_start();

 

$anvandarID = "anvnamn";

$losenord = "losen";

 

if (isset($_POST["anvandarID"]) && isset($_POST["losenord"])) {

 

 

Hur ställer man in hur lång timeouten för sessionen ska vara? Vad är default? Om det finns någon sån?

 

Hur hämtar man bäst användarnamnet? Alltså jag vill ha användarnamnet i textform..?

 

Länk till kommentar
Dela på andra webbplatser

Du kan ju skapa en två-dimensionell array och sen loopa igenom den.

I arrayn har du både användarnamn och lösenordet.

Så kolla upp två-dimensionella arrayer.

 

Länk till kommentar
Dela på andra webbplatser

Räcker med en dimension:



$login['ada'] = 'hemlit';
$login['beda'] = 'hemlikt';
$login['cedra'] = 'hämligt';
$login['dedra'] = 'hämlitt';

session_start();

if (isset($_POST['user'])) {
 if (!isset($login[$_POST['user']])) {
    echo '<p>Felaktig användare.</p>';
    exit;
 }

 if ($login[$_POST['user']] != $_POST['password']) {
     echo '<p>Felaktigt lösenord.</p>';
     exit;
 }

 echo '<p>Du är nu inloggad!</p>';
 $_SESSION['user'] = $_POST['user'];
}

if (isset($_SESSION['user'])) {
 //inloggad
} else {
 //inte inloggad
}

 

Länk till kommentar
Dela på andra webbplatser

Men är det så bra att ge besked på Vad det är som inte stämmer!?

Hade man kunnat kolla båda på en gång så kan bara ge beskedet att det inte gick. Då är risken mindre att dem kan krascha sidan för att "luska" ut vad som är felet.

 

Men den kollen kan man kanske även göra i en enkel array!?

php är ju inte min "grej" på det viset :)

 

[inlägget ändrat 2007-10-19 11:27:28 av Micke_skane]

Länk till kommentar
Dela på andra webbplatser

Utskriferna var mer menade som beskrivningar av vad som händer, snarare än något man skulle använda i verkligheten. Man skulle lika gärna kunna säga "Felaktig inloggning" i båda fallen, eller slå ihop kollarna:

 

if (!isset($login[$_POST['user']]) 
              || ($login[$_POST['user']] != $_POST['password'])) {

 

Det är en avvägning om man ska informera om att användarnamnet är felaktigt. Det underlättar för användare, men det är i vissa situationer inte önskvärt att folk lätt kan testa om ett användarnamn existerar eller inte (exempelvis: om man kan skicka meddelanden till användare, så kan det användas av spammare).

 

När det gäller många webbplatser (tänk forum osv) så visas ändå användarnamnen öppet. Så, det är inte speciellt svårt att få tag på ett existerande användarnamn. Dessutom så kan man ofta lätt testa om ett användarnamn finns genom att prova att registrera det. Man får ofta väldigt tidigt en hjälpsam varning om att användarnamnet man försöker registrera är upptaget.

 

Däremot ska inte användnamnet användas som ett "andra lösenord". Man ska inte bygga upp sin säkerhet kring att användarnamn är svåra att lista ut -- inte minst för att användare oftast inte betraktar användarnamn som hemligheter.

 

Länk till kommentar
Dela på andra webbplatser

Snyggt... Tack...

 

Kunde man hämta ut användarnamnet från sessionen, och hur gör man?

 

Länk till kommentar
Dela på andra webbplatser

Om man ska ha flera användare med denna koden, hur går man till väga då?

 

 

session_start();  

$anvandarID = "typ_användarnamn"; 
$losenord = "typ_lösen"; 

if (isset($_POST["anvandarID"]) && isset($_POST["losenord"])) {  

   if ($_POST["anvandarID"] === $anvandarID && $_POST["losenord"] === $losenord) {  

   $_SESSION["inloggning"] = true;  

   header("Location: index.php");  
   exit;  
   }  

       else {$felmeddelande = "Du har angivit fel användarnamn eller lösenord!";}  

} 

 

Länk till kommentar
Dela på andra webbplatser

$losenord['typ_användarnamn'] = 'typ_lösen';
$losenord['typ_användarnamn2'] = 'typ_lösen2';
$losenord['typ_användarnamn3'] = 'typ_lösen3';

if (isset($_POST["anvandarID"]) && isset($_POST["losenord"])) {

if (isset($losenord[$_POST["anvandarID"]]) && $losenord[$_POST["anvandarID"]] === $_POST['losenord']) { 
//...osv...

[inlägget ändrat 2007-10-19 13:10:35 av zerblat]

Länk till kommentar
Dela på andra webbplatser

Det borde ju funka, ska pröva det senare, men kan man på något sätt (tredje gången gillt jag frågar..) hämta ut användarnamnet från sessionen? på en annan sida..?

 

Länk till kommentar
Dela på andra webbplatser

Nej, absolut inte, och det var ingen "tonläge" heller...

 

Bara det andra frågade det tre gånger och inget svar på om det ens går.. Därför... Tack! ;)

 

Länk till kommentar
Dela på andra webbplatser

Försökte hitta det jag sökte, men när jag inte vet direkt vad jag söker blir det väldigt svårt.. Totalt newbie på PHP, hållt på med ASP innan.. Så kan du hjälpa mig är jag ytterst tacksam..

 

Länk till kommentar
Dela på andra webbplatser

Tackar.. Poäng te dig!

 

Men hur som helst, hittade ett snyggt exempel på "Pellesoft" som jag gillade...

 

Men behöver ju flera olika användare, det har jag då inte lärt mig hur man gör...

 

 

$username = "11111"; //användarnamn
$password = "22222"; //lösenord

if(isset($_POST["frm_user"]) && isset($_POST["frm_pass"]))
{

   if($_POST["frm_user"] == $username && $_POST["frm_pass"] == $password)
   {

       session_start();

           $userid = $username;
           session_register("userid");

           header("Location: index_online.php");

   } else {

       header("Location: login.php"); 
   }

} else {

   header("Location: index.login");
}

 

 

Jag behöver dock kunna hämta användarnamnet senare genom ...

 

 

session_start();

if(!(session_is_registered(''userid'')))
{
   header("Location: login.php");
}

<?=$_SESSION["userid"];?>

 

 

Är det möjligt att ha flera olika användarkonton genom den koden?

 

(För vad jag förstår så funkar det inte att bara plocka ut användarnamnet, utan att få med lösenordet, ur den andra koden.. Eller har jag fel där?)

 

Tack igen..

 

[inlägget ändrat 2007-10-23 22:19:06 av Castor_Fiber]

Länk till kommentar
Dela på andra webbplatser

Det borde inte vara några problem att hämta ut det man vill ha.

Orkar just inte nu att kolla mer på det, kanske i morgon.

 

Tack för poängen :thumbsup:

 

Länk till kommentar
Dela på andra webbplatser

Jag hade skapat en två-dimesionell array med användarnamn och lösenord.

Sen kollar du bara så att både position1 och position2 stämmer med det man knappat in.

 

Om man lyckats logga in så spara användarnamnet i Session-variabeln.

Sen ska det bara vara att använda den där man vill, på vilken sida som helst.

 

Länk till kommentar
Dela på andra webbplatser

Jo, det verkar ju vettigt, men med min icke befitliga PHP-kunskap blir det svårt.. Förstår hur jag ska bygga upp det men kan inte den exakta koden..

 

:S

 

Länk till kommentar
Dela på andra webbplatser

Har inte direkt någon tid til Eforum men om du kollar på:

http://se.php.net/types.array

 

så hittar du längre mer info.

Annars är där väl någon annan som får tid över och visar dig.

(orkar bara visa små, enkla saker för tillfälligt)

 

 

Länk till kommentar
Dela på andra webbplatser

Skrev ett långt inlägg igår om hur jag löst det och visade upp exekt hur, men självklart så blev det fel på sidan.. :( Men allt e löst, tack så mycket för hjälpen!

 

Länk till kommentar
Dela på andra webbplatser

Visa gärna igen för där kna vara andra som söker på samma "problem".

Kul att Du löste det själv :thumbsup:

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...