ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

09.05.2010, 22:19
|
|
Участник форума
Регистрация: 05.05.2009
Сообщений: 126
Провел на форуме: 226966
Репутация:
8
|
|
Поправил  Спасибо всем!
|
|
|

09.05.2010, 23:12
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
SeNaP Вообще-то второй вариант не выведет никогда строку хелло. Переменная $a не может быть больше либо равна 1 и при этом выполнится !isset()
__________________
Любая действущая программа устарела.
Создайте систему, которой сможет пользоваться даже дурак ,и только дурак захочет ею пользоваться.
Как правильно задавать вопросы: _http://www.yakimchuk.ru/questions.htm
|
|
|

10.05.2010, 02:56
|
|
Познающий
Регистрация: 07.02.2010
Сообщений: 70
Провел на форуме: 217996
Репутация:
56
|
|
ну вы даёте
> Есть таблица со строкой name. В ней находятся числа через запятую 1,5,54,234 и т.д. Как средствами php можно удалить число 54 из данной строки.
m0Hze, кодом
PHP код:
$return = str_replace($need.',','',$str);
ты можешь удалить что надо + обрезать похожее на него, например в строке $str='1,2,3,12,13,23'; надо удалить $need='2';
В итоге будет 1,3,113,23 (откуда тут 113 оО? и почему вместо пяти чисел тут их четыре..)
Ну и, как было замечено, число в конце строки не удаляет.
WNZRS, ты вобще извращенец  перевести строку в массив уже другая методика,
но зачем перебирать массив и выравнивать ключи вручную, когда есть стандарные функции?
зачем делать чтото типа
$array[$i+$minus] = $array[$i]; , если после всех операций по удалению можно заюзать, например, array_values() и взять индексный массив
(только зачем это надо, если implode() работает с ассоциативными массивами?)
Можно исправить скрипт m0Hze, например, изменив так:
было:
PHP код:
$return = str_replace($need.',','',$str);
стало:
PHP код:
$return = substr(str_replace(','.$need.',',',',','.$str.','),1,-1);
(но в учёт того, что я не знаю, как работает str_replace на низком уровне, а разбираться лень, то для гарантии того, что будут вырезаны ВСЕ требуемые числа, даже записанные подряд, можно использовать функцию два раза сразу)
PHP код:
$return = substr(str_replace(','.$need.',',',',str_replace(','.$need.',',',',','.$str.',')),1,-1);
(тут в кавычках 2 пробела сами появляются, их убить надо  )
или
PHP код:
$return = substr(str_replace(array(','.$need.',',','.$need.','),',',','.$str.','),1,-1);
Последний раз редактировалось roxblnfk; 10.05.2010 в 12:14..
|
|
|

10.05.2010, 08:19
|
|
Постоянный
Регистрация: 29.07.2009
Сообщений: 400
Провел на форуме: 1455812
Репутация:
150
|
|
А так можно?
PHP код:
<?php
$string = "1,5,154,32,123,132";
$need = "32";
echo preg_replace("#(^\d|\,|^)".$need."(\,|^|^\d)#",",",$string);
?>
|
|
|

10.05.2010, 13:33
|
|
Познающий
Регистрация: 07.02.2010
Сообщений: 70
Провел на форуме: 217996
Репутация:
56
|
|
да вы чё хоть...
LStr1ke, не знаю, зачем ты полез в регулярки, это же всё медленнее работает.
Но, если следовать твоим суждениям унифицировать алгоритм под любой разделитель, то проще написать в регулярках.
Допустим. Даже не смотря на кривость того, что если разделитель будет не запятой, то при замене числа на его месте появится именно запятая 
Признаюсь, я плохо шарю в регулярках, поэтому, если это твой код, задам тебе вопрос:
из твоей регулярки "#(^\d|\,|^)".$need."(\,|^|^\d)#"
что означает |^ во второй скобке? т.е. неэкранированный символ ^ в начале выбора без дальнейших символов.. (в первой скобке такой вариант чудом помогает убить нужное число в начале строки  )
в первых скобках у тебя ^\d для чего?  возьми строку $string = "132,1,5,154,32,123,32"; и эта последовательность уничтожит 132
В конце строки число 32 твоим алгоритмом не убивается.
На мой взгляд, регулярки надо использовать только тогда, когда без них никак (т.е. можно, но не выгодно ни по времени коддинга ни по производительности)
Вобщем, вот мой вариант, где разделяющие символы - любые, кроме десятичных цифр, и заменено оно будет на левый разделитель от данного числа
PHP код:
echo substr(preg_replace("/(\D)".intval($need)."(\D)/","\${1}",'®'.$string."\n"),1,-1);
И опять же, функцию надо будет взять не один раз, т.к. строку $string = "1^5^154^32^32^123^132"; полностью от числел 32 она не очистит за 1 раз
(либо править регулярку на подобные нонсенсы, либо брать функцию дважды, а то и трижды  вобщем по циклу через while... но это если число более 3х раз подряд в строке, тут проще разбить на массив)
так на строку $string = "32б1^5-154^32 32,32х32 32=32_32!32й123^132ы32"; нужно применить функцию 4 раза
остался ещё вариант перебора строки по байтам, этого ещё ни кто не предложил  хотя самый эффективный метод, имхо
Последний раз редактировалось roxblnfk; 10.05.2010 в 13:37..
|
|
|

10.05.2010, 15:45
|
|
Познающий
Регистрация: 17.02.2010
Сообщений: 64
Провел на форуме: 132243
Репутация:
1
|
|
существует алгоритм, который добавляет в переменную данные:
$error .= 'Вы уже полчили бонус за голос за '.$time.'<br/>';
после добавление всё это дело выводится через echo и получается следушая картина:
Вы уже полчили бонус за голос за 2010-05-10
Вы уже полчили бонус за голос за 2010-05-09
Вы уже полчили бонус за голос за 2010-05-08
а теперь вопрос как мне вывести только 1ую надпись?
Вы уже полчили бонус за голос за 2010-05-10
|
|
|

10.05.2010, 15:54
|
|
Участник форума
Регистрация: 12.03.2008
Сообщений: 159
Провел на форуме: 912928
Репутация:
137
|
|
привет! мне нужно сделать, чтобы когда человек заходил на страницу, отправлялся бы запрос на другой сервер, и действие на том сервере приосходило бы от его имени. например, в случае с ГЕТом, можно добавить ссылку на изображение вида "vk.com/change_settings.php?name=lol". можно как-то так же просто сделать это через ПОСТ, будет ли CURL работать в данном случае (ведь вроде как тогда запрос будет идти от сервера, а не от пользователя)?
|
|
|

10.05.2010, 15:58
|
|
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме: 12942062
Репутация:
1550
|
|
Курл не пройдет.
Обычный гет тоже не пройдет, везде нужны хеши.
Надо иметь пассивную XSS и написать скрипт, который сам будет выдирать хеш, подставлять и делать запрос - все через пассивку.
|
|
|

10.05.2010, 16:32
|
|
Участник форума
Регистрация: 12.03.2008
Сообщений: 159
Провел на форуме: 912928
Репутация:
137
|
|
там нету хэша, я не про контакт, просто для примера.
есть вариант сделать флешку, впринципе просто, но слишком палевно
|
|
|

10.05.2010, 16:39
|
|
Moderator - Level 7
Регистрация: 04.02.2007
Сообщений: 554
Провел на форуме: 7518056
Репутация:
1089
|
|
Сообщение от zavra
там нету хэша, я не про контакт, просто для примера.
есть вариант сделать флешку, впринципе просто, но слишком палевно
блин ты спрашиваеш про обыкновенное csrf здесьб почитай что умные люди пишут)))) http://www.inattack.ru/article/552.html
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|