我正在做作业,这包括一个基本的验证用户和密码的php。我有一个一维关联数组。当条件为真时,我可以打印值,但我不能只打印一个“one”,因为"if“在foreach中。
php的内容:
<?php
$error = 0;
$mensajeError = "";
$login = array('pepe' => 'pepon', 'maria' => 'mary', 'manolo' => 'manolito');
if (!isset($_POST['user']) || $_POST['user'] == "") {
$error++;
$mensajeError .= "El usuario no puede quedar vacío";
}
if (!isset($_POST['pass']) || $_POST['pass'] == "") {
$error++;
$mensajeError .= "<p>La contraseña no puede quedar vacía</p>";
}
if ($error > 0)
{
echo $mensajeError;
}
else
{
$user = $_POST['user'];
$pass = $_POST['pass'];
foreach ($login as $clave => $valor)
{
if ($user == $clave && $pass == $valor) {
$user = $clave;
$pass = $valor;
echo "Hola " . $user . ", bienvenido a la aplicación";
}
if ($user != $clave && $pass != $valor) {
echo "Usuario y/o contraseña incorrectos";
}
}
}
?>
发布于 2019-10-17 18:01:21
根本不需要循环,您所需要做的就是检查是否有一个具有用户名的数组条目(使用isset()
),而且该条目具有相同的密码.
$user = $_POST['user'];
$pass = $_POST['pass'];
if (isset($login[$user]) && $pass == $login[$user]) {
echo "Hola " . $user . ", bienvenido a la aplicación";
}
else {
echo "Usuario y/o contraseña incorrectos";
}
发布于 2019-10-17 17:49:06
这个答案具体解释了如何检查“任意”真值。在这个特定问题的例子中,检查单个匹配索引并使用该索引进行索引,Nigel Ren's answer更实用。
使用标志检查是否发生任何匹配,如果在foreach
之后没有匹配,则拒绝:
$user = $_POST['user'];
$pass = $_POST['pass'];
$success = False;
foreach ($login as $clave => $valor)
{
if ($user == $clave && $pass == $valor) {
$success = True;
echo "Hola " . $user . ", bienvenido a la aplicación";
}
}
if (!$success) {
echo "Usuario y/o contraseña incorrectos";
}
https://stackoverflow.com/questions/58438115
复制相似问题