[英]Javascript inside else statement isn't working. Message doesn't appear
我正在为php网站进行基本登录,如果检查使用POST发送的数据是否在MySQL表中,并且如果它正确无误,则该功能将非常简单,它将允许用户继续处理数据不正确的信息,应显示一条消息,提示凭证不正确:
<?php
include("required/datos.php");
session_start();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$mypassword = mysqli_real_escape_string($db,$_POST['password']);
$grupo = mysqli_real_escape_string($db,$_POST['grupo']);
$sql = "SELECT * FROM usuarios WHERE BINARY password = '$mypassword' and grupo = '$grupo'";
$result = mysqli_query($db,$sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
$count = mysqli_num_rows($result);
if ($count == 1) {
$_SESSION['grupo'] = $grupo;
$_SESSION['autorizado'] = TRUE;
header('location: horario.php');
}
} else {
$message = "Credenciales incorrectas";
echo "<script type='text/javascript'>alert('$message');</script>";
header('Refresh: 0; URL=index.php');
}
?>
到目前为止,if语句一直有效,甚至else语句仍然有效,但该消息根本没有显示出来,我试图查看问题出在哪里,但我找不到它。
试试这个代码。 您的括号位置错误。
<?php
include("required/datos.php");
session_start();
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$mypassword = mysqli_real_escape_string($db,$_POST['password']);
$grupo = mysqli_real_escape_string($db,$_POST['grupo']);
$sql = "SELECT * FROM usuarios WHERE BINARY password = '$mypassword' and grupo = '$grupo'";
$result = mysqli_query($db,$sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
$count = mysqli_num_rows($result);
if ($count == 1) {
$_SESSION['grupo'] = $grupo;
$_SESSION['autorizado'] = TRUE;
header('location: horario.php');
} else {
$message = "Credenciales incorrectas";
echo "<script type='text/javascript'>alert('$message');</script>";
header('Refresh: 0; URL=index.php');
}
}
?>
然后试试这个
}else {
$message = "Credenciales incorrectas";
echo "<script type='text/javascript'>alert('$message');</script>";
header('Refresh: 0; URL=index.php');
}
试试这个。 可能您有一个多余的括号}
或位置错误,并且您在将$message
作为字符串错误地回显。 以这种方式使用串联来打印您的消息
$message = "Credenciales incorrectas";
echo "<script type='text/javascript'>alert('" . $message . "');</script>";
header('Refresh: 0; URL=index.php');
就像注释中提到的那样,您有一个混乱的想法,弄乱了您的代码。 else语句现在正在检查用于检查请求类型的第一个if语句。 但是带有计数的else情况应该是if语句的else情况,该语句检查行数($ count)。
此外,您还需要在回显中连接字符串,因为您的JS代码不了解PHP脚本中的变量或值,如下所示:
echo "<script type='text/javascript'>alert('" . $message . "');</script>";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.