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 の使用 - C:\wamp\www\Nouveaudossier\esm_connexion.php の 12 行目で「sha512」を想定

これは、パスワードまたはユーザー名が間違っている場合に表示されるエラーです

4

3 に答える 3

1

次から変更する必要があります。

$datPASS = hash(sha512, $datPASS);

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

または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 に答える