Я запускаю приложение Perl, названное bitlfu. Для входа в систему это использует что-то как Apache HTTP Основной Автор, но не форма. Я хочу сделать форму для входа в систему с полем имени пользователя и пароля. Я попробовал JavaScript и PHP без результатов до настоящего времени.
Таким образом, я нуждаюсь в помощи!
PS: этот вид работ URL
http://user:password@host.com
Я думаю, что простой JavaScript типа:
document.location='http://' + user + ':' + pass + '@mydomain.tld';
должен сделать работу.
Итак, по сути, вам нужно создать форму с полем user и pass, а затем при отправке использовать часть JavaScript, приведенную здесь:
<form method="post" onsubmit="javascript:document.location='http://' + $('login') + ':' + $('pass') + '@mydomain.tld';">
<input type="text" name="login" id="login" />
<input type="password" name="pass" id="pass" />
<input type="submit" value="ok"/>
</form>
где $() - это document.getElementById или jquery или что-то подобное. Я использовал функцию $(), чтобы сделать код короче. Вот реализация, которая работает не на всех браузерах. Опять же, посмотрите jQuery для кроссбраузерного решения.
function $(_id) { return document.getElementById(_id); }
В противном случае, вы можете использовать php и перенаправить пользователя с указанием местоположения заголовка.
php way:
<?php
if (isset($_POST['login']) && isset($_POST['password'])) { header('Location: ' . urlencode($_POST['login']) . ':' . urlencode($_POST['password']) . '@domain.tld'); }
else
{
?>
<form method="post" onsubmit="javascript:document.location='http://' + $('login') + ':' + $('pass') + '@mydomain.tld';">
<input type="text" name="login" id="login" />
<input type="password" name="pass" id="pass" />
<input type="submit" value="ok"/>
</form>
<?php
}
Вы можете перенаправить пользователя на http://user:password@host.com
с помощью Perl, или используя JavaScript. Я не знаю Perl, поэтому я покажу вам JS:
function submitted() {
document.location = "http://" + document.getElementById("username").value + ":" + document.getElementById("password").value + "@host.com";
}
<form onSubmit="submitted">...blablabla...</form>
Это должно работать. Единственная проблема в том, что это показывает пароль в URL.
$.ajax({
'url': 'http://host.com/',
//'otherSettings': 'othervalues',
username: $("username").val(),
password: $("password").val()
},
sucess: function(result) {
alert('done');
}
});
$username = # somehow get username
$password = # somehow get password
use CGI;
my $query=new CGI;
print $query->redirect('http://host.com/');