表单在文本框上提交会话值

时间:2012-06-06 18:57:04

标签: php

我在使用会话在文本框中保存值时遇到问题。

我在其中一个文本框中输入一个值,另一个没有,我提交它。该值将出现在第一个文本框中并将禁用文本框,但是当我在第二个文本框上放置一个值并提交它时,第一个文本框上的值已经消失。任何人都可以帮我解决这个问题吗?

PHP

<?php
session_start();
@$two = $_POST['two'];
@$four = $_POST['four'];
if(isset($_POST['submit'])){
    $_SESSION['two'] = $two;
    $_SESSION['four'] = $four;
}
?>  

HTML

<form method="POST">
Textbox One:  <input type="text" value="<?=@$_SESSION['two']; ?>" name="two" class="inputborder" size="20" <?phpif(@$_SESSION['two']){ echo"disabled=disabled";} else{echo ""; }?> />
<br>    
Textbox Two:  <input type="text" value="<?=@$_SESSION['four']; ?>" name="four" class="inputborder" size="20" <?php if(@$_SESSION['four']){ echo"disabled=disabled";}else{ echo ""; }?> />
<br>        
<input type="submit" name="submit">
</form>

1 个答案:

答案 0 :(得分:0)

在检查提交之前,为什么要尝试以2美元和4美元的价格获取变量?

<?php
session_start();

if(isset($_POST['submit'])){

  if(isset($_POST['two'])){
      $two = $_POST['two'];
  }

  if(isset($_POST['four'])){
      $four = $_POST['four'];
  }

   $_SESSION['two'] = $two;
   $_SESSION['four'] = $four;
}
?> 

这应该不需要PHP中的'@'符号。 (尽管进一步的错误处理是合适的)。但是你到处都在压制错误,你应该如何获得反馈呢?