从表更新密码

时间:2013-06-29 17:30:28

标签: php

所以我有一个项目,它有一个简单的登录系统。有一个“用户”表,其中“用户名”和“密码”与SHA1一起使用。

我有一个简单的表单,它将更改登录帐户的密码。但它无法正常工作。这是我得到的:

<?php
include('connect.php');
if(isset($_POST['change']))
{
$nova_password = $_POST["nova_password"];
session_start(); 
$utilizador = $_SESSION['username'];
    if (empty($nova_password)) {
    $nopassword = '<span  class="error">Insira uma nova password!</span></br>';
    echo $nopassword;
    }
    if(!empty($nova_password))
    {
    $query = mysql_query("update users set password=SHA1('$nova_password') where username='$utilizador'");
    $sucesso = '<span  class="yes">Password Alterada com Sucesso!</span>';
    echo $sucesso;
    }
} //END IF
?>

当我转到该页面时,它说:“会话已经开始 - 忽略session_start()”。

单击按钮之前会出现此错误。

2 个答案:

答案 0 :(得分:0)

您已经开始了会话?尝试删除session_start();

下的$nova_password

编辑:执行此操作

$query = mysql_query("update users set password=SHA1('$nova_password') where username='$utilizador'");

// Destroy session and send them to login form
session_destroy();
header("Location: http://yourdomain.com/login.php");
exit();

但如果您想先回复一条消息,可以使用header( "refresh:seconds;url=wherever.php" );。但是确保没有发送标题。否则你可以使用<meta http-equiv="refresh" content="seconds;url=url">

或者你可以打开输出缓冲ob_start()。然后没关系。

答案 1 :(得分:0)

用此代替session_start()行:

if(!isset($_SESSION))
    session_start();