1

session_start();

if(isset($_SESSION['logged'])){
    header('Location: esm_questionnaire.php');
}
if(isset($_POST['utilisateur'])&&isset($_POST['motdepasse'])){
    $con = mysql_connect('localhost','root','');
    mysql_select_db('esm_quiz', $con);
    $datID = mysql_real_escape_string($_POST['utilisateur']);
    $datPASS = $_POST['motdepasse'];
    $datPASS = hash(sha512, $datPASS);
    $SQL = "SELECT * FROM esm_sujets WHERE code_exp = '$datID'";
    $result = mysql_query($SQL, $con);
    $row = mysql_fetch_array($result);
    if($result){
        if($datPASS === $row['pass_exp']){
            $_SESSION['logged'] = true;
            $_SESSION['sexe'] = $row['sexe'];
            $_SESSION['type'] = $row['type_attachement'];
            header('Location: esm_questionnaire.php');
        }
        else{
            die('Vous n'avez pas acces');
            }
    }
    }

注意:使用未定义的常量 sha512 - 在第 12 行的 C:\wamp\www\Nouveaudossier\esm_connexion.php 中假定为“sha512”

如果我的密码或用户名错误,这是我得到的错误

4

3 回答 3

1

它需要从:

$datPASS = hash(sha512, $datPASS);

$datPASS = hash('sha512', $datPASS);

OR,您需要先定义sha512为常量:

define('sha512', 'sha512');

但这似乎有点愚蠢,不是吗?

于 2013-02-22T15:36:52.707 回答
0

sha512 必须在 qoutes 之间

于 2013-02-22T15:36:49.613 回答
0
$datPASS = hash(sha512, $datPASS);

将其替换为

$datPASS = hash("sha512", $datPASS);

不管怎样,它都会运行,幸运的是 PHP 足够聪明。

于 2013-02-22T15:37:12.280 回答