我有一個登錄腳本,它不使用SQL,因爲服務器不允許它。 如何防止用戶從不同的機器/瀏覽器登錄到同一個帳戶? 我已經嘗試了我在這裏找到的解決方案,但沒有一個工作。 這是我的PHP:阻止2個用戶登錄到同一個帳戶
<?php
session_start();
define('DS', TRUE); // used to protect includes
define('USERNAME', $_SESSION['username']);
define('SELF', $_SERVER['PHP_SELF']);
if (!USERNAME or isset($_GET['logout']))
include('login.php');
// everything below will show after correct login
echo ' <p>Te-ai conectat ca ';
echo $_SESSION['username'];
echo '</p>
<p><a href="?logout=1">Inchidere sesiune</a></p>
<tr><td> <br> </td></tr>
<table style="width: 80%;">
<tbody>
<tr style="height: 23px;">
<td style="width: 27%; height: 23px;"> Canal 1 si 2 10s</td>
<td style="width: 18.7131%; height: 23px;"><audio controls="controls" preload="none"><source src="http://t22sys.noip.me:9300/;stream.mp3" type="audio/mp3">Your browser does not support the audio element.</audio></td>
<td style="width: 27%; height: 23px;"> <a href="http://t22sys.noip.me:9300/listen.pls" style="color:black"><button type="button">Asculta in player extern</button></a></td>
</tr>
</tbody>
</table>
<br>
';
?>
登錄PHP如下:
<?php defined('DS') OR die('No direct access allowed.');
$users = array(
'user'=>'pass',
);
if(isset($_GET['logout'])) {
$_SESSION['username'] = '';
header('Location: ' . $_SERVER['PHP_SELF']);
}
if(isset($_POST['username']))
{
if($users[$_POST['username']] !== NULL && $users[$_POST['username']] == $_POST['password'])
{
$_SESSION['username'] = $_POST['username'];
header('Location: ' . $_SERVER['PHP_SELF']);
}
else
{
echo "<p>Eroare la autentificare</p>";
}
}
echo '<form method="post" action="'.SELF.'">
<p>Autentificare membrii (Canal 1 si 2 fara delay, 128kbps)</p>
<p><label for="username">Utilizator:</label> <input type="text" id="username" name="username" value="" /></p>
<p><label for="password"> Parola:</label> <input type="password" id="password" name="password" value="" /></p>
<p><input type="submit" name="submit" value="Autentificare" class="button"/></p>
</form>';
exit;
?>
此代碼不會做出很大的意義,人如果發佈的用戶名與會話用戶名匹配,則登錄。但用戶名首先進入會話的方式如何? – 2016-12-04 20:18:49
如果你需要用戶會話,不能使用數據庫,你將有一個不好的時間:) – Max
基於文件的會話仍然是標準的@Max – 2016-12-04 20:22:28