我的php网站有问题。我做了一个表单,提交时在同一页面上加载一个php文件。这是我的代码:
的index.php:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table cellspacing="0" cellpadding="10" width="320" border="0">
<tr>
<td>
<button type="submit" id="btn" name="form_submit">Submit</button>
</td>
</tr>
</table>
</form>
<?php
if(isset($_POST['form_submit'])) {
session_start();
$_SESSION['tblno'] = "3";
}
?>
现在问题出在我的display.php文件中,其中包含以下代码:
<?php
session_start();
$tblno = $_SESSION['tblno'];
echo($tblno);
?>
我希望它的输出值为3,它在index.php中初始化。但是我的display.php文件显示的是1.任何帮助都会非常感激。
答案 0 :(得分:0)
试试这段代码:
<?php
if(isset($_POST['form_submit']))
{
session_start();
$_SESSION['tblno']="3";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table cellspacing="0" cellpadding="10" width="320" border="0">
<tr><td>
<button type="submit" id="btn" name="form_submit">Submit</button>
</td></tr>
</table>
</form>
答案 1 :(得分:0)
看起来你只有很多没有cetral的php脚本来管理其他脚本。所以你必须用
开始每个脚本<?php
session_start();
...
或者会话无法正常运行。
答案 2 :(得分:0)
要使用基于cookie的会话,必须先调用session_start()
,然后才能向浏览器输出任何内容。
另外,您不应该分隔文件,因为您使用$_SERVER['PHP_SELF']
,所有代码必须位于同一页面中,如果您想要分开,请将操作更改为action='display.php'
因此,如果您仍想使用$_SERVER['PHP_SELF']
:
<?php session_start();?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table cellspacing="0" cellpadding="10" width="320" border="0">
<tr><td>
<button type="submit" id="btn" name="form_submit">Submit</button>
</td></tr>
</table>
</form>
<?php
if(isset($_POST['form_submit']))
{
$_SESSION['tblno']="3";
}
$tblno=$_SESSION['tblno'];
echo($tblno);
?>
答案 3 :(得分:0)
index.php中需要以下内容。
<?php
if(isset($_POST['form_submit']))
{
session_start();
$_SESSION['tblno']="3";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<table cellspacing="0" cellpadding="10" width="320" border="0">
<tr><td>
<button type="submit" id="btn" name="form_submit">Submit</button>
</td></tr>
</table>
</form>
<iframe src=display.php>
在display.php中:
<?php
session_start();
$tblno=$_SESSION['tblno'];
echo($tblno);
?>
(您发布到自己的index.php,在顶部设置Cookie。
之后所有其他页面在session_start之后都有正确的cookie)
始终确保session_start();
之前浏览器的任何其他输出,例如html。
修改:添加了iframe。
答案 4 :(得分:-2)
我认为您需要以下内容:
<?php
session_start();
if(isset($_POST['form_submit']))
{
$_SESSION['tblno']="3";
}
?>
由于您使用会话的任何地方,您必须始终使用session_start