Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не видит параметры GET

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
MrSullex
Отправлено: 30 Января, 2016 - 06:55:23
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Дек. 2015  


Помог: 0 раз(а)




Код почему то не видит параметры GET запросы. Перехожу по /account/register?refid=1 и в итоге значение 1 он не видит, а записывает значение 0. В чем проблема?

<?php
if($_GET['refid']){
$refid = $_GET['refid'];
}else{
$refid = "0";
}
?>

Вот что выводит var_dump($_GET);
array(1) { ["action"]=> string(16) "account/register" }
(Добавление)
Не много разъяснил для себя. Через echo значение refid передается, однако при записи в mysql записывает 0. Вот Структура поля user_refid. (int) 1 default 0. Я бы подумал на поле, но если задать любое число в переменную, то оно записывается.
 
 Top
Viper
Отправлено: 30 Января, 2016 - 09:05:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)






-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
DelphinPRO
Отправлено: 30 Января, 2016 - 09:23:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




MrSullex пишет:
Вот что выводит var_dump($_GET);
array(1) { ["action"]=> string(16) "account/register" }

Очевидно правила рерайта в вашем .htaccess перезаписывают QUERY_STRING

Напишите там корректные правила.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
MrSullex
Отправлено: 30 Января, 2016 - 09:24:52
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Дек. 2015  


Помог: 0 раз(а)




[quote=DelphinPRO][/quote]Вот мой .htaccess. Можете пожалуйста помочь?

# Установка кодировки
AddDefaultCharset utf-8

# Запрет листинга директории
Options -Indexes

RewriteEngine on

# Редирект с поддоменов
#RewriteCond %{HTTP_HOST} ^domain.ru
#RewriteRule (.*) http://domain[dot]ru/$1 [R=301,L]

# Настройки ЧПУ
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?action=$1 [L,QSA]
(Добавление)
Viper пишет:
var_dump($_REQUEST);
array(1) { ["action"]=> string(16) "account/register" }
 
 Top
DelphinPRO
Отправлено: 30 Января, 2016 - 12:23:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




MrSullex пишет:
RewriteRule ^(.*)$ index.php?action=$1 [L,QSA]

ну вот. Строка параметров перезаписывается вашим ЧПУ

CODE (text):
скопировать код в буфер обмена
  1. RewriteRule ^(.*)$ index.php?action=$1%{QUERY_STRING} [L,QSA]

или так
CODE (text):
скопировать код в буфер обмена
  1. RewriteRule ^(.*)$ index.php?%{QUERY_STRING}&action=$1 [L,QSA]


или еще как-то Улыбка я не помню точного синтаксиса


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Prizma
Отправлено: 30 Января, 2016 - 13:26:48
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




MrSullex пишет:
Код почему то не видит параметры GET запросы. Перехожу по /account/register?refid=1 и в итоге значение 1 он не видит, а записывает значение 0. В чем проблема?
MrSullex пишет:
RewriteRule ^(.*)$ index.php?action=$1 [L,QSA]

короче ваш запрос преобразовывается к виду:
index.php?action=/account/register?refid=1
Если запрос будет такого рода, то параметры должны в $_GET появится:
/account/register&refid=1

Если же не хотите менять запрос сделайте вот так:
PHP:
скопировать код в буфер обмена
  1. $getString = explode('?',$_SERVER['HTTP_REFERER']);
  2. $getString = $getString[2];
  3. $getString = explode('&',$getString);
  4. $get = [];
  5. foreach($getString as $param) {
  6.     $param = explode('=',$param);
  7.     $get[$param[0]] = $param[1];
  8. }
  9. // Теперь в $get будут все ваши параметры переданные после ? в запросе
  10. // а в $_GET['action'] будет относительная ссылка на страницу без параметров

(Отредактировано автором: 30 Января, 2016 - 13:27:41)

 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB