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

Форум PHP

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

 

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

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

тема: Поубавить $_POST&GET[""]
 
 автор: EXP   (23.09.2006 в 09:40)   письмо автору
 
 

Можно-ли надписи типа $x=$_POST["x"]; вынести в инклюдируемый (; файл типа top.php? Или как-нибудь сделать анализ присланых имён и динамически создать их? Ато уже 15 штук (;

   
 
 автор: Aurus   (23.09.2006 в 10:31)   письмо автору
 
   для: EXP   (23.09.2006 в 09:40)
 

Гдето на просторах инета сохранял статью:

1. Давайте сразу четко сформулируем задачу: нам нужно каким-то образом вызвать некий скрипт и передать ему некие параметры, при этом адресная строка должна выглядеть как для нормального, статического сайта. Это просто, если мы передаем скрипту данные из формы - ставим "POST" и все дела. Но мы то с вами должны передать параметры из гиперссылки, то есть через URL, то есть методом GET, то есть в УРЛе будут ? или &, то есть...
ОК. Есть такой файл, называется .htaccess - в нем вы можете задать некотрые директивы, управляющие сервером Apache (сложно писать для "широкой" аудитории - кто-то сейчас читает и думает про себя - чего он тут нам "азбуку жует", а кто-то прочитал предыдущую фразу, и материт меня за "тарабарщину всякую"). Ну и ладно. В общем знать об этом самом .htaccess нужно примерно следующее - разместив оный файл в какой-либо папке на сервере, и написав в нем всякие штуки, мы можем изменить поведение сервера, применительно к данной папке (если, конечно хост провайдер разрешает). Короче:
Помещаем файл с именем .htaccess в корневую папку свего сайта (DocumentRoot) - обычно она называется WWW или www
И пишем в него следующие строки:

RewriteEngine on
RewriteRule ^core.php$ - [L]
RewriteRule .* /core.php

О чем это я? Аааа... ну да - есть такой модуль Apache - mod_rewrite называется. Описание данного модуля, как это обычно говорится, выходит за рамки данной статьи - суть в том, что mod_rewrite делает с путями на сервере, что душе угодно и использует синтаксис регулярных выражений в стиле Perl - интересующиеся могут порыться в интернете в поисках документации к оному. И все же, что мы там понаписали в .htaccess

RewriteEngine on

# Данной директивой .htaccess мы включаем mod_rewrite

RewriteRule ^core.php$ - [L]

# Даем понять серверу, что если запрошен файл с именем core.php (название может быть произвольным) то с оным файлом нужно поступить так, как обычно сервер поступает с предателями... простите с файлами, имеющими расширение .php - передать на обработку дальше (модулю PHP).

RewriteRule .* /core.php

# Внимание! Здесь происходит то, ради чего мы и городим весь огород - теперь, что бы мы не написали в адресной строке - не имеет (пока не имеет) ни какого значения - в любом случае будет вызван скрипт с именем core.php Но! Но в адресной строке набранный адрес остается прежним, то есть переменная окружения REQUEST_URI если набрано, например www.somehost.org/123 будет равна именно этому самому 123 и...

2. И мы можем запросто разобрать эту строку в core.php, таким образом, мы передаем данные прямо в имени файла!!!
Пишем тестовый скрипт и сохраняем как core.php :

function parse($uri){
    if($uri){
// вырезаем цифровые значения из строковой
//переменной $uri в массив $uri_number
        eregi("[[:digit:]]+",$uri,$uri_number);
//выводим первый элемент массива в браузер        
        echo $uri_number[0];
    }
}
// вызываем функцию с глобальной переменной
//$REQUEST_URI в качестве параметра
parse($REQUEST_URI);

3. Теперь набираем в строке браузера что-нибудь типа [url]имя_вашего_хоста/vasia12345.html[/url] Уррра!!! Получилось! (у меня все работает по крайней мере Заметьте, что мы вызвали несуществующий файл vasia12345.html - сервер вернул нам OK (т.е. файл найден) - и вывел в браузер цифры 12345. Оные же цифры и буквы (для тех кто в танке ;-) можно передавать в качестве параметров в функции, внутри скрипта и пр.
Рамблер доволен, мы довольны, все довольны! :-))

   
 
 автор: EXP   (23.09.2006 в 11:31)   письмо автору
 
   для: Aurus   (23.09.2006 в 10:31)
 

Слабовато понял про ModeRewrite, надо-бы поперечитывать, наверно я в танке(; Но зато посетила мысль, что RegisterGlobals включатца в .htaccess должен, я-то с месяц только изучаю

   
 
 автор: cheops   (23.09.2006 в 12:26)   письмо автору
 
   для: EXP   (23.09.2006 в 11:31)
 

Можно включить register_globals поместив в файл .htaccess следующую строку
php_value register_globals "on"


http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=13188

   
 
 автор: valenok   (23.09.2006 в 11:17)   письмо автору
 
   для: EXP   (23.09.2006 в 09:40)
 

Можно..

   
 
 автор: Loki   (24.09.2006 в 12:59)   письмо автору
 
   для: EXP   (23.09.2006 в 09:40)
 

Если вам слишком легко живется, то пожалуйста:
<?
if (count($_POST))
foreach (
$_POST as $key=>$var)
{
 ${
$key}=$var;
}

   
Rambler's Top100
вверх

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