webForumDet fria alternativet

lösenskydda fler sidor - hur ändra i koden?

PHP

4 svar · 986 visningar · startad av kaxigt

Medlem sedan okt. 2004636 inlägg
Frågan#1

Som läget är nu blir bara en sida - secure.php - skyddad. Men om jag vill ha fler sidor skyddade - hur och var ändrar man detta? Är det sk sessions?

Kan tillägga att jag har allt liggande i en och samma mapp.

//Lena

<?php

$namePassCombos = array (      

	"xxx" => "xxx",     //  Add as many usernames and passwords  as you wish here
	"name2" => "pass2",     //  Be sure to add these usernames to "secure.php" page also
	"name3" => "pass3"   

);

// Secure multiple user Log-In script by Dave Lauderdale - Originally published at: [url]www.digi-dl.com[/url]

$loginName = $_POST['loginName']; $passWord = $_POST['passWord'];
$passWord = preg_replace ("/</","[",$passWord); $loginName = preg_replace ("/>/","]",$loginName); 
$loginName = str_replace(".."," ",$loginName); $passWord = str_replace(".."," ",$passWord);        
$loginName=trim($loginName); $passWord=trim($passWord);
 
function success($loginName)
{
        $filename = "user.log";
	$log=fopen($filename, "w+");
     	fputs($log, $loginName);
	fclose($log);
	Header("Location: secure.php");
}

function error($notice){
if($notice=="0"){
	echo"
	<title>Log-In Error: Absent username / password</title>
	<body><br><p style=\"font:11pt arial\"><font color=red>NOTICE:</font> Log-In Error: Absent username / password.
	<br><br><br>Click <a href=\"javascript:history.back(1)\" style=\"color:black\">here</a> to try again.
	</body></html>
	"; exit;
	}

if($notice=="1"){
	echo"
	<title>Log-In Error: Incorrect username / password</title>
	<body><br><p style=\"font:11pt arial\"><font color=red>NOTICE:</font> Log-In Error: Incorrect username / password.
	<br><br><br>Click <a href=\"javascript:history.back(1)\" style=\"color:black\">here</a> to try again.
	</body></html>
	"; exit;
	}
}

if (($loginName == "") || ($passWord == "")) { $notice=0; error($notice); }
else if (strcmp($namePassCombos[$loginName],$passWord) != 0) { $notice=1; error($notice); }
else if (strcmp($namePassCombos[$loginName],$passWord) == 0) { success($loginName); }
?>
<?php 

// Secure multiple user Log-In script by Dave Lauderdale - Originally published at: [url]www.digi-dl.com[/url]

$filename = "user.log";
$log = fopen($filename, "r");
$contents = fread($log, filesize($filename));
fclose($log);

//  Add usernames below
if ($contents == "xxx" || $contents == "name2"  || $contents == "name3") {

$filename = "user.log";
$log = fopen($filename, "w+");
fputs($log,"");
fclose($log);
echo <<<EOF
<!-- #######################################################  -->
<!-- #######################################################  --> 
<!--                Begin your HTML below                     -->

<!--                End your HTML above                       -->
<!-- #######################################################  -->
<!-- #######################################################  --> 
EOF;
}
else echo "<br />Error...Du måste logga in igen!<br /><br /><a href='privat.php'>Tryck</a> för att logga in igen";
?>
Medlem sedan juni 20006 031 inlägg
#2

Koden du har postat är ju en mall som du kan använda för att lösenordskydda dina sidor. Klistra in din htmlkod i mitten efter "Begin your HTML below" så ska den vara skyddad.

Medlem sedan okt. 2004636 inlägg
#3
function success($loginName)
$filename = "user.log";
	$log=fopen($filename, "w+");
     	fputs($log, $loginName);
	fclose($log);
	Header("Location: secure.php");

Ja det hade väl gått bra om inte denna lilla kodsnutt fanns.
Location är secure.php vilket innebär att det är den sidan som innehållet är på. Vill jag har fler sidor måste det ju finnas alternativa locations - eller?

Medlem sedan sep. 200436 inlägg
#4

Jag tycker det verkar vara ett lite dumt script. Men det där header(location = ); Skickar ´bara vidare till secure.php. Du kan säkert använda den undre koden på flera sidor och det fugnerar ändå. Men något som skulle vara mycket bättre är om du använde sessions. Det är snabbare och smidigare än en text fil...

Medlem sedan okt. 2004636 inlägg
#5

jOOOL skrev:

Jag tycker det verkar vara ett lite dumt script. Men det där header(location = ); Skickar ´bara vidare till secure.php. Du kan säkert använda den undre koden på flera sidor och det fugnerar ändå. Men något som skulle vara mycket bättre är om du använde sessions. Det är snabbare och smidigare än en text fil...

Ja visst skulle det - som det nu är så skickas man ju bara till en sida - har du nåt skript med sessions? Det ska inte vara databashanterat.

270 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
136 ms — ändringar (db)