Как использовать переменную php в значении javascript в запросе mysql?

На самом деле, у меня есть переменная javascript, которую я передаю в переменную PHP и использую эту переменную в качестве запроса MySQL, когда я отправляю запрос, страница перезагружается, и значение переменной javascript завершается, и поэтому запрос не работает Я просто хочу внести изменения в свой код или найти другое подходящее решение для моей проблемы, пожалуйста, помогите мне. Все работает нормально, когда эхо-переменная PHP показывает мне, что проблема только с переменной заключается в запросе моего SQL, что в запросе переменная PHP, которая имеет переменную javascript, не работает.

    <script>
var buttontext = "esteem";
    <?php 
             $ff  = "<script>document.write(buttontext);</script>";             
          ?>

</script>

<?php
  $servername = "localhost";
    $username = "root";
    $password = "";
    $dbname = "beelist";

$conn=mysqli_connect($servername,$username,$password,$dbname);
error_reporting(0);

    $connDB= mysqli_select_db($conn,'beelist');

if ($_POST['sub'])
{
    echo $ff;

  $code=$_POST['Bid'];
     if ($code! = ""){
 $query = "SELECT beaconid FROM `customer` WHERE `beaconid`  = '$code' && name = '$ff'";

$data = mysqli_query($conn,$query);

$res1=mysqli_fetch_array($data);

         if ($res1) {
     echo '<script> alert("Beacon found")</script>';               
            echo '<script> showp();</script>';

        } 
         else {
        echo '<script> alert("Beacon ID is wrong!")</script>';}

    }else{
     echo '<script> alert("Beacon ID is required")</script>';
    }
}

?>

С чего начать? Клиент и сервер (JS и PHP) разделены. Один работает на сервере, другой работает на клиентском компьютере. PHP идет первым, и поэтому только PHP может влиять на JS (поскольку это часть вывода PHP), состояние JS не может быть известно в PHP, поскольку оно находится на совершенно другом компьютере. По сути, вам остается сделать запрос либо с перезагрузки страницы (например, при отправке формы), либо с помощью AJAX, где вы можете передать эти данные обратно на сервер, чтобы он мог с ними работать.

ArtisticPhoenix 06.02.2019 08:24

@ArtisticPhoenix та же проблема, он не работает, братан

user10940008 06.02.2019 08:33

Это никогда не сработает, вы должны понимать отношения между клиентом и сервером. Вероятно, это одна из первых вещей, которую вы должны изучить еще до изучения PHP. По сути, вы должны иметь общее представление о том, как работают запросы и http. Это прозвучало немного грубо, но я имею в виду, что каждый должен с чего-то начинать. Я просто надеюсь избавить вас от многих разочарований, изучив эти концепции заранее.

ArtisticPhoenix 06.02.2019 08:36

я знаю, что мне нужно сделать вызов ajax, но мои концепции в ajax не ясны, и мне нужно отправить проект раньше, пожалуйста, помогите мне, если вы можете

user10940008 06.02.2019 08:49

Это слишком много кода, вам также придется разделить файл на 2 части. Я думаю, вы могли бы сделать это в одном файле, но это намного грязнее.

ArtisticPhoenix 06.02.2019 08:53
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
235
1

Ответы 1

Как я сказал в комментариях

Where do I start, Client and Server (JS and PHP) are separate. One runs on the server one runs on the clients computer. PHP goes first and as such only PHP can affect JS (as that is part of the output of the PHP) the JS's state cannot be known in PHP as it's on a entirely different computer. Basically you are left with making a request, either from a page reload (such as form submission) or AJAX where you can pass that data back to the server so it can work on it.

По сути, то, что у вас есть сейчас, это $ff, буквально это текст:

 $ff  = "<script>document.write(buttontext);</script>";   

И поскольку вы не повторяете его, он фактически никогда не передается клиенту как часть источника.

Ваш запрос выглядит так:

$query = "SELECT beaconid FROM `customer` WHERE `beaconid`  = '$code' && name = '<script>document.write(buttontext);</script>'";

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

PS. вы можете легко проверить это, выполнив echo $query; сразу после запроса. Также имейте в виду, что вы не должны помещать переменные PHP непосредственно в SQL, иначе вы рискуете атаками типа SQLInjection против вашего сайта. Например, если $_POST['Bid'] = "' OR 1 --, ваш запрос будет таким:

 $query = "SELECT beaconid FROM `customer` WHERE `beaconid`  = '' OR 1 --' && name = '<script>document.write(buttontext);</script>'";

Где -- — это начало комментария в MySQL. Итак, теперь я просто выбрал всю вашу таблицу, внедрив команды SQL в ваш запрос, что очень плохо.

Ваше здоровье!

делай как раньше

user11714510 25.09.2019 17:25

Другие вопросы по теме