Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试在PHP中基于url显示标题_Php_If Statement - Fatal编程技术网

尝试在PHP中基于url显示标题

尝试在PHP中基于url显示标题,php,if-statement,Php,If Statement,所以我准备了一个简单的php页面,它将根据url的位置显示不同的内容。出于某种原因,它似乎什么也不做就完成了整个if语句 <?php if(array_key_exists('offer', $_GET)) { if( $_GET == "ncp" ){ $title = 'Exclusive Offer from NCP'; } elseif($_GET == "rt") { $title = 'Ex

所以我准备了一个简单的php页面,它将根据url的位置显示不同的内容。出于某种原因,它似乎什么也不做就完成了整个if语句

<?php
    if(array_key_exists('offer', $_GET)) {
        if( $_GET == "ncp" ){
            $title = 'Exclusive Offer from NCP';
        } elseif($_GET == "rt") {
            $title = 'Exclusive Offer from RT';
        } elseif($_GET == "oo") {
            $title = 'Exclusive Offer from OO';
        }
    } else {
        $title = 'Check Out These Exclusive Offers!';
    }
    $title = strip_tags($title);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title><?php echo $title; ?></title>
<link href="style.css" rel="stylesheet" type="text/css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script>
<script type="text/javascript">

</script>
</head>

您应该使用
$\u GET['offer']==“foo”
而不是
$\u GET==“foo”

更好的方法是,在将来使用严格的比较,以确保比较相同的类型(在本例中为字符串):
==
。这是因为PHP倾向于强制转换类型,这既有用又烦人(请参阅):

$\u GET


比较运算符:

这是如何在php中使用$\u GET的。试试看

<?php
if(isset($_GET['offer'])){
    if( $_GET['offer'] == "ncp" ){
    $title = 'Exclusive Offer from NCP';
    }
    elseif( $_GET['offer'] == "rt" ){
    $title = 'Exclusive Offer from RT';
    }
    elseif( $_GET['offer'] == "oo" ){
    $title = 'Exclusive Offer from OO';
    }
} 
else {
    $title = 'Check Out These Exclusive Offers!';
}
$title = strip_tags($title);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title><?php echo $title; ?></title>
<link href="style.css" rel="stylesheet" type="text/css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script>
<script type="text/javascript">
</script>
</head>

另一种方法试试这个 我总是强调清理通过$\u POST、$\u GET或任何外部源传递的任何变量,这就是我使用filter\u var的原因

<?php

    if(isset($_GET['offer'])) {     
      //lets sanitize $_GET['offer'] if it exist since its passed via url
      $offer = filter_var($_GET['offer'], FILTER_SANITIZE_STRING);
    } else {
      $offer = NULL;
    }

    switch ($offer) {
    case 'ncp':
      $title = 'Exclusive Offer from NCP';
    break;
    case 'rt':
      $title = 'Exclusive Offer from RT';
    break;
    case 'oo':
      $title = 'Exclusive Offer from OO';
    break;
    default:
      $title = 'Check Out These Exclusive Offers!';
    break;
    }

?>


阅读手册中的
$\u GET
变量(提示:它是数组)。如果您自己设置
条带标签,为什么要添加它?如果你说的是
语句,那又是什么呢?整体还是另一个?@ElonThan我删除了我的评论(哪里是
报价
数组),所以类似这样的问题,再次。。。“打开另一罐虫子”。实际上我今天应该去钓鱼。
$\u GET
是一个数组。您直接将该数组与字符串进行比较。“这是不可能的。”OneEightLeft:见下面joren的答案。
<?php

    if(isset($_GET['offer'])) {     
      //lets sanitize $_GET['offer'] if it exist since its passed via url
      $offer = filter_var($_GET['offer'], FILTER_SANITIZE_STRING);
    } else {
      $offer = NULL;
    }

    switch ($offer) {
    case 'ncp':
      $title = 'Exclusive Offer from NCP';
    break;
    case 'rt':
      $title = 'Exclusive Offer from RT';
    break;
    case 'oo':
      $title = 'Exclusive Offer from OO';
    break;
    default:
      $title = 'Check Out These Exclusive Offers!';
    break;
    }

?>