2013-02-28 84 views
1

我有一个登录表单,当我尝试登录并失败时,我被发送回登录表单并且它是空白的。我想在失败的尝试中保留用户名/电子邮件地址字段,以便我只需要再次键入密码。关于我需要做什么的建议?登录尝试失败后保留字段

HTML:

  <?php if ($_GET['msg'] == 'failed') : ?> 
     <p style="color:red; font-weight: bold">Incorrect email or password. Try again!</p> 
     <?php endif; ?> 
     <form action="index.php?cmd=login" method="post" id="form"> 
      <div class="signup-form"> 
       <p> 
        <label>Email</label> 
        <input type="text" name="email" value="" class="textbox required email" /> 
       </p> 
       <p> 
        <label>Password</label> 
        <input type="password" name="password" value="" class="textbox required"/> 
       </p> 
       <p> 
        <label></label> 
        <input type="checkbox" name="rememberme" value="1" class="" checked="checked" /> Remember Me? 
       </p> 
       <p> 
        <a style="margin: 10px 0 0 0; color:#000;" class="button" href="javascript://" onclick="$('#form').submit()">Continue</a> <img src="images/ajax-loader.gif" class="loading" style="display: none;" /> 

和:

if ($_POST) { 
$login = $_USER->do_log_in(input($_POST['email']), md5($_POST['password']), $_POST['rememberme']); 
if ($login == true) { 
    $_SESSION['userid'] = $_USER->get_user_id(); 
    header('location: index.php'); 
}else 
    header('location: index.php?cmd=login&msg=failed'); 
} 

回答

3

使用此代码

<input type="text" name="email" value="<?php if(isset($_POST['email'])) { echo $_POST['email']; } ?>" class="textbox required email" /> 

你只需要使用isset方法,并检查天气将其设置与否。如果是,则显示value中的文字。

+0

我将POST数据传递给另一个页面,然后标题重定向将其发送回表单页面,标题重定向清除POST数据。这样做安全吗? 'header('location:index.php?cmd = login&msg = failed&email ='。$ _ POST ['email']);' – techora 2013-02-28 05:12:10

+0

做登录完成时的头重定向不会重定向它们。 – 2013-02-28 05:15:18

+1

良好的通话,非常感谢您的帮助。 – techora 2013-02-28 05:21:53