( ! ) Fatal error: Cannot use isset() on the result of a function call (you can use "null !== func()" instead) in C:\Users\sanoj\Documents\NetBeansProjects\video-site\app\detect.php on line 45
Call Stack
#   Time    Memory  Function    Location
1   0.0000  234208  {main}( )   ..\index.php:0

Anteriormente mi código era

if(!defined('WAP'))
    define('WAP', isset($_REQUEST['wap']) || isset($_REQUEST['wap2']) || isset($_REQUEST['imode'])|| isset($_REQUEST['html'])|| isset($_REQUEST['Android'])|| isset($_REQUEST['iphone'])|| isset($_REQUEST['IEMobile']));

    if (WAP)
{
    define('WIRELESS_PROTOCOL', isset($_REQUEST['wap']) ? 'wap' : (isset($_REQUEST['wap2']) ? 'wap2' : (isset($_REQUEST['iphone']) ? 'iphone' : (isset($_REQUEST['imode']) ? 'imode' : (isset($_REQUEST['IEMobile']) ? 'IEMobile' :(isset($_REQUEST['html']) ? 'html' : (isset($_REQUEST['Android']) ? 'Android' : '')))))));  

Y mi IDE advirtió Do Not Access SuperGlobal $_REQUEST Array Directly
Así que he utilizado este código siguiente

if(!defined('WAP'))
{
    define('WAP', isset(filter_input(INPUT_REQUEST, 'wap', FILTER_SANITIZE_STRING)) || isset(filter_input(INPUT_REQUEST, 'wap2', FILTER_SANITIZE_STRING)) || isset(filter_input(INPUT_REQUEST, 'imode', FILTER_SANITIZE_STRING))|| isset(filter_input(INPUT_REQUEST, 'html', FILTER_SANITIZE_STRING))|| isset(filter_input(INPUT_REQUEST, 'Android', FILTER_SANITIZE_STRING))|| isset(filter_input(INPUT_REQUEST, 'iphone', FILTER_SANITIZE_STRING))|| isset(filter_input(INPUT_REQUEST, 'IEMobile', FILTER_SANITIZE_STRING)));
}
    if (WAP)
{
    define('WIRELESS_PROTOCOL', isset(filter_input(INPUT_REQUEST, 'wap', FILTER_SANITIZE_STRING)) ? 'wap' : (isset(filter_input(INPUT_REQUEST, 'wap2', FILTER_SANITIZE_STRING)) ? 'wap2' : (isset(filter_input(INPUT_REQUEST, 'iphone', FILTER_SANITIZE_STRING)) ? 'iphone' : (isset(filter_input(INPUT_REQUEST, 'imode', FILTER_SANITIZE_STRING)) ? 'imode' : (isset(filter_input(INPUT_REQUEST, 'IEMobile', FILTER_SANITIZE_STRING)) ? 'IEMobile' :(isset(filter_input(INPUT_REQUEST, 'html', FILTER_SANITIZE_STRING)) ? 'html' : (isset(filter_input(INPUT_REQUEST, 'Android', FILTER_SANITIZE_STRING)) ? 'Android' : '')))))));  

Aquí es detect.php

<?php
$userBrowser = $_SERVER['HTTP_ACCEPT']; 
if(stristr($userBrowser, 'application/vnd.wap.xhtml+xml')) 
{
$_REQUEST['wap2'] = 1;
}
elseif(stripos($_SERVER['HTTP_USER_AGENT'],"iPod"))
{
$_REQUEST['iphone'] = 1;
}
elseif(stripos($_SERVER['HTTP_USER_AGENT'],"iPhone"))
{
$_REQUEST['iphone'] = 1;
}
elseif(stripos($_SERVER['HTTP_USER_AGENT'],"Android"))
{
$_REQUEST['Android'] = 1;
}
elseif(stripos($_SERVER['HTTP_USER_AGENT'],"IEMobile"))
{
$_REQUEST['IEMobile'] = 1;
}
elseif(stristr($userBrowser, 'DoCoMo/' || 'portalmmm/'))
{
$_REQUEST['imode'] = 1;
}
elseif(stristr($userBrowser, 'text/vnd.wap.wml')) 
{
$_REQUEST['wap'] = 1;
}
elseif(stristr($userBrowser, 'text/html')) 
{
$_REQUEST['html'] = 1;
}
if(!defined('WAP'))
define('WAP', isset($_REQUEST['wap']) || isset($_REQUEST['wap2']) || isset($_REQUEST['imode'])|| isset($_REQUEST['html'])|| isset($_REQUEST['Android'])|| isset($_REQUEST['iphone'])|| isset($_REQUEST['IEMobile']));
if (WAP)
{
define('WIRELESS_PROTOCOL', isset($_REQUEST['wap']) ? 'wap' : (isset($_REQUEST['wap2']) ? 'wap2' : (isset($_REQUEST['iphone']) ? 'iphone' : (isset($_REQUEST['imode']) ? 'imode' : (isset($_REQUEST['IEMobile']) ? 'IEMobile' :(isset($_REQUEST['html']) ? 'html' : (isset($_REQUEST['Android']) ? 'Android' : '')))))));  
if (WIRELESS_PROTOCOL == 'wap')
{
$browser_t = "mobile";
}
elseif (WIRELESS_PROTOCOL == 'wap2')
{
$browser_t = "mobile";
}
elseif (WIRELESS_PROTOCOL == 'imode')
{
$browser_t = "mobile";
}
elseif (WIRELESS_PROTOCOL == 'iphone')
{
$browser_t = "smartphone";
}
elseif (WIRELESS_PROTOCOL == 'Android')
{
$browser_t = "smartphone";
}
elseif (WIRELESS_PROTOCOL == 'IEMobile')
{
$browser_t = "smartphone";
}
elseif (WIRELESS_PROTOCOL == 'html')
{
$mobile_browser = '0';
if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i',
strtolower($_SERVER['HTTP_USER_AGENT']))){
$mobile_browser++;
}
if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or 
((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))){
$mobile_browser++;
}
$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
$mobile_agents = array(
'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
'wapr','webc','winw','winw','xda','xda-');
if(in_array($mobile_ua,$mobile_agents)){
$mobile_browser++;
}
if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) {
$mobile_browser++;
}
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'iemobile')>0) {
$mobile_browser++;
}
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) {
$mobile_browser=0;
}
if($mobile_browser>0){
//do something wap
$browser_t = "mobile";
}
//non-mobile
else
{
$_SESSION['Browser_d'] = "web";
$browser_t = "web";
}
} else {
//do something else html
$_SESSION['Browser_d'] = "web";
$browser_t = "web";
}
}
else
{
$mobile_browser = '0';
if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i',
strtolower($_SERVER['HTTP_USER_AGENT']))){
$mobile_browser++;
}
if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or 
((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))){
$mobile_browser++;
}
$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
$mobile_agents = array(
'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
'wapr','webc','winw','winw','xda','xda-');
if(in_array($mobile_ua,$mobile_agents)){
$mobile_browser++;
}
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'iemobile')>0) {
$mobile_browser++;
}
if (strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0) {
$mobile_browser++;
}
if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0) {
$mobile_browser=0;
}
if($mobile_browser>0){
//do something wap
$browser_t = "mobile";
}
//non-mobile
else
{
$_SESSION['Browser_d'] = "web";
$browser_t = "web";
}
}
?>

Y index.php

<?php 
include "app/config.php";
include "app/detect.php";
if ($page_name=='') {
include $browser_t.'/index.html';
}
elseif ($page_name=='index.html') {
include $browser_t.'/index.html';
}
elseif ($page_name=='singlepage.html') {
include $browser_t.'/singlepage.html';
}
elseif ($page_name=='categories.html') {
include $browser_t.'/categories.html';
}
elseif ($page_name=='contact.html') {
include $browser_t.'/contact.html';
}
else
{
include $browser_t.'/404.html';
}
?>

Y config.php

<?php
$current_page_uri = $_SERVER['REQUEST_URI'];
$part_url = explode("/", $current_page_uri);
$page_name = end($part_url);
$email_id = "[email protected]";
?>

cuando el archivo de índice de carga debe detectar el dispositivo y redirigir a apropiado de la raíz, pero en mi caso no
Me obtiene el siguiente error

( ! ) Notice: Undefined index: ALL_HTTP in C:\Users\sanoj\Documents\NetBeansProjects\video-site-2\app\detect.php on line 118
Call Stack
#   Time    Memory  Function    Location
1   0.0090  233992  {main}( )   ..\index.php:0
2   0.0230  295896  include( 'C:\Users\sanoj\Documents\NetBeansProjects\video-site-2\app\detect.php' )  ..\index.php:11
( ! ) Warning: include(web/404.html): failed to open stream: No such file or directory in C:\Users\sanoj\Documents\NetBeansProjects\video-site-2\index.php on line 30
Call Stack
#   Time    Memory  Function    Location
1   0.0090  233992  {main}( )   ..\index.php:0
( ! ) Warning: include(): Failed opening 'web/404.html' for inclusion (include_path='.;C:\php\pear') in C:\Users\sanoj\Documents\NetBeansProjects\video-site-2\index.php on line 30
Call Stack
#   Time    Memory  Function    Location
1   0.0090  233992  {main}( )   ..\index.php:0
El error en sí mismo le dice lo que debe usar en lugar de isset(), puede utilizar «null !== func()» en lugar
por cierto: con isset puede probar varios elementos a la vez ~ isset( $var, $var2, $var3, $var4 )
lo probé pero no funciona
Isset comprueba si una variable «set» y se inicializa. El resultado de una función – en mi opinión – no puede ser no conjunto. Para comprobar si la variable «$_REQUEST[‘wap’]» es su primera construcción es adecuado a partir de la sintaxis de punto de vista. Sugiero que usted caso omiso de la advertencia de su IDE en este caso.
stristr($userBrowser, 'DoCoMo/' || 'portalmmm/') hace no hacer lo que probablemente pensó que lo hizo. Usted necesidad de utilizar dos diferentes stristr cheques, o una preg_match.

OriginalEl autor sanoj lawrence | 2016-01-23

5 Comentarios

  1. 4

    En primer lugar, NetBeans IDE muestra las advertencias para que no se confía en el$_REQUEST directamente los valores y validar de alguna manera. Mediante la comprobación de isset($_REQUEST['wap']) usted está haciendo ya una parte de la comprobación de que el IDE es lo que sugiere. Puede haber otros pasos de este proceso, que debe hacer antes de uso, como la inserción a la base de datos. Ignoro muchas de las NetBeans advertencias, porque, NetBeans no sabe, ¿qué voy a hacer con mis entradas /variables. Sólo me advierte acerca de las mejores prácticas, que puede o puede no ser la mejor para mi caso. Y advertencias debe ser tomado como sólo sugerencias, no es algo que debe hacer.

    En segundo lugar, si usted utiliza filter_input(), usted no necesita utilizar isset() además. Porque, filter_input() ya está haciendo por usted. Como la documentación que se dice,

    Valores de retorno : Valor de la variable requerida en caso de éxito, FALSE si el filtro falla, o NULL si el variable_name variable no está establecida. Si la bandera FILTER_NULL_ON_FAILURE se utiliza, devuelve FALSE si la variable no está establecida y NULL si el filtro falla.

    Así que usted puede simplemente eliminar isset() y su código debería funcionar de forma segura. Pero usted todavía puede querer comprobar si el valor se establece para aplicar los valores alternativos. En ese caso sólo tienes que utilizar vaciar() función que devolverá el FALSE cuando el valor devuelto desde filter_input() es NULL /FALSE. Tan sólo niega la condición para que coincida con su caso. Como de esta manera –

    if(!defined('WAP'))
    {
    define('WAP', !empty(filter_input(INPUT_REQUEST, 'wap', FILTER_SANITIZE_STRING)) || !empty(filter_input(INPUT_REQUEST, 'wap2', FILTER_SANITIZE_STRING)) || !empty(filter_input(INPUT_REQUEST, 'imode', FILTER_SANITIZE_STRING))|| !empty(filter_input(INPUT_REQUEST, 'html', FILTER_SANITIZE_STRING))|| !empty(filter_input(INPUT_REQUEST, 'Android', FILTER_SANITIZE_STRING))|| !empty(filter_input(INPUT_REQUEST, 'iphone', FILTER_SANITIZE_STRING))|| !empty(filter_input(INPUT_REQUEST, 'IEMobile', FILTER_SANITIZE_STRING)));
    }
    if (WAP)
    {
    define('WIRELESS_PROTOCOL', !empty(filter_input(INPUT_REQUEST, 'wap', FILTER_SANITIZE_STRING)) ? 'wap' : (!empty(filter_input(INPUT_REQUEST, 'wap2', FILTER_SANITIZE_STRING)) ? 'wap2' : (!empty(filter_input(INPUT_REQUEST, 'iphone', FILTER_SANITIZE_STRING)) ? 'iphone' : (!empty(filter_input(INPUT_REQUEST, 'imode', FILTER_SANITIZE_STRING)) ? 'imode' : (!empty(filter_input(INPUT_REQUEST, 'IEMobile', FILTER_SANITIZE_STRING)) ? 'IEMobile' :(!empty(filter_input(INPUT_REQUEST, 'html', FILTER_SANITIZE_STRING)) ? 'html' : (!empty(filter_input(INPUT_REQUEST, 'Android', FILTER_SANITIZE_STRING)) ? 'Android' : '')))))));
    } 

    Segundo Error

    Notice: Undefined index: ALL_HTTP

    No pude encontrar ninguna variable llamada ALL_HTTP en la documentación de php para $_SERVER. A fin de comprobar el enlace y encontrar uno que puede servir a su propósito. No estoy seguro de lo que en realidad está tratando de conseguir con ella, Así que no se puede sugerir alguna.

    Tercer Error

    Warning: include(web/404.html): failed to open stream.

    El error ya dice que el archivo no existe. De modo que el archivo no existe o haya proporcionado la ruta de acceso de forma incorrecta. Pls comprobar y corregir eso.

    ¿qué acerca de otra cosa es que a la derecha se puede corregir completo archivo de detect.php
    He añadido notas para el resto de las cuestiones anteriormente mencionadas. Pls comprobar la última edición. También si usted tiene la misma isset() tema en otros archivos, creo que se puede solucionar de la misma manera, si se entiende mi lógica. Recuerde, no estamos dando ningún código de servicio aquí, sólo estamos ayudando el uno al otro. 🙂

    OriginalEl autor Tᴀʀᴇǫ Mᴀʜᴍᴏᴏᴅ

  2. 2

    Quitar el isset() llamadas en tu segundo ejemplo, y se debe trabajar.

    if(!defined('WAP'))
    {
    define('WAP', filter_input(INPUT_REQUEST, 'wap', FILTER_SANITIZE_STRING) || filter_input(INPUT_REQUEST, 'wap2', FILTER_SANITIZE_STRING) || filter_input(INPUT_REQUEST, 'imode', FILTER_SANITIZE_STRING)|| filter_input(INPUT_REQUEST, 'html', FILTER_SANITIZE_STRING)|| filter_input(INPUT_REQUEST, 'Android', FILTER_SANITIZE_STRING)|| filter_input(INPUT_REQUEST, 'iphone', FILTER_SANITIZE_STRING)|| filter_input(INPUT_REQUEST, 'IEMobile', FILTER_SANITIZE_STRING));
    }
    if (WAP)
    {
    define('WIRELESS_PROTOCOL', filter_input(INPUT_REQUEST, 'wap', FILTER_SANITIZE_STRING) ? 'wap' : (filter_input(INPUT_REQUEST, 'wap2', FILTER_SANITIZE_STRING) ? 'wap2' : (filter_input(INPUT_REQUEST, 'iphone', FILTER_SANITIZE_STRING) ? 'iphone' : (filter_input(INPUT_REQUEST, 'imode', FILTER_SANITIZE_STRING) ? 'imode' : (filter_input(INPUT_REQUEST, 'IEMobile', FILTER_SANITIZE_STRING) ? 'IEMobile' :(filter_input(INPUT_REQUEST, 'html', FILTER_SANITIZE_STRING) ? 'html' : (filter_input(INPUT_REQUEST, 'Android', FILTER_SANITIZE_STRING) ? 'Android' : '')))))));
    }

    Esto es debido a que el filter_input() función devolverá un valor que se evalúa a verdadero/falso ya, así que usted no necesita la isset() así. Echa un vistazo a los valores de retorno de la El Manual de PHP para filter_input() para obtener más información.

    Puede que también desee comprobar hacia fuera empty() y is_null() y ver cómo se comparan con isset() en su uso. La función empty() tendría más sentido en esta situación.

    Para el problema con indefinido %_SERVER['ALL_HTTP'], usted debe utilizar isset() hay que comprobar primero si la variable existe. Ejemplo:

    if (isset($_SERVER['ALL_HTTP']) && strpos(strtolower($_SERVER['ALL_HTTP']), 'OperaMini') > 0) {
    $mobile_browser++;
    }

    El error con la falta 404 archivo es algo que no puedo resolver, sin saber a donde el archivo se coloca. Sin embargo, el incluir que está utilizando está buscando:

    C:\Users\sanoj\Documents\NetBeansProjects\video-site-2\web\404.html

    Usted necesita para crear/mover el archivo en esa ubicación, o cambiar el include path para que apunte a la derecha la ubicación del archivo. Puede que me dé la ubicación del archivo y yo te daré la correcta incluir la ruta de acceso.

    ¿qué acerca de otra cosa es que a la derecha se puede corregir completo archivo de detect.php
    Por favor, consulte la segunda parte de mi respuesta para la información adicional sobre los errores.

    OriginalEl autor Siphon

  3. 1

    Usted debe considerar el uso de un más lisible código:

    Paso 1: obtener las variables que coincidan con sus necesidades en una matriz

    $tab=array_filter(filter_input_array(INPUT_SERVER,Array(
    'wap'     =>FILTER_SANITIZE_STRING,
    'wap2'    =>FILTER_SANITIZE_STRING,
    'imode'   =>FILTER_SANITIZE_STRING,
    'html'    =>FILTER_SANITIZE_STRING,
    'Android' =>FILTER_SANITIZE_STRING,
    'iphone'  =>FILTER_SANITIZE_STRING,
    'IEMobile'=>FILTER_SANITIZE_STRING)));

    Paso 2: Use la primera variable detectado

    if(!defined('WAP'))&&(count($tab)) {
    define('WAP', $tab[0]);
    }

    También, como ya se ha dicho en otras respuestas, usted tiene que utilizar filter_input() funciones con el fin de satisfacer su IDE advertencia Do Not Access SuperGlobal $_REQUEST Array Directly

    OriginalEl autor Adam

  4. 0

    Uso isset() como :

        if(!defined('WAP')){
    if(isset($_REQUEST['wap']) || isset($_REQUEST['wap2']) || ..){
    $wap = $_REQUEST['wap']);
    $wap2 = $_REQUEST['wap2']);
    //other variables
    define('WAP', $wap || $wap2 || ..);
    }
    }

    OriginalEl autor Jsparo30

  5. 0

    Mientras que la primera parte no responder directamente a su pregunta, es una nota importante y que probablemente le ahorrará un montón de dolor en su aplicación. Usted está utilizando las constantes de forma incorrecta, lo que puede volver a morder.

    Considere el siguiente código:

    if(!defined('WAP'))
    define('WAP', isset($_REQUEST['wap']) 
    || isset($_REQUEST['wap2']) || isset($_REQUEST['imode'])
    || isset($_REQUEST['html'])|| isset($_REQUEST['Android'])
    || isset($_REQUEST['iphone'])|| isset($_REQUEST['IEMobile']));

    Estas líneas de decir «si WAP no está definido, a continuación, asignar WAP un valor de verdadero si cualquiera de las siguientes acciones en el REQUEST alcance: wap, wap2, imode, html, Android, iphone, o IEMobile. Si NO están en el ámbito de petición, asignar WAP constante el valor false.

    Sé que esto puede sentirse trivial, pero las constantes deben tener el mismo valor, independientemente de cualquier otro sistema de la realidad. Las constantes deben ser muy fáciles de descubrir los valores. Mira cómo PHP utiliza constantes para que se den una idea. E_NOTICE es siempre el mismo valor. Por lo tanto, usted puede utilizar el número entero (8) que representa E_NOTICE o puede utilizar E_NOTICE constante para obtener el mismo resultado exacto.

    Si, por otro lado, E_NOTICE era igual a 8, a menos que haya especificado que los avisos deben desencadenar un error grave, en cuyo caso E_NOTICE era igual a 16 (aka E_CORE_ERROR), entonces usted tendría un poco de confusión en sus manos.

    ¿Por qué importa esto en esta instancia?

    Considerar el código:

    if(!defined('WAP'))
    {
    define('WAP', isset(filter_input(INPUT_REQUEST, 'wap', FILTER_SANITIZE_STRING)) 
    || isset(filter_input(INPUT_REQUEST, 'wap2', FILTER_SANITIZE_STRING)) 
    || isset(filter_input(INPUT_REQUEST, 'imode', FILTER_SANITIZE_STRING))
    || isset(filter_input(INPUT_REQUEST, 'html', FILTER_SANITIZE_STRING))
    || isset(filter_input(INPUT_REQUEST, 'Android', FILTER_SANITIZE_STRING))
    || isset(filter_input(INPUT_REQUEST, 'iphone', FILTER_SANITIZE_STRING))
    || isset(filter_input(INPUT_REQUEST, 'IEMobile', FILTER_SANITIZE_STRING)));
    }

    Que están haciendo un montón de gimnasia mental para asegurarse de que una constante es el conjunto a una sesión específica. Mientras que existen maneras de limpiar el código, para no provocar un error, va a contener una cuestión a la que se puede volver a morder, es decir, está utilizando las constantes de donde usted debe utilizar una variable, o, mejor aún, una función.

    Como las siguientes:

    function is_wap()
    {
    return (filter_input(INPUT_REQUEST, 'wap2', FILTER_SANITIZE_STRING)
    || filter_input(INPUT_REQUEST, 'imode', FILTER_SANITIZE_STRING)
    || filter_input(INPUT_REQUEST, 'html', FILTER_SANITIZE_STRING)
    || filter_input(INPUT_REQUEST, 'Android', FILTER_SANITIZE_STRING)
    || filter_input(INPUT_REQUEST, 'iphone', FILTER_SANITIZE_STRING)
    || filter_input(INPUT_REQUEST, 'IEMobile', FILTER_SANITIZE_STRING));
    }

    Ahora, sustituir WAP con is_wap().

    Más en línea con su pregunta, usted no uso isset() en contra de una función directa de la llamada. Usted puede hacer una de tres cosas para evitar este:

    1. Como PHP, sugiere que, en lugar de utilizar null !==. Este es probablemente el más fácil de taquigrafía solución.

    Ejemplo:

    if (isset(filter_input(INPUT_REQUEST, 'imode', FILTER_SANITIZE_STRING)))
    ...

    Fácilmente puede ser escrito como

    if (null !== ($imode = filter_input(INPUT_REQUEST, 'imode', FILTER_SANITIZE_STRING)))
    ...

    Conseguir que su asignación de variable así.

    1. Si usted insiste en usar isset() a continuación, puede asignar la variable de antemano.

      $imode = filter_input(INPUT_REQUEST, ‘imode’, FILTER_SANITIZE_STRING);
      if (isset($imode))

    2. Puede utilizar function valores de retorno para determinar el resultado. Usted puede incluso crear una función personalizada para manejar la lógica de que si un tercero o incorporado en la función no tiene el derecho de devolución de valor.

    Por ejemplo, si usted sólo desea asegurarse de que el valor no es igual a null (y estás bien con él siendo falso), puede utilizar este:

    function isNotNull($val)
    {
    return ($val !== null);
    //note that, because you've essentially passed the function result,
    //you could use this line instead:
    //return isset($val);
    }

    A continuación, en el código, se puede utilizar la función personalizada:

    isNotNull(filter_input(INPUT_REQUEST, 'wap', FILTER_SANITIZE_STRING)) 
    || isNotNull(filter_input(INPUT_REQUEST, 'wap2', FILTER_SANITIZE_STRING)) 
    || isNotNull(filter_input(INPUT_REQUEST, 'imode', FILTER_SANITIZE_STRING))
    || isNotNull(filter_input(INPUT_REQUEST, 'html', FILTER_SANITIZE_STRING))
    || isNotNull(filter_input(INPUT_REQUEST, 'Android', FILTER_SANITIZE_STRING))
    || isNotNull(filter_input(INPUT_REQUEST, 'iphone', FILTER_SANITIZE_STRING))
    || isNotNull(filter_input(INPUT_REQUEST, 'IEMobile', FILTER_SANITIZE_STRING)));

    Tenga en cuenta que debido a filter_input devuelve false si el filtro falla y null si la variable no existe. Así, puede ser más ventajoso para omitir isset completo que hará que su lógica de verificación para determinar si una variable existe sin la posibilidad de que el filtro puede fallar.

    Debo señalar que la probabilidad de un filtro de fracasar en la producción es baja. Va en un círculo completo, a mi punto original, una de las razones por las que es tan baja se debe a que los filtros son constantes, y SIEMPRE representar la misma cosa.

    OriginalEl autor smcjones

Dejar respuesta

Please enter your comment!
Please enter your name here