我在php include()文件中有以下代码行:
$code = $_POST['code'];
这会导致未定义的索引错误。这是否永远不允许在include()文件中?谢谢!
为了澄清,我有一个check-login文件和一个包含文件。在include文件中是行:
$code = $_POST['code'];
索引文件有一行:
<tr><td><input name="code" type="text" autofocus></td></tr>
在检查登录中,我有以下几行:
if ($code == "abcd") {
session_start();
$_SESSION['code'] = $code;
header("location:list.php");
}
所以现在一旦在索引页面输入了正确的代码,用户就会成功到达相应的目的地,但是会出现'未定义的索引'错误,关于
$ code = $ _POST ['code'];
再次感谢。
答案 0 :(得分:1)
根据您发布的内容,我已经能够使用我的代码实现/解释成功测试以下内容。
您可能已省略<form></form>
代码,但由于问题未显示,我不能100%。
以下产生了成功的结果。如果输入abcd
,则会回显OK
。
否则它将回显Sorry
。
旁注: 我建议您不要将session_start();
放在目前的位置,因为它会抛出已发送的标题错误。
如果可能的话,将其放在您的<?php
标记下方,或者如果您要将ob_start();
保留在目前的位置,请将<?php
放在您的session_start();
标记下。
PHP
<?php
include 'included_file.php';
if(!empty($_POST['code'])){
if ($code == "abcd") {
session_start();
$_SESSION['code'] = $code;
// header("location:list.php");
// my own test - remove once using header above
echo "OK";
}
else{
echo "Sorry";
}
} // brace for if(!empty($_POST['code']))
?>
<tr><td>
<form method="post" action="">
<input name="code" type="text">
</form>
</td></tr>
(included_file.php)
<?php
$code = $_POST['code'];
答案 1 :(得分:0)
你可以沿着这些代码尝试一些东西:
$code = '';
$issetCode = isset( $_POST['code'] ) ? true : false ;
if( ! $issetCode or ( $code = trim( $_POST['code'] ) ) == '' )
{
if( $issetCode ) echo 'Please enter code<br>';
?>
<form method="post" action="">
<input name="code" type="text" autofocus>
<input type="submit">
</form>
<?php
}
else
{
if( $code == "abcd" )
{
session_start( );
$_SESSION['code'] = $code;
header( "location:list.php" );
}
else
{
// Invalid code !
}
}