Как получить данные из Php, находясь в Node.js - PullRequest
0 голосов
/ 22 сентября 2018

Я просто хотел получить некоторые вещи PHP / Mysql в начале моего приложения (аутентификация и данные x и y) от пользователей, которых я позже планирую передать на app.js (один раз в начале и один раз впользователь отключает обновление x - y значений).

Итак, в основном я настроил Nodes.js и понял, что некоторые вещи невозможны, как раньше (например, с обычным php)

Где у меня уже естьпроблема в AJAX php-запросе в index.html моих узлов. Сервер

Схема:

app.js: извлечение данных из /Client/index.html (думаю, нужно делать это через сокеты)

index.html: получить или опубликовать данные через Ajax в файл php и вернуть значения базы данных обратно в index.html (JavaScript), а затем отправить эти данные через сокеты в app.js

php: выберите базу данных mysql, получите значения из mysql, проанализируйте их через Json и сделайте их доступными в index.html файле Nodes.js (клиент)

Возможно, у кого-нибудь из вас есть решение

Nodes.js /Client/index.html:

function checkuser(username, password) {
    var myObj;
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            // Typical action to be performed when the document is ready:
            myObj = xhttp.responseText;
            var i = 0;
            while (i <= myObj.length) {
                //console.log("ASQL found and Auth Username:"+ myObj[i].username)  ;
                console.log(myObj.username);
                i++;
            }
        }
    };
    xhttp.open("GET", "/client/is_user.php?username333=" + username + "&password333=" + password, true);
    xhttp.send();
}

is_user.php:

<?php
require('config_sql.php');
$email = stripslashes($_GET['username333']);
$email = mysqli_real_escape_string($con,$email);
$password369 = stripslashes($_GET['password333']);
$password369 = mysqli_real_escape_string($con,$password369);
$query = "SELECT * FROM `users` WHERE email='$email'
and password='".md5($password369)."'";
$result = mysqli_query($con,$query) or die(mysql_error());
$response = array();
$rows = mysqli_num_rows($result);
while ($row_user= mysqli_fetch_assoc($result))
{
    $response[] = $row;
}
$jsonData = json_encode($response); 
echo $jsonData;
mysqli_close($con);
?>  

atm не извлекает имя пользователя из созданного json на стороне php.Если я console.log(myObj);, он отображает мои полные данные php.file в виде обычного текста, если я хочу получить имя пользователя из MySql, которое говорит undefined.

Работает ли php Interpreter на самом деле, когда я post/get через Ajax в среде Node.js?Обычно, когда я программировал на чистом php, все запросы работали хорошо.

Заранее спасибо.

1 Ответ

0 голосов
/ 22 сентября 2018

Проверьте ваш код для получения результата запроса:

$rows = mysqli_num_rows($result);
while ($row_user= mysqli_fetch_assoc($result))
{
$response[] = $row;
}

$ jsonData = json_encode ($ response);

Должно быть так:

$rows = mysqli_num_rows($result);
while ($row_user= mysqli_fetch_assoc($result))
{
$response[] = $row_user;
}

$ jsonData = json_encode ($ response);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...