2015-07-11 27 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