检查变量中的字符,如果存在则更改它

时间:2015-03-04 16:35:49

标签: php

我有这个代码可以阻止人们在查询字符串中输入点和斜杠。 该字符串被定义为一个变量,如果该变量包含一个''或者' /'我想用禁止和主要替换它们。

    <?php
    if( strpos( $page, '/' ) === true ) { $page = 'forbidden'; $inner_page = 'main'; }
    elseif( strpos( $page, '.' ) === true ) { $page = 'forbidden'; $inner_page = 'main'; }
    elseif( strpos( $inner_page, '/' ) === true ) { $page = 'forbidden'; $inner_page = 'main'; }
    elseif( strpos( $inner_page, '.' ) === true ) { $page = 'forbidden'; $inner_page = 'main'; }
?>

此代码(isAllowedURL.php)正在加载到此代码中:

    <?php
    $page = 'home';
    $inner_page = 'main';
if( isset( $_GET['page'] ) )
{
    $page = htmlspecialchars( $_GET['page'] );
}

if( isset( $_GET['subpage'] ) )
{
    $inner_page = htmlspecialchars( $_GET['subpage'] );
}
include ('/indexBuilder/linkSecurity/isAllowedURL.php');
?>

正如您所看到的,如果变量存在,它会将变量更改为查询,如果变量包含禁止的字符,我想将其更改回来。

为什么此代码无法正常运行?

- 我将true更改为false,并禁止每个页面被修改,将其更改回来,没有任何地方。

1 个答案:

答案 0 :(得分:0)

求助:

您需要使用!==查看它们是否存在。你也不能在strpos上使用true。

if( strpos( $page, '/' ) !== false ) { $page = 'forbidden'; $inner_page = 'main'; }