【问题标题】:PHP. How to pass variable and auto redirect to another PHP filephp。如何传递变量并自动重定向到另一个 PHP 文件
【发布时间】:2015-03-24 08:48:35
【问题描述】:

我正在为 Facebook 开发应用程序。此处应检查用户打开应用程序时是否用户已存在于数据库中。我想我会使用$_SESSION用户ID传递给checkIfExsists.php

所以我的 FacebookGetId.php 看起来像:

<?php
...
$id = $user_profile['id'];
$_SESSION['id'] = $id;
?>

所以 $id 现在是 '12345' 我只是不知道如何自动重定向到 checkIfExsists.php 以检查该 ID 是否已存在于数据库中。

应该是这样的:当应用程序启动时,它应该采用用户的 ID 并自动重定向到 checkIfExsists.php 并传递该 ID。

如果用户存在checkIfExsists.php 应该将用户重定向到application.php,如果不存在 - 它应该重定向到registration.php

【问题讨论】:

  • 如果用户存在checkIfExsists.php 应该将用户重定向到application.php,如果不存在 - 它应该重定向到registration.php
  • 您可以使用http_redirect("relpath", array("name" =&gt; "value"), true, HTTP_REDIRECT_PERM);。欲了解更多信息,请访问 thislink,它会对您有所帮助。

标签: php variables session


【解决方案1】:

使用header 函数

<?php
...
$id = $user_profile['id'];
$_SESSION['id'] = $id;
header('Location: checkIfExsists.php?id='.$id);
?>

在checkIfExsists.php上获取变量

$id = $_GET["id"];

这会以您希望的方式解决您的问题,但是,这不一定是它应该解决的方式,也许在 checkIfExists.php 内部应该是一个类而不是具有公共函数的结构化代码来检查存在checkExistance,所以你只需要:

include_once(checkIfExists.php);
$check = new checker();
$exists = $check->checkExistance($id) ;

这样您就不必在文件之间跳转,您可以有更好的方式重用代码, 问候。

【讨论】:

  • 无需将 ID 与 URL 一起传递,ID 已在 SESSION 中设置
  • 那么整个 FacebookGetId.php 已经过时了,因为要做的就是在 checkIfExsist.php 上启动一个会话并使用 $_SESSION['id']
  • 感谢您的回答,但它返回给我空白页,它不应该是空白的,在checkIfExsists.php 我正在使用session_start(); $id = $_SESSION['id']; echo $id; 并在页面顶部尝试打印错误:@ 987654328@还是空,为什么会出现这个问题?
  • 我不知道你对 checkIfExsists.php 上的 $id 做了什么,但是当你想验证时,我猜你是根据数据库检查它。因此,当您验证 id 是否存在时,您应该使用另一个标头实现 if 函数。例如: if($id == $validate_id) { header('Location: application.php'); } else { header('位置:registration.php'); }
  • 谢谢,这对我有用。我错过了; 这就是黑屏的原因。
【解决方案2】:

使用这个:

<?php
 session_start();
 $id = $user_profile['id'];
 $_SESSION['id'] = $id;
 header('Location: checkIfExsists.php');
?>

然后在 checkIfExsists.php 页面上,检索变量:

<?php
 session_start();
 $id = $_SESSION['id'];
?>

【讨论】:

  • 感谢您的回答,但它返回给我空白页,它不应该是空白的,在checkIfExsists.php 我正在使用session_start(); $id = $_SESSION['id']; echo $id; 并在页面顶部尝试打印错误:@ 987654325@还是空,为什么会出现这个问题?
【解决方案3】:

使用header('Location:url_of_your_page.php?fbid='.$id)php header function

FacebookGetId.php

<?php
    ...
    $id = $user_profile['id'];
    $_SESSION['id'] = $id;
    header('Location:checkIfExsists.php?fbid='.$id)
?>

【讨论】:

  • 感谢您的回答,但它返回给我空白页,它不应该是空白的,在checkIfExsists.php 我正在使用session_start(); $id = $_SESSION['id']; echo $id; 并在页面顶部尝试打印错误:@ 987654326@还是空,为什么会出现这个问题?
  • @StanislovasKalašnikovas 可能是您的$_SESSION['id'] 有一个空值,请尝试将字符串添加到您的echo例如 echo "Facebook ID : ".$_SESSION['id']
【解决方案4】:

例如,您可以通过 GET 和标头来完成:)

header('Location: checkIfExists.php?userID=12345');

在 checkIfExists.php 中

echo $_GET["userID"]

或在 checkIfExists.php 中启动会话,从会话加载 ID :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 2017-04-30
    相关资源
    最近更新 更多