2015-07-11 58 views
0
<?php 

$password = $_POST["password"]; 

if (isset($password) == true){ 
    echo "your password = ".$password."<hr>"; 
    echo "Encrypted password = ".md5($password)."<hr>"; 
}else{ 
    echo "please enter your password"; 
}; 

echo' 
<form action="index.php" method="post" > 
password : <input type="password" name="password"> 
<input type="submit" /> 
'; 

?> 

我想用MD5函数
加密用户密码的用户后,但在用户输入什么它呼应检查,如果变量isset然后加密这个代码不工作

d41d8cd98f00b204e9800998ecf8427e

并使用isset函数来解决这个问题,但它不起作用

+0

尝试'如果(isset($密码)){',而不是'如果(isset($密码)== true){' –

+2

需要注意的是,你不是在加密密码,而只是对它进行散列处理。作为另一个重要的注意事项,MD5哈希值对于密码是不安全的(特别是没有盐!) – drmarvelous

+0

非常真实@drmarvelous, – Ali

回答

0

这个代码工作

<?php 

$password = $_POST["password"]; 

if ($password == ""){ 
    echo "please enter your password"; 
}else{ 
    echo "your password = ".$password."<hr>"; 
    echo "Encrypted password = ".md5($password)."<hr>"; 
}; 

echo' 
<form action="index.php" method="post" > 
password : <input type="password" name="password"> 
<input type="submit" /> 
'; 

?> 
+0

有时它不只是有一个工作脚本,我仍然建议检查您的'$ _POST'之前寻址任何预期的变量:) – Ali

0

试试这个方法:

// set the variable if it was given, otherwise emtpy 
$password = array_key_exists('password', $_POST) ? $_POST['password'] : ''; 

// confirm this is not an empty string 
if ($password != '') { 
// ... the rest 
0

更改此

$password = $_POST["password"]; 

if (isset($password) == true){ 
    echo "your password = ".$password."<hr>"; 
    echo "Encrypted password = ".md5($password)."<hr>"; 
}else{ 
    echo "please enter your password"; 
}; 

这个

if (isset($_POST["password"]) == true){ 
    $password = $_POST["password"]; 
    echo "your password = ".$password."<hr>"; 
    echo "Encrypted password = ".md5($password)."<hr>"; 
}else{ 
    echo "please enter your password"; 
}; 

因为,当你第一次加载你页面$_POST['password']未设置。所以它会加载你的表单会遇到麻烦。

+0

如果变量未定义,将如何执行? if(isset($ _ POST [“password”])== true) –

+0

好点。实际上'isset($ _ POST [“password”])'检查变量是否被定义/设置。你也可以像写if(isset($ _ POST [“password”]))'来检查变量是否被设置。如果没有设置,那么它只会加载你的表单。但是如果设置了,它将会显示密码。 – Imran

0

$_POST实际上所解释here是经由HTTP POST传递给当前脚本变量的关联数组。因此,其优良做法是直接使用$_POST本身和以及之前检查是否存在任何预期变量

例如, array_key_exists('password', $_POST);isset($_POST['password']);

换句话说脚本中的条件可以改成:

if (array_key_exists('password', $_POST)){ 
    $password = $_POST["password"]; 
    echo "your password = ".$password."<hr>"; 
    echo "Encrypted password = ".md5($password)."<hr>"; 
}else{ 
    echo "please enter your password"; 
}; 
+1

“散列”密码,未加密。 – drmarvelous

+0

@drmarvelous,我第一次批准你的观点,在我的回答中,她只是回答这个问题;) – Ali