0

我试图根据使用的 Windows 登录名为用户提供一个页面。关键绝对不是安全性,而是人们希望它舒适,所以他们打开浏览器并查看他们想要看到的内容。我想到了 $_server['remote_user'] 但这是空的。我用谷歌搜索了很多,只发现似乎需要身份验证或会话的东西,两者都需要很多小时的工作;)

我正在使用 WAMP,不想在系统上更具体,因为我希望它明天也能运行,而且我更喜欢肮脏的解决方案。感谢您的评论。

bj

4

2 回答 2

0

感谢您的评论,我至少为这个特殊目的找到了一个可行的解决方案:

第一个文件使用 WScript.Network 读取 windows 用户名并发送一个包含用户名的表单。第二个将其写入会话变量。黑暗和肮脏但易于维护和处理......

文件 1,session02.php:

<?php
    session_start();
?>

<form id="form_user_name" name="form_new_record" action="session03.php" method="post" accept-charset="ISO-8859-1">
    <input name="user_name" type="text" >
    <input type="submit" value="Submit">
</form>
<script type=text/javascript>
    var wscript_network=new ActiveXObject("WScript.Network");
    var user_name=wscript_network.UserName;
    form_user_name.user_name.value=user_name;
    form_user_name.submit();
</script>

文件 2,session03.php:

<?php
    session_start();
    $current_windows_user=$_POST['user_name'];
    $_SESSION['current_windows_user'] = $current_windows_user;
    echo "---".$_SESSION['current_windows_user']
?>

稍后 $_SESSION['current_windows_user'] 或 $current_windows_user 可用

谢谢大家!

于 2013-09-24T15:53:13.497 回答
-1

您的问题有点不清楚,如果您要求使用 PHP 从 Windows PC 检查用户登录,这是无法完成的。

但是,如果您想使用简单的(安全性较低的)HTML 表单以及 PHP 和 MySQL(都包含在 *AMP 中),我建议您执行以下操作:

在您的 index.html 页面上:

<form method="POST" action="validatelogin.php">
<input type="text" name="username" placeholder="Enter username" />
<input type="submit" value="Submit" />
</form>

在您的 validatelogin.php 页面上

session_start();
$dsn = "mysql:host=localhost;dbname=example;charset=utf8";
$opt = array(
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
$pdo = new PDO($dsn,'root','password', $opt);
$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
    $username = $_POST['username'];
$stmt->execute(array(
                                ':username'=>$username,
                                ));
$exist = $stmt->fetch();
if (!empty($exist)) {
    $_SESSION['id'] = $exist["id"];
}

最后一步是最关键的:

此设置假设您有一个名为 example 的数据库,使用 username:root password:password 的登录凭据。此示例还假设您在该数据库中创建了一个名为 users 的表。

该表将具有以下设置:

2 行

第一行名称:id

第一行类型:int

第一行 A_I:选中

第二行名称:用户名

第二行类型:文本

从这里您可以将您希望人们使用的用户名插入到数据库中,我希望这会有所帮助。

于 2013-09-23T20:13:57.040 回答