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

Форум PHP

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

 

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

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

тема: fopen
 
 автор: ladan   (22.08.2012 в 18:29)   письмо автору
 
 

Здравствуйте!


<?
echo md5($_SERVER['REQUEST_URI']);

$fp fopen("cashe/form_".md5($_SERVER['REQUEST_URI']).".php"'w'); 
fwrite($fp$buffer); 
fclose($fp);
?>



Почему имя записанного файла (там где md5($_SERVER['REQUEST_URI'])) не совпадает с тем, что вывелось на экран?

  Ответить  
 
 автор: confirm   (22.08.2012 в 18:39)   письмо автору
 
   для: ladan   (22.08.2012 в 18:29)
 

Потому что разные строки

  Ответить  
 
 автор: ladan   (22.08.2012 в 18:53)   письмо автору
 
   для: confirm   (22.08.2012 в 18:39)
 

я читаю файл, не беря во внимание "form_". Вот он (хэш) не совпадает с тем, что выводится на экран...

  Ответить  
 
 автор: confirm   (22.08.2012 в 18:58)   письмо автору
 
   для: ladan   (22.08.2012 в 18:53)
 

Я о вашем "form_", по моему, даже не заикался, я сказал, что строка под которой был записан файл и та, хеш которой вы получаете, разные, иначе быть не должно.

  Ответить  
 
 автор: ladan   (22.08.2012 в 19:06)   письмо автору
 
   для: confirm   (22.08.2012 в 18:58)
 

Извиняюсь, не так понял :) Объясните пожалуйста почему так происходит,

ведь md5($_SERVER['REQUEST_URI']); при записи в файл не должен меняться, т.к URL один и тот же...


===========



Извиняюсь, все работает! У меня в середине скрипта была регулярка вырезающая часть ссылки из $_SERVER['REQUEST_URI']

  Ответить  
 
 автор: confirm   (22.08.2012 в 19:27)   письмо автору
 
   для: ladan   (22.08.2012 в 19:06)
 

>У меня в середине скрипта была регулярка вырезающая часть ссылки

Ужас. Может пора переболеть "регулярной болезнью"?

  Ответить  
 
 автор: ladan   (22.08.2012 в 20:43)   письмо автору
 
   для: confirm   (22.08.2012 в 19:27)
 

но без нее скрипт не работал был :)) Не представляю програмирование без регулярок =)

  Ответить  
 
 автор: confirm   (22.08.2012 в 20:49)   письмо автору
 
   для: ladan   (22.08.2012 в 20:43)
 

Что содержит этот запрос, и что именно надо убрать из него?

  Ответить  
 
 автор: ladan   (22.08.2012 в 22:10)   письмо автору
 
   для: confirm   (22.08.2012 в 20:49)
 


<?
$_SERVER
['REQUEST_URI'] = preg_replace("/&ORDER_BY.+$|&page=[0-9]+/i","",$_SERVER['REQUEST_URI']);
echo 
"<div class='sort form'>

Сортировать: 
<a href='"
.$_SERVER['REQUEST_URI'].""; if($_GET['ORDER_BY']=="price_max_ASC") {echo "&ORDER_BY=price_max_DESC' class='asc'";} elseif($_GET['ORDER_BY']=="price_max_DESC") {echo "&ORDER_BY=price_max_ASC' class='desc'";} else {echo "&ORDER_BY=price_max_DESC'";} echo">по цене</a>

 <a href='"
.$_SERVER['REQUEST_URI'].""; if($_GET['ORDER_BY']=="rating_ASC") {echo "&ORDER_BY=rating_DESC' class='asc'";} elseif($_GET['ORDER_BY']=="rating_DESC") {echo "&ORDER_BY=rating_ASC' class='desc'";} else {echo "&ORDER_BY=rating_DESC'";} echo">по популярности</a>

 </div>"
;
?>


Это из формы с фильтрами

Если не использовать регулярку, то в ссылку постоянно будет добавляться переменная ORDER_BY. Нужно всегда удалять (очищать) из ссылки переменную ORDER_BY, перед тем как нажать по "по цене" или по "по популярности".

Без регулярки хз как по другому делается :)

  Ответить  
 
 автор: confirm   (22.08.2012 в 22:22)   письмо автору
 
   для: ladan   (22.08.2012 в 22:10)
 

За такую портянку по горизонтали да по рукам.

Когда просят строку, это не означает код ваш, а саму строку запроса. Если $_SERVER['REQUEST_URI'], это значит GET запрос, массив, и удалять надо другими функциями, а не занимается ерундой регулярной.
array_diff_key() вам в помощь. Да и слать такое в строке запроса, это жуть.

Владельцам этого форума - добавьте для тега code стили:
display: block;
overflow: auto;

  Ответить  
 
 автор: Valick   (22.08.2012 в 22:33)   письмо автору
 
   для: confirm   (22.08.2012 в 22:22)
 

Да и слать такое в строке запроса, это жуть.
такой сайт просто клондайк для хацкеров

  Ответить  
 
 автор: confirm   (22.08.2012 в 22:37)   письмо автору
 
   для: Valick   (22.08.2012 в 22:33)
 

О чем и речь. Видимо автору по барабану - есть preg, а остальное пофигу...

  Ответить  
 
 автор: ladan   (22.08.2012 в 22:38)   письмо автору
 
   для: confirm   (22.08.2012 в 22:22)
 

Спасибо, сейчас поэкспериментирую с новой функцией :)

  Ответить  
 
 автор: confirm   (22.08.2012 в 22:42)   письмо автору
 
   для: ladan   (22.08.2012 в 22:38)
 

Экспериментировать не вредно, но для начала задумайтесь над тем, что вы в строке запроса передаете. Что-то мало, надо было вообще весь запрос полностью передавать - имя базы вместе с пользователем и паролем, таблицу с полями, в общем все. А то вы что-то скромничаете. )

  Ответить  
 
 автор: ladan   (22.08.2012 в 22:45)   письмо автору
 
   для: confirm   (22.08.2012 в 22:42)
 

:)))

  Ответить  
 
 автор: Valick   (22.08.2012 в 20:57)   письмо автору
 
   для: ladan   (22.08.2012 в 20:43)
 

Не представляю програмирование без регулярок
любая регулярка - это дополнительная нагрузка, так что необоснованное использование регулярок - это дурной тон

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

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