Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Скрипт считает, что он - в директории
 
 автор: Deed   (18.11.2014 в 18:33)   письмо автору
 
 

Здравствуйте.
Я не знаю. как правильно сформулировать вопрос.
В общем, ссылки вида: http://site.com/reg/new-acc
То есть рерайт-рул этого: http:/site.com/index.php?page=reg&oper=new-acc
И есть в этом месте работа с Ajax.
Как мне сделать так, чтобы скрипт не считал, что в данный момент он находится в директории "reg"??
Так как в противном случае приходится создавать реальную папку "reg" и кидать в нее дубликаты файлов-адресатов Ajax.
Спасибо.

  Ответить  
 
 автор: Trianon   (19.11.2014 в 09:45)   письмо автору
 
   для: Deed   (18.11.2014 в 18:33)
 

Только не скрипт, а браузер. (Или на самый край - клиентский, то есть JS-скрипт. - но так он же и вправду в директории) Абсолютно в своем праве.
Ибо нефиг шалить с путями, особенно без понимания базовых принципов идентификации ресурсов.

Либо меняйте ссылки к файлам на явные пути.
Либо формируйте дополнительные правила рерайта для таких запросов.
Либо и вправду создавайте папку:) Только при этом обработка рерайта может кончиться, как невостребованная.

  Ответить  
 
 автор: Deed   (19.11.2014 в 11:56)   письмо автору
 
   для: Trianon   (19.11.2014 в 09:45)
 

Вот я и зашел спросить о дополнительных правилах для рерайта.

  Ответить  
 
 автор: Trianon   (19.11.2014 в 16:34)   письмо автору
 
   для: Deed   (19.11.2014 в 11:56)
 

а.. Так напишите, как выглядит ссылка на файл на странице, как выглядит название страницы в браузере, и где расположен сам файл.

  Ответить  
 
 автор: Deed   (19.11.2014 в 18:05)   письмо автору
 
   для: Trianon   (19.11.2014 в 16:34)
 

Здравствуйте.
Я не знаю. как правильно сформулировать вопрос.
В общем, ссылки вида: http://site.com/reg/new-acc
То есть рерайт-рул этого: http:/site.com/index.php?page=reg&oper=new-acc
И есть в этом месте работа с Ajax.
Как мне сделать так, чтобы скрипт не считал, что в данный момент он находится в директории "reg"??
Так как в противном случае приходится создавать реальную папку "reg" и кидать в нее дубликаты файлов-адресатов Ajax.
Спасибо.

Файл должен находиться в корне. Но так как в адресной строке имеем: http://site.com/reg/new-acc, то исходящий из него Ajax-запрос к другому файлу, который тоже должен находиться в корне, думает, что был послан ИЗ директории /reg/ (http://site.com/reg/new-acc) и, соответственно, ищет файл-назначение не в корне, а в папке /reg/. Которой нет.
Создание подобных дирекотрий - не выход. Это не решение. Это моветон.
Как и прописывание в путях к файлам-назначениям "подняться вверх": "../../"
Должен быть какой-то RewriteCond для таких случаев.

  Ответить  
 
 автор: Trianon   (19.11.2014 в 22:53)   письмо автору
 
   для: Deed   (19.11.2014 в 18:05)
 

Окей. Как выглядит AJAX-запрос? Фрагмент того места, где написано конкретное имя запрашиваемого файла.

Зря вы мне пытаетесь объяснить, что происходит.
Что происходит, я понимаю. "Немножко" лучше чем вы.

  Ответить  
 
 автор: Deed   (20.11.2014 в 12:07)   письмо автору
 
   для: Trianon   (19.11.2014 в 22:53)
 


$.ajax({
                    type : 'POST',
                    url: "crop_script.php",
                    data: "filename="+$('#filename').val()+"&x1="+x1+"&x2="+x2+"&y1="+y1+"&y2="+y2+"&w="+w+"&h="+h,
                    success: function(data){
                        thumb.attr('src', 'uploads/thumb_'+$('#filename').val());
                        thumb.addClass('thumbnail');
                        $('#thumbnail').imgAreaSelect({ hide: true, x1: 0, y1: 0, x2: 0, y2: 0 });
                        // let's clear the modal
                        $('#thumbnail').attr('src', '');
                        $('#crop-section').hide();
                        $('#uploader-section').show();
                        $('#thumb_preview').attr('src', '');
                        $('#filename').attr('value', '');
                    }
});

Если пишешь путь к "crop_script.php" как "../crop_script.php", адресат находится, но ответ кидается все равно в папку "reg". И там же, в папке "reg", ищется директория "'uploads".

  Ответить  
 
 автор: Trianon   (20.11.2014 в 16:00)   письмо автору
 
   для: Deed   (20.11.2014 в 12:07)
 

сейчас у вас url: "crop_script.php", это сокращенка от полного
url: "http://site.com:80/reg/crop_script.php", 

где выделенное жирным унаследовано от URL родительского документа
http://site.com/reg/new-acc 


если на самом деле crop_uploads.php лежит в DOCUMENT_ROOT , то писать стоит так, чтобы путь не наследовался, а оказался указан явным образом:
url: "/crop_script.php", 

Аналогичным образом, каталог uploads по идее должен искаться не в текущем каталоге родительского документа, а в DOCUMENT_ROOT
   thumb.attr('src', '/uploads/thumb_'+$('#filename').val());

  Ответить  
 
 автор: Deed   (20.11.2014 в 20:32)   письмо автору
 
   для: Trianon   (20.11.2014 в 16:00)
 

Спасибо! Сяду разбираться.
Если возникнут вопросы - напишу.
Еще раз - мое почтение.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования