【问题标题】:how to use php IF looping to show value of a variable that taken from method GET on previous link?如何使用 php IF 循环来显示从上一个链接上的方法 GET 获取的变量的值?
【发布时间】:2015-12-29 08:48:02
【问题描述】:
<?php
include "global_database_function.php"; //include config file
$nama_kategori = $_GET['nama_kategori']; //get from previous link
//global $nama_kategori; 
//i can't use global $name_kategori

$idkategori = $_GET['idkategori'];
?>
<html>
<head>
</head>
<body>
<?php
//continue only if $_POST is set and it is a Ajax request
if(isset($_POST) && isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{   
  //here is the code i try to show, i try to use:
   htmlspecialchars($nama_kategori);
}
?>
</body>
</html>

如果我把htmlspecialchars($nama_kategori);放在body和if(isset($_POST) &amp;&amp; isset之间,$nama_kategori的值是可见的。

【问题讨论】:

  • 我很困惑,你能澄清一下你的问题吗?
  • 首先,$_POST始终设置的。这是一个超全局的,它是在运行时设置的,所以无论如何你的验证都是真的。测试$_POST 是否为空(并注意它也可能失败,因为提交按钮 - 如果有的话 - 算作表单元素),或者在特定的帖子字段上使用isset(例如if (isset($_POST['idkategori']));
  • @Epodax 对不起,我有问题,我无法调出从以前的文件链接中获取的值 $nama_kategori。如果我将$nama_kategori 放在正文和 if 之间,则可以提高从先前文件链接中获取的值。但是在我将$nama_kategori 放入IF(isset($_POST) 条件后,该值不会出现
  • 第二:isset($_SERVER['HTTP_X_REQUESTED_WITH'])$_SERVER 上没有像HTTP_X_REQUESTED_WITH 这样的字段,除非您之前设置过它,硬编码,并且没有向我们展示。如果你这样做了(我希望你这样做了),即使它是空的,它也会评估为 true。如果变量存在isset 的计算结果为 true,而如果 var 包含某些内容,empty 的结果相同。
  • 第三:strtolower 返回一个 字符串 而不是布尔值,因此它不会被评估为真或假。 [编辑:我在这个问题上得到了纠正,我没有向左滚动代码来查看您将其与字符串进行比较,我的错...]

标签: php if-statement htmlspecialchars get-method


【解决方案1】:

让它存储到会话中以备将来使用

$nama_kategori = $_GET['nama_kategori'];
session_start();
$_SESSION['t']=$nama_kategori;

在需要时

if(isset($_POST) && isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{ 
session_start();  
echo $_SESSION['t'];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    相关资源
    最近更新 更多