致命错误:调用未定义的函数redirect_to()

时间:2015-06-12 04:19:25

标签: php mysql

这是非常新的,所以我提前为新手的错误道歉。

我目前正在使用lynda.com上的一个PHP / MySQL入门系列。到目前为止,我很喜欢它,并且取得了成功,但这让我很困惑。

我已经为用户输入创建了一个名为new_subject.php的表单。以下称为create_subject.php,它意味着处理来自new_subject.php的表单数据。请记住,我还没有添加任何代码来执行此操作,我只是测试重定向功能:

<?php require_once("../includes/db_connection.php"); ?>
<?php require_once("../includes/functions.php"); ?>

<?php
  if (isset($_POST['submit'])) {

  } else {
    // This is probably a GET request
    redirect_to("new_subject.php");
}
?>

 <?php
  if (isset($connection)) {mysqli_close($connection);}
?>

redirect_to函数的重点是将用户重定向到new_subject.php中的表单,如果他们要在浏览器中手动输入create_subject.php。以下是functions.php中的redirect_to函数:

  function redirect_to($new_location) {
  header("Location: " . $new_location);
  exit;
  }

尝试手动访问create_subject.php时出现以下错误:

  

致命错误:调用未定义的函数redirect_to()

教程视频说我可以打开输出缓冲,我试图在我的php.ini文件中做,但错误保持不变。该视频说我可以做到这一点,或者解决空白问题。&#34;我不知道这意味着什么。

我会很感激这个&#34;白色空间问题&#34;是的,如果还有什么我可以做的。据我所知,我应该可以毫无问题地调用这个函数。

由于

1 个答案:

答案 0 :(得分:0)

对于空白问题,在你的代码中调用位置标题之前必须没有输出..在php标签之外必须没有空格..

只需重写,以便所有这些都包含在一个php标记中,并确保没有空间,即使只有一个空格。

<?php 
require_once("../includes/db_connection.php");
require_once("../includes/functions.php");

if (isset($_POST['submit'])) {

  } else {
    // This is probably a GET request
    redirect_to("new_subject.php");
}

  if (isset($connection)) {mysqli_close($connection);}
?>

请在此处阅读.. How to fix "Headers already sent" error in PHP

然而,你的主要问题是找不到功能..

检查你的functions.php并确保正确定义redirect_to。如果是这种情况,那么最有可能的问题是你的“require_once”必须指向一个不存在的文件。你能告诉我们你的文件夹结构吗?

你的functions.php必须位于一个名为includes的文件夹中,该文件夹位于你的create_subject.php所在的文件夹之外。

如果'includes'文件夹位于create_subject.php所在的文件夹内,则将require_once更改为

require_once("includes/db_connection.php");
require_once("includes/functions.php");

如果两者都位于同一文件夹中,则将require_once更改为

require_once("db_connection.php");
require_once("functions.php");