Skrypt, który zaraz przedstawię, służy do logowania aby móc się dostać do zablokowanych stron.
Jestem przedszkolakiem w php, tylko się domyślam co znaczą poszczególne linijki. Z tego co rozkminiam skrypt działa na rozpoznawaniu czy ktoś jest zalogowany lub nie, poprzez cookie (SETCOOKIE).
Sytuacja wygląda tak: jestem zalogowany na swojej stronie, jeśli znowu wchodzę na stronę logowania jest pusta, chciałbym aby rozpoznała że jestem zalogowany, i przekierowała mnie do określonej strony www, a nie jak dotychczas wyświetlała się pusta. Prosiłbym o treść kodu, oraz info w którym miejscu go wkleić.
Przy okazji prosiłbym o skrypt wylogowania (IMG:
style_emoticons/default/smile.gif)
Treść skryptu:
<?php
######################
# SETTINGS START
######################
// Add login/password pairs below, like described above
// NOTE: all rows except last must have comma "," at the end of line
$LOGIN_INFORMATION = array( 'xxx' => 'xxx',
'xxx' => 'xxx'
);
// request login? true - show login and password boxes, false - password box only
// User will be redirected to this page after logout
define('LOGOUT_URL', 'http://www.google.pl');
// time out after NN minutes of inactivity. Set to 0 to not timeout
define('TIMEOUT_MINUTES', 10
);
// This parameter is only useful when TIMEOUT_MINUTES is not zero
// true - timeout time from last activity, false - timeout time from login
define('TIMEOUT_CHECK_ACTIVITY', true);
######################
# SETTINGS END
######################
/////////////////////////////
// do not change code below
/////////////////////////////
if(isset($_GET['help'])) { die('Include following code into every page you would like to protect, at the very beginning (first line):<br><?php include("' . str_replace('\\','\\\\',__FILE__) . '"); ?>'); }
$timeout = (TIMEOUT_MINUTES
== 0 ? 0
: time() + TIMEOUT_MINUTES
* 60
);
if(isset($_GET['logout'])) { header('Location: ' . LOGOUT_URL
); }
if(!function_exists('showLoginPasswordProtect')) {
function showLoginPasswordProtect($error_msg) {
?>
<html>
<head>
<title>Enter the MATRIX</title>
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
</head>
<body>
<style>
input { border: 1px solid black; }
</style>
<div style="width:500px; margin-left:auto; margin-right:auto; text-align:center">
<form method="post">
<font color="white"><h2 style="padding-top:40px";>Zaloguj się do <br /> MATRIX</h2></font>
<font color="white">
<?php echo $error_msg; ?></font>
<?php if (USE_USERNAME
) echo '<font color="white">Login:</font><br /><input type="input" name="access_login" /><br /><font color="white">Hasło:<font><br />'; ?> <input type="password" name="access_password" /><p></p><input type="submit" name="Submit" value="Submit" />
</form>
<br />
</div>
</body>
</html>
<?php
}
}
if (isset($_POST['access_password'])) {
$login = isset($_POST['access_login']) ?
$_POST['access_login'] : ''; $pass = $_POST['access_password'];
if (!USE_USERNAME
&& !in_array($pass, $LOGIN_INFORMATION) || (USE_USERNAME
&& ( !array_key_exists($login, $LOGIN_INFORMATION) || $LOGIN_INFORMATION[$login] != $pass ) ) ) {
showLoginPasswordProtect("Błędne hasło.");
}
else {
header("Location: matrix.php");
unset($_POST['access_login']); unset($_POST['access_password']); }
}
else {
if (!isset($_COOKIE['verify'])) { showLoginPasswordProtect("");
}
$found = false;
foreach($LOGIN_INFORMATION as $key=>$val) {
$lp = (USE_USERNAME ? $key : '') .'%'.$val;
if ($_COOKIE['verify'] == md5($lp)) { $found = true;
if (TIMEOUT_CHECK_ACTIVITY) {
}
break;
}
}
if (!$found) {
showLoginPasswordProtect("");
}
}
?>
Ten post edytował Nocek 26.08.2009, 23:39:33