|
|
|
| ТО что имеем:
1)Есть Java код, который отправляет строку в файл php и получает md5 код посредствами AJAx
<script type="text/javascript" language="JavaScript"
src="lib/JsHttpRequest.js"></script>
<script type="text/javascript" language="JavaScript">
function doLoad(value) {
// Create new JsHttpRequest object.
var req = new JsHttpRequest();
// Code automatically called on load finishing.
req.onreadystatechange = function() {
if (req.readyState == 4) {
// Write result to page element ($_RESULT become responseJS).
document.getElementById('result').innerHTML =
'<b>MD5("'+req.responseJS.q+'")</b> = ' +
'"' + req.responseJS.md5 + '"<br> ';
// Write debug information too (output become responseText).
document.getElementById('debug').innerHTML = req.responseText;
}
}
// Prepare request object (automatically choose GET or POST).
req.open(null, 'handler.php', true);
// Send data to backend.
req.send( { q: value } );
}
</script>
<form>
Text: <input type="text" name="text">
<input type="button" value="Calculate MD5"
onclick="doLoad(this.form.text.value)">
</form>
<div id="result" style="border:1px solid #000; padding:2px">
Structured results
</div>
<div id="debug" style="border:1px dashed red; padding:2px">
Debug info
</div>
<hr>
|
2)Есть php код получающий строку и отправляющий md5 строку
<?php
require_once "lib/JsHttpRequest.php";
$JsHttpRequest =& new JsHttpRequest("windows-1251");
$_RESULT = array(
"q" => @$_REQUEST['q'],
"md5" => md5(@$_REQUEST['q']),
);
?>
|
3)Есть php код, выполняющий авторизацию пользователя из MySQL
<?php
if (isset($_POST['name'])){
//инклудим файл с настройками бд
include('settings.php');
// Соединяемся с сервером базы данных
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx) {
echo( "<P>В настоящий момент сервер базы данных не
доступен, поэтому корректное отображение
страницы невозможно.</P>" );
exit();
}
// Выбираем базу данных
if (! @mysql_select_db($dbname,$dbcnx) ) {
echo( "<P>В настоящий момент база данных не доступна,
поэтому корректное отображение страницы
невозможно.</P>" );
exit();
}
// Формируем и выполняем SQL-запрос для посетителя с
// именем $_POST['name']
$query = "SELECT password FROM users WHERE name='".$_POST['name']."'";
$nme = mysql_query($query);
if(!$nme)
{
echo mysql_error();
echo "Ошибка выполнения запроса";
exit();
}
// Если запрос вернул результат - производим дальнейшую обработку
if(mysql_num_rows($nme) > 0)
{
// Получаем пароль
$password = mysql_result($nme, 0);
// Сравниваем пароль из базы данных и введённый посетителем
if ($_POST['password'] == $password)
{
// Идентификация прошла успешно - осуществляем
// "вход" посетителя. Для того, чтобы в течении текущей
// сесси посетитель не вводил своё имя пароль повторно -
// передаём их через сессию
if(session_start())
{
$_SESSION['user'] = $_POST['name'];
$_SESSION['password'] = $_POST['password'];
// Осуществляем автоматический переход на
// страницу index.php чтобы убедится, что
// посетитель "вошёл"
echo "<center><font color='green'>Вход успешно выполнен<br>Переадресация...</font></center> <body onLoad=window.setTimeout(\"location.href='index.php'\",2000)>";
}
}
else
{
echo "<center><font color='red'>Ошибка идентификации: неправильный пароль<br>Переадресация...</font></center> <body onLoad=window.setTimeout(\"location.href='index.php'\",2000)>";
exit();
}
}
// Если в результате запроса не получено ни одной
// строки - посетитель с таким именем не зарегистрирован
else
{
echo "<center><font color='red'>Ошибка идентификации: посетитель не зарегистрирован<br>Переадресация...</font></center> <body onLoad=window.setTimeout(\"location.href='index.php'\",2000)>";
exit();
}
}
?>
|
То что нужно:
Нужно чтобы Java код(пункт1) отправлял введенные логин и пароль в php код(пункт3), чтобы php код принимающий java скрипт(пункт2) обрабатывал введенные логин и пароль и отправлял обратно результат.
Моё мнение:
1)Нужно переделать java код(пункт1) отправлял данные в виде login:password в phph программу(пункт3)
2)Нужно чтобы php код принимал логин и пароль в виде login:password и разделял логин и пароль на две переменные, например в $login и $password
3)Нужно переписать php функцию(пункт3) выполняющую вход с переменными и чтобы отправлялись данные обратно в java функцию(пукнт1)
Уважаемые форумчане!
Очень срочно нужна ваша помощь...Буду очень благодарен если поможете...Просто сам не могу все реализовать... | |
|
|
|
|
|
|
|
для: skazi
(11.01.2007 в 15:25)
| | Помогите пожалуйста! | |
|
|
|
|
|
|
|
для: skazi
(11.01.2007 в 17:28)
| | HELP ME! | |
|
|
|
|
|
|
|
для: skazi
(11.01.2007 в 15:25)
| | что работает, что не работает?
где не работает? | |
|
|
|
|
|
|
|
для: neudor
(12.01.2007 в 01:41)
| | я написал то что мне нужно...
только сам я этого реализовать не могу | |
|
|
|
|
|
|
|
для: skazi
(12.01.2007 в 02:02)
| | JS скрипте отпровляешь массив с введённым логином и паролем
req.send( массив);
на сервер этото массив приходит как POST.
обрабатываешь, и отправляешь обратно массив $_RESULT = array();
что именно непонятно?
PS авторизацию лучше на AJAX не делать. | |
|
|
|
|
|
|
|
для: Crux
(12.01.2007 в 07:59)
| | Пожалуйста привидите мои скрипты в нормальный,рабочий вид...
Не получается у меня переделать их... | |
|
|
|
|
|
|
|
для: skazi
(12.01.2007 в 15:53)
| |
<html>
<head>
<script type="text/javascript" language="JavaScript" src="lib/JsHttpRequest.js"></script>
<script language="JavaScript" type="text/javascript">
function doLoad() {
var req = new JsHttpRequest();
req.onreadystatechange = function() {
if (req.readyState == 4) {
//req.responseJS - это массив который мы определили в файле handler.php
alert(req.responseJS.answer)
//req.responseText - это просто текстовая информация из файла handler.php
alert(req.responseText)
}
}
req.open(null, 'handler.php', true);
//определям данные для передачи посредством AJAX для выполнения в файле handler.php
var arr= {name:document.forms.regAJAX.login.value, password:document.forms.regAJAX.password.value}
req.send( arr );
}
</script>
</head>
<body>
<form name="regAJAX">
login <input type="text" name="login"><br>
password <input type="password" name="password"><br>
<input type="button" value="ok!" onclick="doLoad()">
</form>
</body>
</html>
|
<?
//файл handler.php
require_once "lib/JsHttpRequest.php";
$JsHttpRequest =& new JsHttpRequest("windows-1251");
/*
здесь обрабатываем полученные данные (логин и пароль),
в нашем слкчае $_POST['name'], $_POST['password']
*/
/*
для того чтоб вернуть что-то обратно пользователю можно
1.определить данные как массив $_RESULT
*/
$_RESULT = array ('answer' => "данные возвращаемые через массив");
/*
2.выести как текст
*/
print "просто текстовая информация, допустимы теги";
?>
|
| |
|
|
|
|
|
|
|
для: crux
(12.01.2007 в 19:54)
| | Спасибо!
Дальше сам разберусь... | |
|
|
|
|
|
|
|
для: skazi
(12.01.2007 в 20:27)
| | не забудьте отправляемые данные пропускать через encodeURIComponent() | |
|
|
|
|
|
|
|
для: crux
(12.01.2007 в 19:54)
| | а где определяется responseJS, и вообще что она делает. что-то я понять не могу. объясните плз | |
|
|
|
|
|
|
|
для: Roma
(05.03.2007 в 00:13)
| | Это стандартное свойство объекта JsHttpRequest(). | |
|
|
|