0

我试图研究为什么这没有回显,但是人们尝试在 html 页面上使用 php 的每个结果,所以这就是我在这里询问的原因。

我有 3 个 php 文件、一个登录文件、一个全局配置文件和一个主题文件。登录页面回显的登录脚本,但它连接到全局文件。全局文件连接到主题文件和 db 配置文件。主题文件是一个简单的表格。

这是我的文件

<?
include('../tools/global.php');



switch($_POST[act]){

case "setlogin":
set($login);
break;

case "refresh":
refresh();
break;

case "logout":
lout();
break;

default:
login($mes);
break;
}

function login($mes){


if (isset($_COOKIE["user"])){
$out[body]="<br />
<center>
<table width='90%' border='0' cellspacing='1' cellpadding='1' bgcolor='#BDBDBD'>
<tr bgcolor='##ff80ff'>
<td width='100%' valign='center' align='left' colspan='2' background='#BDBDBD'>
<strong>Login</strong>
</td>
</tr>
<tr bgcolor='#BDBDBD'>
<td width='100%' valign='center' align='left'><center>
<b>You are already logged in! Would you like to <a href='http://www.fivedesignguys.com/dir/panel/login.php?act=refresh&type=logout'>Logout?</a></center></td></tr>
</table>
</center><br /><br /><br /><br />";

}else{

$out[body]="
<br />
<center>
<table width='400' border='0' cellspacing='1' bgcolor='#BDBDBD' cellpadding='1'>
<form method='post'>
<tr bgcolor='$config[altcolor]'>
<td background='#BDBDBD' width='100%' valign='center' align='left' colspan='2'>
<strong>Login</strong>";

它继续,但我知道它会呼应我的第一个选项,

这是全局php文件

<?php

include('../theme/default.php');
include('config.php');

?>

最后是 default.php 主题文件

<table border='0'>
<tr>
<td colspan='2'>
<center>bar</center>
</td>
</tr>
<tr>
<td width='10%'>
hey<br>hey<br>
</td>
<td>
hello
<?php

echo $out[body];
?>

</td>
</tr>
</table>

正如你所知道的,我希望它回显 $out[body] 但它不想。是的,所有文件都是 PHP,但这是我卡住的地方。

4

1 回答 1

1

$out数组不是全局的,因此无法在login()函数外读取。

您应该将数组声明为 global 并阅读一些关于globals的内容。

于 2013-11-13T04:00:43.837 回答