30 июля 2018
Нет комментариев
parse_url($_SERVER['HTTP_REFERER'],PHP_URL_HOST)
parse_url($_SERVER['HTTP_REFERER'],PHP_URL_HOST)
По умолчанию:
Server => Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16
В /etc/php.ini
expose_php = Off
Результат:
Server => Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips
В /etc/httpd/conf/httpd.conf
ServerTokens Prod
Результат:
Server => Apache
if($_SERVER['HTTP_X_REQUESTED_WITH']=='com.example.app'){ echo 'Это мое приложение, а не мобильный браузер'; }
com.example.app
— имя нашего пакета
$timeout=15; $client=new SoapClient("http://host.com/service.asmx?WSDL",array('connection_timeout'=>$timeout));
$timeout=15; curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); curl_setopt($ch,CURLOPT_TIMEOUT,$timeout);
Нужно используя CURL просто получить URL перенаправления, но не переходить по нему внутри CURL.
$post_fields=array( "field1"=>$value1, "field2"=>$value2, ); $curl=curl_init(); curl_setopt($curl,CURLOPT_URL,'https://site.ru/path/'); curl_setopt($curl,CURLOPT_HEADER,1); curl_setopt($curl,CURLOPT_POST,1); curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); curl_setopt($curl,CURLOPT_FOLLOWLOCATION,false); curl_setopt($curl,CURLOPT_POSTFIELDS,$post_fields); $res=curl_exec($curl); curl_close($curl); preg_match_all('/^Location:(.*)$/mi',$res,$matches); if(!empty($matches[1])){ header("Location: ".trim($matches[1][0]),true,301); } exit();
При отправке писем, используя функцию php mail(), при появлении в сообщении в произвольных на первый взгляд местах символов "! " (восклицательный знак и пробел) — вручную добавить переносы строк:
$crlf="\r\n"; $message.='...text'.$crlf;
Проблема из-за ограничения длины строки (вероятно возможно где-то увеличить этот лимит, но надежнее добавить переносы строк, чтобы избежать проблем при переносе сайта на другой сервер с default настройками).