рдХреЛрд╣рдирд╛ рдореЗрдВ рдХрдордЬреЛрд░рддрд╛?

рдХрд▓, рдХреЛрд╣рдирд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣рдорд╛рд░рд╛ рдкреЛрд░реНрдЯрд▓ рдПрдХ рд╕рдлрд▓ рд╣рдорд▓реЗ рд╕реЗ рдЧреБрдЬрд░рд╛ред рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдХрд┐ рдПрдХ рд╕рдореНрдорд╛рдирд┐рдд рдврд╛рдВрдЪреЗ рдкрд░ рдкрд╛рдк рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬрд┐рд╕рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдкрд┐рдЫрд▓реЗ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИ, рдкрд╣рд▓реА рдмрд╛рд░ рдореЗрдВ рднреА рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХреА рдЧрдИ рдереАред рд╣рдорд╛рд░реА рд╕рд╛рдЗрдЯ рдХреЛ рдХреНрд░реЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдЗрд╕ рднреЗрджреНрдпрддрд╛ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 95 рд╣рдЬрд╝рд╛рд░ рдЕрдиреБрд░реЛрдз рдФрд░ 5 рдШрдВрдЯреЗ рд▓рдЧреЗред рдХреЛрд╣рд╛рдирд╛ рдХрд░реНрдиреЗрд▓ рд╕рдВрд╕реНрдХрд░рдг 3.2 рд╕реЗ рдЗрди рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
public function redirect($url = '', $code = 302) { $referrer = $this->uri(); $protocol = ($this->secure()) ? 'https' : TRUE; if (strpos($referrer, '://') === FALSE) { $referrer = URL::site($referrer, $protocol, ! empty(Kohana::$index_file)); } if (strpos($url, '://') === FALSE) { // Make the URI into a URL $url = URL::site($url, TRUE, ! empty(Kohana::$index_file)); } if (($response = $this->response()) === NULL) { $response = $this->create_response(); } echo $response->status($code) ->headers('Location', $url) ->headers('Referer', $referrer) ->send_headers() ->body(); // Stop execution exit; } 
 public static function site($uri = '', $protocol = NULL, $index = TRUE) { // Chop off possible scheme, host, port, user and pass parts $path = preg_replace('~^[-a-z0-9+.]++://[^/]++/?~', '', trim($uri, '/')); if ( ! UTF8::is_ascii($path)) { // Encode all non-ASCII characters, as per RFC 1738 $path = preg_replace('~([^/]+)~e', 'rawurlencode("$1")', $path); } // Concat the URL return URL::base($protocol, $index).$path; } 
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрдиреБрд░реЛрдз рдХреЗ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, URL :: рд╕рд╛рдЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╡рд░реНрддрдорд╛рди uri рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдВрд╢реЛрдзрдХ "e" рдХреЗ рд╕рд╛рде preg_replace рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: url рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЦрдВрдб рдореЗрдВ rawurlencode рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЦрдВрдб рджреЛрд╣рд░реЗ рдЙрджреНрдзрд░рдг рдЪрд┐рд╣реНрдиреЛрдВ рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдХреБрдЫ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХреБрдЫ рдРрд╕рд╛ ($ {@ phpinfo ()}) рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рд▓рд┐рдВрдХ http: // рд╕рд╛рдЗрдЯ / рдкрде / param1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ param1 рдХреА рддрд░рд╣ рдПрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ ($ {@ phpinfo ()}) рдЬреЛрдбрд╝рдХрд░, рдЖрдк рдХреБрдЫ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдкреИрд░рд╛рдо 1 рдореЗрдВ рдЧреИрд░-рдЕрд╕рд┐рд╕реА рдЕрдХреНрд╖рд░ рднреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░реВрд╕реА рдЕрдХреНрд╖рд░ ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдмреЙрдЯ рджреНрд╡рд╛рд░рд╛ рднреЗрджреНрдпрддрд╛ рдкрд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рдЖрджрдореА рдиреЗ рдорд╛рдорд▓реЗ рдХреЛ рдЙрдард╛рдпрд╛, рдФрд░ рдХреБрдЫ рд╕рдордп рдХреЗ рдмрд╛рдж рдХреБрдЫ рд╕рд░рд▓ рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЗ рд╕рд╛рде рд╡рд╣ рдЗрд╕ рдЫреЗрдж рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╢реЗрд▓ рдХреЛ рднрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ред рдЗрд╕рдореЗрдВ рдЕрдореВрд▓реНрдп рдорджрдж рдРрд╕реЗ рдХреНрд╖рдг рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рдереАред рдХреЛрдЦрдиреЛрд╡реНрд╕реНрдХреА рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдпрд╣ рдЯреБрдХрдбрд╝рд╛ рд╣реИ:
 public static function handler(Exception $e) { // ..... // if (Request::$current !== NULL AND Request::current()->is_ajax() === TRUE) { // Just display the text of the exception echo "\n{$error}\n"; exit(1); } // ..... // } 
рдЕрдиреБрд░реЛрдз рдореЗрдВ рдПрдХреНрд╕-рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ-рд╡рд┐рде рд╣реЗрдбрд░ рд╣реИ рдЬреЛ XMLHttpRequest рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ? рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд░рдЦреЗрдВ! рдЯреНрд░реИрдХрд░ рдХреЛрд╣рдирд╛ рдкрд╣рд▓реЗ рд╣реА рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рдЪреБрдХрд╛ рд╣реИред


Source: https://habr.com/ru/post/In150201/


All Articles