>백엔드 개발 >PHP 튜토리얼 >ecshop保存登录名问题(每一次都取得前一次的值)

ecshop保存登录名问题(每一次都取得前一次的值)

WBOY
WBOY원래의
2016-06-06 20:16:211256검색

每次点击保存用户名,故意输错密码,然后会弹窗显示账号或密码错误,点击确定回到登录页面时,保存的用户名是上一次的(清空所有cookie时,第一次跳回来是空值),不是当前的,什么问题啊,纠结好久了

后台代码

<code>$user_name = !empty($_POST['username']) ? $_POST['username'] : '';
$pwd = !empty($_POST['pwd']) ? $_POST['pwd'] : '';
$gourl = !empty($_REQUEST['gourl']) ? $_REQUEST['gourl'] : '';

$remember = isset($_POST['remember']) ? $_POST['remember'] : 0;
    //echo "<script type="text/javascript">alert('{$remember}');</script>";
//记住用户名字
if(!empty($remember)){
        setcookie("ECS[reuser_name]", $user_name, time() + 31536000, '/');
}
$reuser_name= isset($_COOKIE['ECS']['reuser_name']) ? $_COOKIE['ECS']['reuser_name'] : '';
   
if(!empty($reuser_name)){
    $smarty->assign('reuser_name', $reuser_name);
            
}</code>

前台代码

<code> <li class="liuser"><div class="liwrap"><input type="text" name="username" value="{$reuser_name}" class="text" placeholder="请输入用户名/邮箱/手机号"></div></li>

<li class="log"><div class="liwrap"><input type="password" name="pwd" class="text" placeholder="请输入密码"></div></li>

 <li class="remember_password">
  <div class="remember">
    <input type="checkbox" name="remember" id="remember" value="1">
    <span>记住用户名</span>
</div>
</li></code>

回复内容:

每次点击保存用户名,故意输错密码,然后会弹窗显示账号或密码错误,点击确定回到登录页面时,保存的用户名是上一次的(清空所有cookie时,第一次跳回来是空值),不是当前的,什么问题啊,纠结好久了

后台代码

<code>$user_name = !empty($_POST['username']) ? $_POST['username'] : '';
$pwd = !empty($_POST['pwd']) ? $_POST['pwd'] : '';
$gourl = !empty($_REQUEST['gourl']) ? $_REQUEST['gourl'] : '';

$remember = isset($_POST['remember']) ? $_POST['remember'] : 0;
    //echo "<script type="text/javascript">alert('{$remember}');</script>";
//记住用户名字
if(!empty($remember)){
        setcookie("ECS[reuser_name]", $user_name, time() + 31536000, '/');
}
$reuser_name= isset($_COOKIE['ECS']['reuser_name']) ? $_COOKIE['ECS']['reuser_name'] : '';
   
if(!empty($reuser_name)){
    $smarty->assign('reuser_name', $reuser_name);
            
}</code>

前台代码

<code> <li class="liuser"><div class="liwrap"><input type="text" name="username" value="{$reuser_name}" class="text" placeholder="请输入用户名/邮箱/手机号"></div></li>

<li class="log"><div class="liwrap"><input type="password" name="pwd" class="text" placeholder="请输入密码"></div></li>

 <li class="remember_password">
  <div class="remember">
    <input type="checkbox" name="remember" id="remember" value="1">
    <span>记住用户名</span>
</div>
</li></code>

因为

<code>$reuser_name= isset($_COOKIE['ECS']['reuser_name']) ? $_COOKIE['ECS']['reuser_name'] : '';</code>


改成

<code>$reuser_name= isset($_COOKIE['ECS']['reuser_name']) ? $_COOKIE['ECS']['reuser_name'] : '';
if (! empty($user_name)) $reuser_name = $user_name;</code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.