www tipos tag preparado manager gtm googletagmanager google eventos activadores curl php

tipos - CURLOPT_FOLLOWLOCATION no se puede activar



tipos de activadores en tag manager (5)

Intente esto, si se requiere una redirección y está habilitado el modo seguro, seguirá el enlace basado en el encabezado (si sus imágenes de captura, aunque esto no funcionará ya que agrega el encabezado a la devolución), esta es una solución a su problema específico. Tuve el mismo problema cuando un cliente instaló uno de mis scripts, así que tuve que encontrar esto ... También registrará errores en: curl.error.log ... útil eh

<?php function geturl($url) { (function_exists(''curl_init'')) ? '''' : die(''cURL Must be installed for geturl function to work. Ask your host to enable it or uncomment extension=php_curl.dll in php.ini''); $curl = curl_init(); $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,"; $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; $header[] = "Cache-Control: max-age=0"; $header[] = "Connection: keep-alive"; $header[] = "Keep-Alive: 300"; $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7"; $header[] = "Accept-Language: en-us,en;q=0.5"; $header[] = "Pragma: "; curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_USERAGENT, ''Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0 Firefox/5.0''); curl_setopt($curl, CURLOPT_HTTPHEADER, $header); curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_REFERER, $url); curl_setopt($curl, CURLOPT_ENCODING, ''gzip,deflate''); curl_setopt($curl, CURLOPT_AUTOREFERER, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); //curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); //CURLOPT_FOLLOWLOCATION Disabled... curl_setopt($curl, CURLOPT_TIMEOUT, 60); $html = curl_exec($curl); $status = curl_getinfo($curl); curl_close($curl); if ($status[''http_code''] != 200) { if ($status[''http_code''] == 301 || $status[''http_code''] == 302) { list($header) = explode("/r/n/r/n", $html, 2); $matches = array(); preg_match("/(Location:|URI:)[^(/n)]*/", $header, $matches); $url = trim(str_replace($matches[1],"",$matches[0])); $url_parsed = parse_url($url); return isset($url_parsed) ? geturl($url) : ''''; } $oline=''''; foreach ($status as $key => $eline) { $oline .= ''[''.$key.'']''.$eline.'' ''; } $line = $oline." /r/n ".$url."/r/n-----------------/r/n"; $handle = @fopen(''./curl.error.log'', ''a''); fwrite($handle, $line); return false; } return $html; }

Esta pregunta ya tiene una respuesta aquí:

Así que sigo recibiendo este error molesto en varios servidores (es una advertencia, así que lo ignoraría, pero necesito la función)

Advertencia: curl_setopt () [function.curl-setopt]: CURLOPT_FOLLOWLOCATION no se puede activar cuando safe_mode está habilitado o hay un open_basedir configurado en /home/xxx/public_html/xxx.php en la línea 56

¿Cómo voy a arreglar esto a través de SSH?


Para resolver este problema, simplemente ponga safe_mode = Off y borre open_base_dir en el archivo php.ini.


Simplemente, siempre que se http://www.php.net/manual/en/ini.core.php#ini.open-basedir o safe_mode en el archivo php.ini, no se puede usar la configuración de CURLOPT_FOLLOWLOCATION. Para cambiar esa configuración, solo puedo dar notas generales:

  1. SSH al servidor
  2. cd al directorio (generalmente / etc / php5 en linux, depende de su distribución o sistema operativo) que contiene php.ini
  3. sudo para editar (por ejemplo, sudo nano php.ini ).
  4. edite las líneas que especifican open_basedir o safe_mode y desactívelas.

¡Recuerda reiniciar tu httpd después!



Establezca safe_mode = Off en su archivo php.ini (generalmente está en / etc / en el servidor). Si eso ya está desactivado, entonces busque las cosas de open_basedir en el archivo php.ini y cámbielo según corresponda.

Básicamente, la opción de ubicación de seguimiento se ha deshabilitado como medida de seguridad, pero las funciones de seguridad integradas de PHP son generalmente más molestas que seguras. De hecho, safe_mode está en desuso en PHP 5.3 .