Вход в систему с неправильным именем пользователя и паролем, а также

0

Он регистрируется даже с неправильным именем пользователя и паролем, пожалуйста, помогите мне разобраться, в чем проблема. Я хочу, чтобы он входил в систему только и только если он совпадает с именем пользователя и паролем, но он работает неправильно.

Здесь код:

<form name="login" method="post" action="countries.php">
<p>  </p>
<table border=0 width=500px align=center>
  <tr>
<td>Enter User Name</td>
</tr>
<tr>
<td><input type=text size=30 value="" name=t1></td>
</tr>
<tr>
<td>Enter Password</td>
</tr>
<tr>
<td><input type=password size=30 value="" name=t2>
</td>
</tr>

<tr>
<td><input type=reset value="Clear Form" name=b2>
</td>
<td><input type=submit value="Login Form" name=b4>
</td>
</td></tr>
<tr>
<td><input type=submit value="Guest User" name=b5>
</td>
</tr>

</table>

 <hr />
 </center>

 <?php
 $t1="Maha";
 $t2="abc";
 if($t1 == "Maha" && $t2 == "abc")
 {

      header("countries.php");
      exit;
     echo " We are glad you are visiting us again. Lets plan yout tour together." ;

 }
 else {

     header("final.php");
     exit;
     echo " User name or password is incorrect. Try again.";
 }
 ?>

  </form>
  • 2
    Sidenote: Вы пропустили ключевое слово location в функции header .
  • 0
    Вы определяете свои значения -> $t1="Maha"; $t2="abc"; поэтому они всегда будут правильными. Измените на $t1=$_POST['t1']; $t2=$_POST['t2']; , в дополнение к location отсутствующему в header("Location: final.php")
Теги:
validation
login

3 ответа

1

Ваша переменная приходит через POST.

if($_POST['t1'] == "Maha" && $_POST['t2'] == "abc")
1

У вас есть другие проблемы, из-за которых это может нарушиться другими способами, но оно всегда попадает в состояние входа, потому что вы сравниваете эти переменные (с жестко закодированными значениями):

$t1="Maha";
$t2="abc";

к жестко закодированным учетным данным:

if($t1 == "Maha" && $t2 == "abc")

вместо чтения пользовательского ввода через $_POST.

1

Вы публикуете форму на countries.php

ваш код входа должен быть в countries.php

Кроме того, в коде заголовка отсутствует ключевое слово Location:

header('Location: http://www.example.com/');

вот ваш модифицированный PHP-код, который должен быть в countries.php:

<?php
 $t1=$_POST['t1'];
 $t2=$_POST['t2'];
 if($t1 == "Maha" && $t2 == "abc")
 {

      header("Location: countries.php"); // probably some other page since countries.php has the login verification logic.
      exit;
     echo " We are glad you are visiting us again. Lets plan yout tour together." ;

 }
 else {

     header("Location: final.php");
     exit;
     echo " User name or password is incorrect. Try again.";
 }
 ?>
  • 0
    Я изменил свой код в соответствии с вашим предложением, но он все еще не работает, так как в нем все еще входит неправильный логин и пароль.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню