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]   

> Без описания
vanicon
Отправлено: 08 Декабря, 2011 - 21:07:27
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


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




У меня есть форма регистрации, она отправляется на сервер с помощью ajax по get'у. И все нормально, но я потом еще создал файлик чтобы скрывать директорию в исходном коде страницы, так как если просмотреть исходный код страницы найти этот js кусок с отправкой данных то там же будет прописан полный путь до него типа: system/plugins и тд. А я сделал так чтобы он отправлял эти параметры на файл url.php и туда передавал два параметра 1 параметр название каталога, например x1 где x1 в самом url.php означает каталог system/plugins/ajax, а 2 параметр имя необходимого скрипта.
mod_rewrite в htaccess настроил что бы url был вот таким:
http://site[dot]com/url/x1/name_file.php
По этому же принципу я сделал и картинки, файлы стилей...
Но вот теперь при передачи параметров на этот файл(url.php) скрипт подключаемый в этом файле(сам обработчик) не видит их, думаю это связано с ЧПУ которое я сделал для url.php.
И теперь не знаю что делать, как сделать чтобы этот файл(url.php) видел эти параметры?


-----
Так было, так есть и так будет
 
 Top
Данил_123
Отправлено: 08 Декабря, 2011 - 21:09:59
Post Id


Участник


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


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




vanicon может просто подключить файл?

(Отредактировано автором: 08 Декабря, 2011 - 21:10:45)



-----
http://mysitecost.ru
 
 Top
Bio man
Отправлено: 08 Декабря, 2011 - 21:34:00
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




vanicon, может выложите файл url.php?
 
 Top
vanicon
Отправлено: 08 Декабря, 2011 - 21:46:09
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


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




файл url.php
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. header('charset=utf-8');
  3. if($_GET['catalog'] <> null && $_GET['file'] <> null){
  4. require_once 'config.php';
  5. require_once 'path.php';
  6. require_once DERICTORY_MODULES.'/'.$this_module.'/class/UrlHide.php';
  7. require_once DERICTORY_MODULES.'/'.$this_module.'/functions/security_info.php';
  8. $catalog = security_info($_GET['catalog']);
  9. $file = security_info($_GET['file']);
  10. $url_hide = new UrlHide($catalog,$file);
  11. $type = $url_hide->type_file;
  12. $path = $url_hide->path_file;
  13. if($type <> null && $path <> null){
  14. if($type == 'css'){
  15. header('Content-type: text/css');
  16. $css_code = file_get_contents(URL_SITE.'/'.$path.'/'.$file);
  17. echo $css_code;
  18. }
  19. elseif($type == 'php'){
  20. include_once DERICTORY_SITE.'/'.$path.'/'.$file;
  21. }
  22. elseif($type == 'js'){
  23. header('Content-type: text/javascript');
  24. $js_code = file_get_contents(URL_SITE.'/'.$path.'/'.$file);
  25. echo $js_code;
  26. }
  27. elseif($type == 'png'){
  28. header('Content-type: image/png');
  29. $image_png_code = file_get_contents(URL_SITE.'/'.$path.'/'.$file);
  30. echo $image_png_code;
  31. }
  32. elseif($type == 'gif'){
  33. header('Content-type: image/gif');
  34. $image_gif_code = file_get_contents(URL_SITE.'/'.$path.'/'.$file);
  35. echo $image_gif_code;
  36. }
  37. }
  38. }
  39. else{
  40. echo 'Проверьте параметры Get запроса';
  41. }
  42.  

Цитата:
может просто подключить файл?

Ну в файле url.php так я и делаю, подключаю файл обработчика формы...


-----
Так было, так есть и так будет
 
 Top
Bio man
Отправлено: 08 Декабря, 2011 - 22:15:23
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




ммм, че то я тупанул. файл мог не выкладывать Улыбка

подозреваю дело в ЧПУ, можно написать ф-цию для парсинга ссылки.

Спойлер (Отобразить)

пример работы:
localhost/catalog/file.php
catalog - $args[0]
file.php - $args[1]

я вас правильно понял?
 
 Top
vanicon
Отправлено: 08 Декабря, 2011 - 22:46:14
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


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




Не помогло, так как параметры передаются по Get'у, а там что типо такого будет:
http://test2[dot]ru/url_hide/h435345[dot][dot][dot]&mesto=43545
и вылезает ошибка, так как в $args[2] = register.php?login=67657&password=435454&passwordclone=45435454&email=343434&mesto=43545
Но дело тут не в ошибки все ровно параметры такие как $_GET['login'] и $_GET['password'] и другие, скрипт (сам обработчик да и url.php) не видит.
В принципе можно разбором этой ссылке получить эти get параметры, но все это будет зависеть от их последовательности в передачи get запроса, может есть какой вариант попроще?


-----
Так было, так есть и так будет
 
 Top
Bio man
Отправлено: 08 Декабря, 2011 - 23:05:18
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




vanicon пишет:
но все это будет зависеть от их последовательности
неа, не будет. можно получить query_string. кароче, обращение к нужному файлу идет из файла url.php таким образом $args[0].'/'.$args[1].'/'.$args[2]
в $args[2] будут все нужные геты, то есть конечный файл их получит.
PHP:
скопировать код в буфер обмена
  1. function parseURI(){
  2.         $uri = $_SERVER['SCRIPT_NAME'];
  3.         $args = array();
  4.         foreach(explode('/', $uri) as $arg){
  5.                 if(empty($arg)) continue;
  6.                 $args[] = $arg;
  7.         }
  8.         $args[] = $_SERVER['QUERY_STRING'];// $_GET
  9.         /*
  10.          * $args[0] - каталог
  11.          * $args[1] - имя файла
  12.          */
  13.         return $args;
  14. }

и еще вопрос, как у вас работает метод $url_hide->type_file? может дело в нем?
(Добавление)
выведете массив $_GET в самом начале файла. пустой будет? print_r или var_dump()
 
 Top
vanicon
Отправлено: 08 Декабря, 2011 - 23:20:58
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


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




Цитата:
неа, не будет. можно получить query_string. кароче, обращение к нужному файлу идет из файла url.php таким образом $args[0].'/'.$args[1].'/'.$args[2]
в $args[2] будут все нужные геты, то есть конечный файл их получит.

Что то у меня все ровно не получается, может делаю что не так...
Цитата:
и еще вопрос, как у вас работает метод $url_hide->type_file? может дело в нем?

этот метод просто берет get параметр file_name в данном случае это register.php и с помощью explode() получаю расширение .php и сравниваю с допустимыми и т.д, ну и сам метод возвращает значение типа файла


-----
Так было, так есть и так будет
 
 Top
Bio man
Отправлено: 08 Декабря, 2011 - 23:31:29
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




vanicon пишет:
с помощью explode() получаю расширение .php

ага, и получаешь php?login=67657&password=435454&passwordclone=45435454&email=343434&mesto=43545

если не так то код сюда, интересно взглянуть что за file_name такой из гет запроса...
 
 Top
vanicon
Отправлено: 09 Декабря, 2011 - 04:57:39
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


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




Цитата:
ага, и получаешь php?login=67657&password=435454&passwordclone=45435454&email=343434&mesto=43545

если не так то код сюда, интересно взглянуть что за file_name такой из гет запроса...

Нет там получаю нормально и метод сам не причем, потому что эта get переменная не равна всем эти get запросам а только вот этому register.php, вот только что проверил даже


-----
Так было, так есть и так будет
 
 Top
Bio man
Отправлено: 09 Декабря, 2011 - 17:08:41
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


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




хз. попробуй отладить, выводи все что нужно и смотри что не выводится, не передается и думай почему, так сложно сказать что там не так, по идее должно работать но не работает...
 
 Top
vanicon
Отправлено: 10 Декабря, 2011 - 09:41:59
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


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




Нашел решение этой проблемы,
нужно передавать get параметры вот таким вот образом:
http://test2.ru/url/x1/register.php&login=67657&password=435454&passwordclone=45435454&email=343434&mesto=43545
Теперь вот надо тока json передавать параметры не начиная со знака '?'...


-----
Так было, так есть и так будет
 
 Top
tuareg
Отправлено: 10 Декабря, 2011 - 09:51:56
Post Id


Участник


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


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




Я дико извиняюсь. Не совсем по теме. Но все же если не получается отправлять GET отправляйте POST. И по идее не будет никаких проблем
 
 Top
vanicon
Отправлено: 10 Декабря, 2011 - 10:04:01
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


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




Цитата:
Я дико извиняюсь. Не совсем по теме. Но все же если не получается отправлять GET отправляйте POST. И по идее не будет никаких проблем

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


-----
Так было, так есть и так будет
 
 Top
vanicon
Отправлено: 12 Января, 2012 - 20:41:01
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 808
Дата рег-ции: Янв. 2010  
Откуда: Самара


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




Подробно прочитал супер глобального массива, нашел $_SERVER['REQUEST_URI'] он то что нужно


-----
Так было, так есть и так будет
 
 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