【问题标题】:why php accessing variables defined in other pages?为什么php访问其他页面中定义的变量?
【发布时间】:2013-12-27 09:05:44
【问题描述】:

这很奇怪,我不知道怎么可能,我在一个小项目上工作的代码是代码

<?php
include 'database/dbconnect.php';
if (!isset($_SESSION['id'])) {
   header('location:index.php');
}
$user = json_decode(file_get_contents('https://graph.facebook.com/' . $fbid));
print_r($user);
?>

及其得到的结果..

变量$fbid 在此页面中不是defined,而是出于某些不同目的而在另一个页面中。 但是php 没有显示任何error,给出了结果。我清除了sessionscookies 什么都没发生。

dbconnect.php

session_start();
$dbhost="localhost";
$dbuser="uuuu";
$dbpass="pppp";
$dbdatabase="dddd";

mysql_connect($dbhost,$dbuser,$dbpass);

mysql_select_db($dbdatabase) or die("Connection Failed");

定义了 $fbid 的其他页面

include 'dbconnect.php';
if (isset($_POST['me'])) {
    $me = $_POST['me'];
    $fbid = $me['id'];
    $name = $me['name'];
}

显然这两页没有联系,没有include没有require。两者都在不同的文件夹中

【问题讨论】:

  • 你的意思是dbconnect.php的其他页面?
  • 其他页面是指哪个页面?其中 $fbid 是完全定义的 .. 你是说你清除了你的会话,以防你这样做了,那么这个页面应该重定向到 index.php 进一步的代码不应该运行 ..
  • 不......在那个页面中只有数据库连接......没有别的,我也检查过
  • 你得到 a 结果。您是否获得了某些具有特定$fbid 的用户的 结果?你试过var_dump($fbid)吗?
  • 你怎么称呼“它正在得到结果”?如果 $fbid 为空,则返回一个带有“error”属性的 json 对象。

标签: php session variables


【解决方案1】:

尝试制作

print_r($GLOBALS)

并尝试在输出 fbid 变量中查找

【讨论】:

  • +1 是的,兄弟,谢谢它的工作。但我不知道它是如何工作的,我们没有defined 它为global variable,现在如何unset??
【解决方案2】:

要显示错误,您需要在脚本开头添加以下内容:

error_reporting(E_ALL);
ini_set('display_errors', 'On');

【讨论】:

  • 不错的尝试,但我们没有使用error_report(0);。它显示页面中是否还有其他errors
  • 默认情况下,error_report 通常设置为隐藏 E_NOTICE(有时是 E_WARNING)错误。通过设置为 E_ALL,你强制它接受所有错误
【解决方案3】:

在 Facebook 上,标识符 (FBID) 分配给大多数内容。您可以使用 FBID 准确简洁地使用 URL 引用一段内容。因此,可以在其他页面中获取 $fbid 的值。如果您尝试在 Facebook 之外执行此操作,则会收到错误消息

【讨论】:

    【解决方案4】:

    你应该开始会话

    <?php
      session_start();
      include 'database/dbconnect.php';
      if (!isset($_SESSION['id'])) {
      header('location:index.php');
      }
      $user = json_decode(file_get_contents('https://graph.facebook.com/' . $fbid));
       print_r($user);
      ?>
    

    【讨论】:

      猜你喜欢
      • 2013-08-16
      • 1970-01-01
      • 1970-01-01
      • 2019-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-09
      相关资源
      最近更新 更多