Передача параметра URL-адреса html в PHP-скрипт

Это моя первая неделя использования php, поэтому заранее спасибо за ваш конструктивный ответ.

У меня есть html-страница с добавленным параметром URL: mywebsite.com/f.html?survey_id=5d86055f35bf41f3a35f2c779fc478dc

Мне нужно передать этот параметр Survey_id в php-скрипт, который сохраняет этот идентификатор в текстовом файле. Мой текущий код не проходит правильно, так как текстовый файл пуст.

HTML-страница /f.html PHP-скрипт /test.php

Все это выполняется на стороне сервера.

Скрипт сохранения работает, как будто вместо $id я просто сохраняю строку типа 'd', все работает корректно.

Я попробовал приведенный ниже код, используя $_GET, но вывод пуст, поэтому я предполагаю, что параметр не передается сценарию .php, который выполняет fwrite.

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

RewriteRule "/pages/(.+)" "/page.php?page=$1" [QSA]

Я чувствую, что это не совсем правильное правило, но не знаю, как изменить его, чтобы оно соответствовало моему конкретному случаю.

jQuery(document).on('click', 'div#download', function () {
    jQuery('div#counter1').html('Loading...');
    var ajax = jQuery.ajax({
        method: 'get',
        url: '/test.php', // Link to this page
        data: { 'increase': '1' }
    });
    ajax.done(function (data) {
        jQuery('div#counter1').html(data);
    });
    ajax.fail(function (data) {
        alert('ajax fail : url of ajax request is not reachable');
    });
});

test.php

  $myFile = "testFile2.txt";
  $fh = fopen($myFile, 'w') or die("can't open file");
  $id = $_GET['survey_id'];
  $stringData = $id;
  fwrite($fh, $stringData);
  fclose($fh);

Ожидаемый результат в текстовом файле должен быть 5d86055f35bf41f3a35f2c779fc478dc.

Текущий результат заключается в том, что текстовый файл пуст.

Вам также нужно будет передать Survey_id на страницу test.php.

Refilon 13.02.2019 13:25

@Refilon Да, это то, о чем я спрашиваю, как это сделать.

W Hampton 13.02.2019 13:26

Единственный параметр, с которым вы вызвали test.php, это increase, поэтому вы, конечно, не можете ожидать, что $_GET['survey_id'] будет иметь какое-либо значение. Ваш код JS, работающий на HTML-странице, должен прочитать это значение и передать его…

04FS 13.02.2019 13:26

Итак, ваш вопрос сводится к еще одному дубликату stackoverflow.com/questions/979975/…, тогда…?

04FS 13.02.2019 13:27

Возможный дубликат Как получить значение из параметров GET?

Refilon 13.02.2019 13:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
5
70
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Передайте Survey_id в таких данных

 jQuery(document).on('click', 'div#download', function () {
var url =window.location.search;
    var survey_id = /survey_id =([^&]+)/.exec(url)[1];


        jQuery('div#counter1').html('Loading...');
        var ajax = jQuery.ajax({
            method: 'get',
            url: '/test.php', // Link to this page
            data: { 'increase': '1', 'survey_id': survey_id }
        });
        ajax.done(function (data) {
            jQuery('div#counter1').html(data);
        });
        ajax.fail(function (data) {
            alert('ajax fail : url of ajax request is not reachable');
        });
    });

Вероятно, это сработает, если есть только 1 параметр, но не получится, если за Survey_id будет больше параметров.

Refilon 13.02.2019 13:27

Это сработало! Большое спасибо. RE, что отметил @Refilon, у меня есть только один параметр

W Hampton 13.02.2019 13:34

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