0

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

我在其中一个文本框中输入了一个值,而另一个没有,我提交了它。该值将出现在第一个文本框上并将禁用该文本框,但是当我在第二个文本框上输入一个值并提交时,第一个文本框上的值已经消失。谁能帮我解决这个问题?

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>
4

1 回答 1

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 中对“@”符号的需求。(尽管进一步的错误处理是合适的)。但是你到处都在压制错误,你应该如何获得反馈?

于 2012-06-06T21:11:05.060 回答