Сообщение о предупреждении PHP

Я знаю, что первое, что каждый скажет, это то, что это было опубликовано сотни раз; тем не менее, я пробовал все разные методы, которые люди предложили, но еще не повезло … Я пытаюсь получить всплывающее сообщение с предупреждением, если вход не удался, но по какой-то причине сообщение не хочет появляться. Вот что я до сих пор:

if($conn) { $result=sqlsrv_query($conn, "SELECT * FROM Operator WHERE Username='{$_POST['login']}'"); $pass=sqlsrv_fetch_array($result); if($pass["Password"] === $_POST['password']) { session_start(); $_SESSION['loggedin']=true; header("Location: home.php"); exit; } else { header("Location: login.php"); echo '<script type="text/javascript">'; echo 'alert("Password Invalid!")'; echo '</script>'; } } sqlsrv_close($conn); 

PHP работает нормально, но по какой-то причине я не могу заставить javascript работать. Есть идеи?

Я думаю, проблема здесь. вы перенаправляете страницу перед предупреждением

 header("Location: login.php"); /* Redirect browser */ 

попробуйте удалить его или перенаправить через пару секунд, например

 header( "refresh:5;url=login.php" ); //redirect after 5 seconds 

или вы предлагаете диалог для пользователя, чтобы перейти к следующей странице. удалите заголовок () tho

 <script type="text/javascript"> <!-- var retVal = confirm("Login FAILED! Do you want to continue ?"); if( retVal == true ){ window.location.href = "login.php"; return true; }else{ alert("User does not want to continue!"); return false; } //--> </script> 

В header("Location: login.php"); кода header("Location: login.php"); есть ли перед вашим js-кодом, чтобы он никогда не выполнял js-код, который он перенаправляет на страницу входа в систему, удалите его и попробуйте.

Используйте этот код

 echo '<script>'; echo 'alert("Password Invalid!");'; echo 'location.href="login.php"'; echo '</script>'; 

вместо

 header("Location: login.php"); echo '<script type="text/javascript">'; echo 'alert("Password Invalid!");'; echo '</script>'; 

Благодарю.

Ваш код, который появляется после заголовка, не запускается, возможно, попробуйте установить переменную сеанса и проверить эту переменную в login.php. Затем вы можете вызвать предупреждение или просто показать простое сообщение на странице.

рядом с оповещением находится отсутствующая точка с запятой:

 if($conn) { $result=sqlsrv_query($conn, "SELECT * FROM Operator WHERE Username='{$_POST['login']}'"); $pass=sqlsrv_fetch_array($result); if($pass["Password"] === $_POST['password']) { session_start(); $_SESSION['loggedin']=true; header("Location: home.php"); exit; } else { header("Location: login.php"); echo '<script type="text/javascript">'; echo 'alert("Password Invalid!");'; echo '</script>'; } } sqlsrv_close($conn); 

разве вы не проверяли консоль javscript?

EDIT: Извините, моя ошибка, точка с запятой не обязательно, конечно.

Я тестирую ваш php-код на моем сервере, и он все равно работает!