检查变量是否设置然后加密用户 post 不工作
checking if variable isset then encrypt user post not working
<?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 函数加密用户密码
但是当用户什么都不输入时它回显
d41d8cd98f00b204e9800998ecf8427e
并使用 isset 函数修复此问题,但它不起作用
试试这个方法:
// 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
改变这个
$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']
未设置。所以加载你的表单会遇到麻烦。
此代码有效
<?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" />
';
?>
实际上 $_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";
};
<?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 函数加密用户密码
但是当用户什么都不输入时它回显
d41d8cd98f00b204e9800998ecf8427e
并使用 isset 函数修复此问题,但它不起作用
试试这个方法:
// 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
改变这个
$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']
未设置。所以加载你的表单会遇到麻烦。
此代码有效
<?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" />
';
?>
实际上 $_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";
};