猿问

如何在两个函数中使用 PHP 全局变量?

我正在尝试创建一个界面,其中研讨会描述可以在用户创建后在服务器上更新。有一个文本字段和一个按钮,可以通过分配的编号调出研讨会。(这也是服务器上的submissions/workshop# 中的目录名称)。当我使用此方法设置变量 $workshopPath 时,我希望在使用字符串填写文本输入以更新研讨会标题时能够访问此全局变量。$workshopPath 在“updateTextItems”函数中注册为空字符串,因此它将文本文件写入根目录而不是正确的创意工坊目录。我认为我正确地引用了函数中的全局变量,但这不起作用。我还尝试使用 $GLOBALS['workshopPath'],但这也不起作用。有人可以帮我弄清楚如何将变量传递给第二个函数吗?谢谢 :-)


<?php


$workshopPath;


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

  if (empty($_POST['numberInput'])) {

    echo "Please enter a valid workshop number";

  } else { //Assign the name variable form the posted field info if one was entered.

    $workshopNumber = stripslashes($_POST['numberInput']);

    global $workshopPath;

    $workshopPath = "submissions/" . $workshopNumber . "/";

  }

}


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

  if ($_POST['titleInput']) {

    //Assign the name variable form the posted field info if one was entered.

    $titleInput = stripslashes($_POST['titleInput']);

  }

  

  if ($titleInput) {

    global $workshopPath;

    $titleFile = fopen($workshopPath . "title.txt", "w") or die("There was an error creating the title file.");

    fwrite($titleFile, $titleInput);

    fclose($titleFile);

  }

}


?>


宝慕林4294392
浏览 77回答 1
1回答

慕的地10843

我对你的理解正确吗?用户填写研讨会表格并单击“提交”并获取文本的其他表格?我的猜测是您向服务器发送了请求。所以 $GLOBAL 不适合你。它仅适用于每个请求,我认为大多数时候您并不真正需要它。如果您想跨请求保存一些值,则在启动会话时需要一个会话。使用 session_start() 启动会话后,您可以使用 $_SESSION[] 来存储和获取您的值
随时随地看视频慕课网APP
我要回答