Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: PHP и AJAx
 
 автор: skazi   (11.01.2007 в 15:25)   письмо автору
 
 

ТО что имеем:
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($nme0);  
       
// Сравниваем пароль из базы данных и введённый посетителем  
       
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 в 17:28)   письмо автору
 
   для: skazi   (11.01.2007 в 15:25)
 

Помогите пожалуйста!

   
 
 автор: skazi   (11.01.2007 в 23:24)   письмо автору
 
   для: skazi   (11.01.2007 в 17:28)
 

HELP ME!

   
 
 автор: neudor   (12.01.2007 в 01:41)   письмо автору
 
   для: skazi   (11.01.2007 в 15:25)
 

что работает, что не работает?
где не работает?

   
 
 автор: skazi   (12.01.2007 в 02:02)   письмо автору
 
   для: neudor   (12.01.2007 в 01:41)
 

я написал то что мне нужно...
только сам я этого реализовать не могу

   
 
 автор: Crux   (12.01.2007 в 07:59)   письмо автору
 
   для: skazi   (12.01.2007 в 02:02)
 

JS скрипте отпровляешь массив с введённым логином и паролем
req.send( массив);

на сервер этото массив приходит как POST.

обрабатываешь, и отправляешь обратно массив $_RESULT = array();

что именно непонятно?

PS авторизацию лучше на AJAX не делать.

   
 
 автор: skazi   (12.01.2007 в 15:53)   письмо автору
 
   для: Crux   (12.01.2007 в 07:59)
 

Пожалуйста привидите мои скрипты в нормальный,рабочий вид...
Не получается у меня переделать их...

   
 
 автор: crux   (12.01.2007 в 19:54)   письмо автору
 
   для: 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 "просто текстовая информация, допустимы теги";
?>

   
 
 автор: skazi   (12.01.2007 в 20:27)   письмо автору
 
   для: crux   (12.01.2007 в 19:54)
 

Спасибо!
Дальше сам разберусь...

   
 
 автор: bronenos   (05.03.2007 в 00:46)   письмо автору
 
   для: skazi   (12.01.2007 в 20:27)
 

не забудьте отправляемые данные пропускать через encodeURIComponent()

   
 
 автор: Roma   (05.03.2007 в 00:13)   письмо автору
 
   для: crux   (12.01.2007 в 19:54)
 

а где определяется responseJS, и вообще что она делает. что-то я понять не могу. объясните плз

   
 
 автор: coloboc66   (05.03.2007 в 13:40)   письмо автору
 
   для: Roma   (05.03.2007 в 00:13)
 

Это стандартное свойство объекта JsHttpRequest().

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования