-1
<?php
session_start();
?>
<html>

<body>
<form action="process.php" method="post">
 Name: <input type="text" name="username" value="<?php echo $_SESSION['u']; ?>" />
 <input type="submit" value="Submit"/>
  </form>
 <form action="register.php" method="post">
  <input type="submit" value="Register a new user" />
  </form>

   </body>
    </html>

所以伙计们,我得到了这个,我的问题是:我想使用会话将最后注册的用户分配为登录表单的值。我得到的一切都运行良好,如果我第一次登录并且我没有开始会话,我对 U 变量一无所获,并且我收到一条错误消息。我怎样才能...避免这种情况或什么的。我尝试了 if 语句,但在 value 部分它不接受 {} 括号或其他东西。有什么建议么?

4

3 回答 3

4

使用isset并将会话值分配给变量,而不是直接使用它:

if(!isset($_SESSION['u'])){
   $u = '';
} else {
   $u = $_SESSION['u'];
}

<input type="text" name="username" value="<?php echo $u; ?>" />

另一种解决方案 - 虽然不太清洁和可维护 - 是利用 PHP 的三元运算符:

<input type="text" name="username" value="<?php echo (isset($_SESSION['u']) ? $_SESSION['u'] : ''); ?>" />

三元运算符的简单解释

($statement ? [if $statement == true] : [$statement == false])
于 2013-10-21T11:51:00.383 回答
0
value="<?php echo isset($_SESSION['u'])?$_SESSION['u']:''; ?>"
于 2013-10-21T11:55:16.150 回答
0

使用三元运算符..

尝试这个

Name: <input type="text" name="username" value="<?php echo ($_SESSION['u'])?$_SESSION['u']:''; ?>" />
于 2013-10-21T11:51:37.553 回答