php入门级问题 30分

来源:百度知道 编辑:UC知道 时间:2024/09/28 13:29:20
<?
switch ($action)
{
case "next_page":
page2();
break;
default:
page1();
break;
}
function page1()
{
global $PHP_SELF;

?>
<FORM action="<? echo $PHP_SELF ?>" method="post">
<INPUT type="hidden" name="action" value="next_page">
<INPUT type="text" name="info">
<INPUT type="submit" value="送出">
<?
}
function page2()
{
global $PHP_SELF;

echo $info;

}
?>
请高手帮我看下这个程序,是从网上down下来的教程里带的,一个程序内部传值的,教程里是可以运行的,我自己就跑不出来。
大概就是一个input,输一串字进去然后印出来。但是我输了字进去 按提交
又回到一个空的input,之前用他的教程也是他上面不需要_GET['']或者_POST[''],我自己运行就要加上。很纳闷,这个程序要怎么改才能运行呢,为什么他的参数自动可以送过去,不要加_GET['']或者_POST['']?

php.ini搜索register_globals,把它的值改成on,就是在表单里面如果命名一个name='abc'的标签,submit后就直接可以用$abc,而不用$_POST['abc'],但是,不建议这么用,还是把register_globals = off吧,呵呵

其实form标签在没有定义method属性的时候是默认get传输数据的,我把你的程序改了一下
<?
switch ($action)
{
case "next_page":
page2();
break;
default:
page1();
break;
}
function page1()
{
global $PHP_SELF;

?>
<FORM action="<? echo $PHP_SELF ?>">
<INPUT type="hidden" name="action" value="next_page">
<INPUT type="text" name="info" value="">
<INPUT type="submit" value="送出"> </form>
<?
}
function page2()
{
global $PHP_SELF,$info;
echo $info; //或者是echo $_GET['info'];
}
?>

$action和$info都是局部变量,他们都只能作用于局部。在page2()这个founction中就没有定义$info这个变量,所以是不行的。