За последние 24 часа нас посетили 39750 программистов и 3282 робота. Сейчас ищут 1577 программистов ...

Не видит параметры GET

Тема в разделе "PHP для новичков", создана пользователем MrSullex, 29 янв 2016.

  1. MrSullex

    MrSullex Активный пользователь

    С нами с:
    15 сен 2015
    Сообщения:
    122
    Симпатии:
    1
    Код почему то не видит параметры GET запросы. Перехожу по /account/register?refid=1 и в итоге значение 1 он не видит. В чем проблема?

    Код (PHP):
    1. <?php
    2. if($_GET['refid']){
    3.                 $refid = $_GET['refid'];
    4.         setcookie("refid", $refid, time()+3600);
    5.         }else{
    6.         $refid = "0";
    7.         }
    8. ?>
    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а что значит не видит? как проверяется данное утверждение? может кука не устанавливается с таким значением?
     
  3. MrSullex

    MrSullex Активный пользователь

    С нами с:
    15 сен 2015
    Сообщения:
    122
    Симпатии:
    1
    Не записывается в mysql значение, например, 1.
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а, кажется понял. nginx? phpinfo() видит переменные запроса?
     
  5. MrSullex

    MrSullex Активный пользователь

    С нами с:
    15 сен 2015
    Сообщения:
    122
    Симпатии:
    1
    apache2.

    Добавлено спустя 48 минут 3 секунды:
    Возможно, проблема в .htaccess?

    Код (PHP):
    1. # Установка кодировки
    2. AddDefaultCharset utf-8
    3.  
    4. # Запрет листинга директории
    5. Options -Indexes
    6.  
    7. RewriteEngine on 
    8.  
    9. # Редирект с поддоменов
    10. #RewriteCond %{HTTP_HOST} ^domain.ru
    11. #RewriteRule (.*) http://domain.ru/$1 [R=301,L]
    12.  
    13. # Настройки ЧПУ
    14. RewriteCond %{REQUEST_FILENAME} !-f
    15. RewriteCond %{REQUEST_FILENAME} !-d
    16.  
    17. RewriteRule ^(.*)$ index.php?action=$1 [L,QSA] 
    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    добавь в файл phpinfo(); сделай запрос и в нём можно будет посмотреть содержание $_GET

    Учи отладку
    http://phpfaq.ru/debug
    https://netbeans.org/kb/docs/php/debugging_ru.html
     
  7. MrSullex

    MrSullex Активный пользователь

    С нами с:
    15 сен 2015
    Сообщения:
    122
    Симпатии:
    1
    Вот что выводит var_dump($_GET);
    array(1) { ["action"]=> string(16) "account/register" }
     
  8. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.132
    Симпатии:
    1.251
    Адрес:
    там-сям
    При этом в адресной строке есть гет-параметры? Или уже произошёл какой-то редирект?

    Добавлено спустя 2 минуты 19 секунд:
    Если БЫ в твоём rewriterule не было флага QSA, было бы понятно, что параметры отброшены. Но флаг есть, все должно работать. Поэтому предполагаю, что адрес уже не содержит параметров.
     
  9. MrSullex

    MrSullex Активный пользователь

    С нами с:
    15 сен 2015
    Сообщения:
    122
    Симпатии:
    1
    Ну вот перехожу по /account/register?refid=1 в итоге он не видите значение 1. Редиректа не происходит.
     
  10. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.132
    Симпатии:
    1.251
    Адрес:
    там-сям
    Загадка. Либо магия, либо ты где-то ответил неверно.

    Каждый раз ты отвечаешь не буквально на вопрос, а как бы свою интерпретацию. :) Ни отрицания, что нгинкс есть, ни пхпинфо, ни подтверждения про адресную строку я не увидел. Каждый раз остаётся лазейка для неправильного ответа.
     
  11. MrSullex

    MrSullex Активный пользователь

    С нами с:
    15 сен 2015
    Сообщения:
    122
    Симпатии:
    1
    Не много разъяснил для себя. Через echo значение refid передается, однако при записи в mysql записывает 0. Вот Структура поля user_refid. (int) 1 default 0. Я бы подумал на поле, но если задать любое число в переменную, то оно записывается.
     
  12. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.132
    Симпатии:
    1.251
    Адрес:
    там-сям
    Выведи текст SQL с уже подставленным параметром refid. Разбирайся с ним.