Permalänk

PHP-fråga

Till att börja med: Ni behöver inte länka till någon annan php-sida,
såvida den inte belyser exakt mitt problem. Jag förstår att jag
kan läsa olika guider och lära mig att skriva ihop det själv. Men det har
jag varken tid eller lust för, så jag rådfrågar er istället;

Hur gör jag detta?

Sida1 innehåller ett formulär - användarnamn och lösenord. När man
klickar på en knapp skickas man till sida2.

Sida2 tillåter bara att sidan visas om man har angivit rätt namn/lösen.

Namn och lösenord kan jag lagra manuellt, det är inga mängder av
användare som kommer finnas - därför behöver jag ingen databas, om
det går att lösa utan.

Tack på förhand!

Visa signatur

Jesus walks!

Permalänk
Medlem

Sida1

<form method="post" action="sida2"> <input type="text" name="namn" /> <input type="password" name="pass" /> <input type="submit" value="Logga in" /> </form>

Sida2

$anvandare = array('namn1' => 'losen1', 'namn2' => 'losen2', 'namn3' => 'losen3' osv); foreach ($anvandare as $namn => $pass) if ($namn == $_POST['namn'] && $pass == $_POST['pass']) { $inloggad = $namn; break; } if ($inloggad) echo "Du är inloggad som: $inloggad";

Något sådant kan man göra.

edit: Tillåt mig småle Squeeze.

Permalänk
Medlem

Hehe, missuppfattade frågan. Tog bort skiten

Visa signatur

rm -rf *.blog

Permalänk

Tack så jättemycket!

Följdfråga;

Om jag sedan länkar till sida3 från sida2 - hur gör jag för att hålla icke-inloggade utanför sida3?

Visa signatur

Jesus walks!

Permalänk
Medlem

Du får sätta en session variabel på sida2 om man lyckas logga in, och på sida3 kollar du om denna session variabel är satt eller inte. Om session variabeln inte är satt kör du:
die("Not logged in")
eller liknande.

Visa signatur

The difference between stupidity and genius - the latter has limits

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Duff McKagan
Tack så jättemycket!

Följdfråga;

Om jag sedan länkar till sida3 från sida2 - hur gör jag för att hålla icke-inloggade utanför sida3?

Hurpass säkert vill du ha det? Jag tycker du ska sätta en session på sida2 och kolla efter det på sidaN

Visa signatur

Brass knuckles and a 2x4

Permalänk
Medlem

Jag bygger vidare på mitt script:

sida2

session_start(); // Måste ligga överst INNAN all output! $anvandare = array('namn1' => 'losen1', 'namn2' => 'losen2', 'namn3' => 'losen3' osv); foreach ($anvandare as $namn => $pass) if ($namn == $_POST['namn'] && $pass == $_POST['pass']) { $inloggad = $namn; break; } if ($inloggad || $_SESSION['inloggad']) { if (!$_SESSION['inloggad']) $_SESSION['inloggad'] = $inloggad; echo "Du är inloggad som: $_SESSION[inloggad]"; }

sida3

session_start(); // Samma sak här, den kanske inte behövs men ha med den ändå. if (!$_SESSION['inloggad']) die('Inte inloggad'); echo "Välkommen $_SESSION[inloggad], detta syns inte för de som inte är inloggade.";

Permalänk

Tack så jättemycket för all hjälp!

Ska testa tillämpa detta i praktiken nu.. Men var ska jag lägga all html-kod till sidan, som man bara får se som inloggad?

Visa signatur

Jesus walks!

Permalänk
Medlem

Efter/Istället för 'echo "Välkommen ...."'. Alltså efter "if (!$_SESSION['inloggad']) die('Inte inloggad');"

Permalänk
Citat:

Ursprungligen inskrivet av Don_Tomaso
Efter/Istället för 'echo "Välkommen ...."'. Alltså efter "if (!$_SESSION['inloggad']) die('Inte inloggad');"

I sida1 tänkte jag.. Men jag antar att det blri efter/istället för "echo "Du är inloggad som: $_SESSION[inloggad]"; " på den sidan..?

Men jag förstår inte riktigt, var ska jag sätta html-taggarna och allt?

Visa hemskt gärna med ett exempel där du har hela koden, och sätter in <title>Min hemsida</title> exempelvis.

Det vore snällt, vill jag lova!

Visa signatur

Jesus walks!

Permalänk
Medlem

<?php session_start(); // Måste ligga överst INNAN all output! $anvandare = array('namn1' => 'losen1', 'namn2' => 'losen2', 'namn3' => 'losen3' osv); foreach ($anvandare as $namn => $pass) if ($namn == $_POST['namn'] && $pass == $_POST['pass']) { $inloggad = $namn; break; } if ($inloggad || $_SESSION['inloggad']) { if (!$_SESSION['inloggad']) $_SESSION['inloggad'] = $inloggad; } ?> <html> <head> <title>Sida</title> </head> <body> <?php if ($_SESSION['inloggad']) echo "Du är inloggad som $_SESSION[inloggad]"; else echo 'Du är inte inloggad'; ?> </body> </html>

Utöka if-satsen så den sträcker sig längre om du vill, fungerar lika bra det.

Permalänk
Citat:

Ursprungligen inskrivet av Don_Tomaso

<?php session_start(); // Måste ligga överst INNAN all output! $anvandare = array('namn1' => 'losen1', 'namn2' => 'losen2', 'namn3' => 'losen3' osv); foreach ($anvandare as $namn => $pass) if ($namn == $_POST['namn'] && $pass == $_POST['pass']) { $inloggad = $namn; break; } if ($inloggad || $_SESSION['inloggad']) { if (!$_SESSION['inloggad']) $_SESSION['inloggad'] = $inloggad; } ?> <html> <head> <title>Sida</title> </head> <body> <?php if ($_SESSION['inloggad']) echo "Du är inloggad som $_SESSION[inloggad]"; else echo 'Du är inte inloggad'; ?> </body> </html>

Utöka if-satsen så den sträcker sig längre om du vill, fungerar lika bra det.

Hmm.. Jag tror du missförstått mig?

Jag har redan skapat en sida i html (sida2). Den sidan ska man bara få titta på om man loggat in. Jag får inte din förklaring att lösa det problemet?

Med andra ord; Skriver man in adressen till sida2.php så ska man inte kunna se sidan. Det ska bara gå via sida1s inloggning.

?

Visa signatur

Jesus walks!

Permalänk
Medlem

Ska man inte kunna se något på sidan om man inte är inloggad? Ändra till detta

if ($inloggad || $_SESSION['inloggad']) { if (!$_SESSION['inloggad']) $_SESSION['inloggad'] = $inloggad; } else die('Du är inte inloggad.');

så kommer man inte komma förbi det om man inte är inloggad.

Permalänk
Citat:

Ursprungligen inskrivet av Don_Tomaso
Ska man inte kunna se något på sidan om man inte är inloggad? Ändra till detta

if ($inloggad || $_SESSION['inloggad']) { if (!$_SESSION['inloggad']) $_SESSION['inloggad'] = $inloggad; } else die('Du är inte inloggad.');

så kommer man inte komma förbi det om man inte är inloggad.

Hm?

Jag har alltså en html-sida som ingen ska få åtkomst till - förutom om man har loggat in.

Ska det där funka då?

Visa signatur

Jesus walks!

Permalänk
Medlem

Det bör göra det, ja.