我在php include()文件中有以下代码行:
$code = $_POST['code'];
这会导致未定义的索引错误。include()文件中从不允许这样做吗?谢谢
为了澄清,我有一个check登录文件和一个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["代码"];
再次感谢。
根据您发布的内容,我已经能够使用您代码的实现/解释成功地测试以下内容。
你可能省略了<form></form>
标签,我不可能是100%,因为它没有显示在你的问题中。
以下工作取得了成功。如果输入了abcd
,它将回显OK
。
否则,它将回声Sorry
。
旁注:
我建议您不要将session_start();
放在当前的位置,因为它会抛出已发送的标头的错误。
如果可能的话,把它放在你的开场<?php
标签下面,或者如果你想把session_start();
放在现在的位置,把ob_start();
放在你开场<?php
标签下面
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'];
您可以尝试以下代码行:
$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 !
}
}