我对会话不熟悉,但从我认为复杂起来应用<input>
。你能看一下这段代码并告诉我它为什么不起作用。我让它早点工作然后就死在了我身上。该程序的功能是填写表单并使用正则表达式验证合法信息,我只需要帮助获取会话以保存数据。
<?php session_start(); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>regex</title>
</head>
<body>
<?php
$fname = $_REQUEST['fname'];
$fname = $_SESSION['fname'];
print<<<form
<form method="post" action="">
<input type ="text"
name="fname"
value="">
<input type ="submit">
</form>
form;
$_SESSION['fname'] = $fname;
print $_SESSION['fname'];
?>
</body>
</html>
答案 0 :(得分:2)
您正在从$ _REQUEST读取$ fname,然后使用$ _SESSION中的值覆盖它,然后将其重新放回$ _SESSION。到目前为止,它应该按照设计工作:)你想做什么?如果你想用$ _REQUEST接收的值设置$ _SESSION变量,请省略第二个“$ fname =”行。
答案 1 :(得分:1)
蒂莫西, 更改您的代码,以便检查会话/请求是否为空
类似的东西:
if(isset($_REQUEST['fname'])){
$fname = $_REQUEST['fname'];
}else if(isset($_SESSION['fname'])){
$fname = $_SESSION['fname'];
}
答案 2 :(得分:0)
试试这个:
if (!isset($_SESSION['fname'])) {
$_SESSION['fname'] = ''; // default value
}
if (isset($_POST['fname'])) {
$_SESSION['fname'] = $_POST['fname'];
}
print<<<form
…
form;
print $_SESSION['fname'];