1) Выведи $header перед отправкой, после формитрования POST заголовков и тела запроса. Это чтобы точно знать, что изначально отправляется нормальный запрос. 2) Отправь запрос на какую-нибудь свою страницу, на которой выведи его, и посмотри, как запрос выглядит на ней. Это чтобы понять, что проблема не в снифере, лол.
Сделайте вывод переменных в браузер/консоль. От вашего бездействия со словом "актуально" ничего само собой не заработает
Делал и нераз. Все переменные в браузере выводяться нормально. Снифер тоже какбэ рабочий, но почему так происходит я хз.
У вас на скрине в hash[_csrf_token] залезли HTTP-заголовки. Что они там делают? Что выведется в браузер, если после строки PHP: $hash_csrf_token=substr(someparse); // это что вообще за псевдокод? добавить PHP: die ('F**cking token' . $hash_csrf_token); ?
Точно также сдампите $header перед вызовом fsockopen(). И замените "POST someuri/request" на "POST /someuri/request"
PHP: <?php $header=""; $header="GET /webcrack HTTP/1.0\r\n"; $header=$header."Accept-Language: en-us,en;q=0.5\r\n"; $header=$header."Accept-Charset: utf-8,*;q=0.7\r\n"; $header=$header."Accept: text/html,image/jpeg,image/gif,text/xml,text/plain,image/png,*/*;q=0.5"; $header=$header."User-Agent: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.50\r\n"; $header=$header."Connection: keep-alive\r\n"; $header=$header."Host: c0llision.net\r\n\r\n"; $dt=""; $fp=fsockopen("c0llision.net", 80); fwrite($fp, $header); while(!feof($fp)) { $dt.=fread($fp, 1024); } fclose($fp); $hash_csrf_token=""; $hash_csrf_token=substr($dt,strpos($dt,"name=\"hash[_csrf_token]\" value=\"")+32,32); die('F**cking token' . $hash_csrf_token); $header=""; $data = "hash[_input_]=aeb4a56435de6112f6ec25ae8df62a26&hash[_csrf_token]=".$hash_csrf_token; $header="POST /webcrack/request HTTP/1.1\r\n"; $header=$header."Accept-Language: en-us,en;q=0.5\r\n"; $header=$header."Accept-Charset: utf-8,*;q=0.7\r\n"; $header=$header."Accept: text/html,image/jpeg,image/gif,text/xml,text/plain,image/png,*/*;q=0.5\r\n"; $header=$header."User-Agent: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.50\r\n"; $header=$header."Connection: keep-alive\r\n"; $header=$header."Host: c0llision.net\r\n\r\n"; $header=$header.$data."\r\n"; $fp=fsockopen("c0llision.net", 80); fwrite($fp, $header); while(!feof($fp)){ $answer.= fread($fp, 1024); } fclose($fp); echo $answer; echo "$header"; echo "hash_csrf_token"; flush(); ?> Вот мой скрЯпт. Может у меня действительно с руками что-то не то, но переменные выводит нормально...
shadowrun, куку выцепляйте и пересмотрите пост-запрос — добавьте Content-Type, Content-Length, X-Requested-With, Cookie, Referer и, возможно, Origin. Но без куки вы не получите ответа. PS. А почему сокеты, а не curl?
Спасибо учту, но меня интересует, почему к моим параметрам добавляется вообще левый текст? Быстрее на сокетах вроде, да и принцип мне понятнее...
Нуждаюсь в помощи. Есть html текст PHP: КУЧА html тегов <a href="/pictures/view_post/1234567?lang=ru" title="text text text" ><img id="common_preview_1234567" alt="text text text" src="http://site.org/images/0e0/0e01833a6e61e2adc5_bp.jpg" /></a> КУЧА html тегов Нужно выбрать из него адрес картинки, цифры в id и поле alt. Пробовал через preg_match_all, но успеха не добился.
PHP: preg_match("/<img id=\"common\_preview\_(.*?)\"/",$a,$number_id); preg_match("/alt=\"(.*?)\"/",$a,$alt); preg_match("/src=\"(.*?)\"/",$a,$src); echo $number_id[1]."<br>".$alt[1]."<br>".$src[1];
Меня волнует вопрос... есть некоторая информация, которую должен получить скрипт. Запросы идут часто. Что быстрее будет работать - текстовая бд или Mysql? бд примитивная - строки с текстовыми данными.
PHP: preg_match('#<a [^>]+>\s*<img\s*id="([^"]+)"\s*alt="([^"]+)"\s*src="([^"]+)"\s*/>\s*</a>#is', твой_хтмл, $m) В $m[1] будет id, в $m[2] - alt, $m[3] - адрес картинки. Это при условии, если в хтмл нет дркгих конструкций, подобных этой - <a><img></a>
Такой вопрос, сори если не очень в тему, когда отправляешь письмо функцией mail() какая инфа сохраяется в логах? сохраняется ли тело письма или нет?
Безопасен ли такой код? PHP: $pages = array(); //Массив с именами допустимых стр. //$_GET['page'] имя нужной стр. if (!isset($_GET['page'])) { header('Location: index.php?page=auth'); exit(); } //Проверяем передано ли нормальное имя стр. if (!in_array($_GET['page'], $pages)) { header('Location: index.php?page=auth'); exit(); } if (!$page = file_get_contents('pages/'.$_GET['page'].'.html')) { die('Внутренняя ошибка обновитке пожалуйста стр.'); }