2015-04-05 2 views
0
<?php 
    session_start(); 
    include("connection.php"); 
    if(isset($_GET['submit'])) { 
     mysql_connect('localhost','root','') or die(mysql_error()); 
     mysql_select_db('awnb') or die(mysql_erroe()); 
     $Email=$_GET['LoginEmail']; 
     $password=$_GET['LoginPassword']; 
     if($Email!=""&&$password!="") { 
      $query=mysql_query("select * from users where Email='".$Email."' and Password='".$password."'") or die(mysql_error()); 
      $res=mysql_fetch_row($query); 
      if($res) { 
       $userType = $res['Type']; 
       if($userType == 'user') { 
        $_SESSION['Email']=$Email; 
        header("location:profileuser.php"); 
        exit; 
       } else if($userType == 'sec') { 
        $_SESSION['Email']=$Email; 
        header("location:profile.php"); 
        exit; 
       } 
      } else { 
       echo " 
       <script type='text/javascript'> 
       alert('Username or Password is incorrect'); 
       </script>"; 
       header("location:index.php"); 
      } 
     } else { 
      echo " 
      <script type='text/javascript'> 
      alert('Enter both Username and Passowrd'); 
      </script>"; 
      header("location:index.php"); 
     } 
    } 
?> 
  • В этом коде типа является атрибутом в таблице, которая говорит о типе пользователя, существует два типа пользователей, называемых в качестве пользователя или сек. если тип - это пользователь, он должен перенаправить на profileuser.php иначе на profile.php, но я не могу перенаправить страницы в зависимости от типа пользователя.
+0

Какая ошибка возникает при попытке перенаправления? –

+0

Примечание: Неопределенный индекс: введите C: \ xampp \ htdocs \ login_phpform.php в строке 16 – Harindranath

+3

@Harindranath: тогда в результате из базы данных не будет столбца «Тип». – David

ответ

3

Чтобы ответить на ваш вопрос, вы извлечение строки, которая имеет numeric index:

mysql_fetch_row() извлекает один ряд данных из результата, ассоциированного с указанным идентификатором результата. Строка возвращается как массив. Каждый столбец результата хранится в массиве смещения, начиная со смещения 0.

Если вы хотите, чтобы получить ассоциативный массив, вам нужно mysql_fetch_assoc.

Тем не менее, есть так много плохого с кодом, который вы, вероятно, следует начать:

  • В mysql_* функции устарели;
  • У вас проблема с SQL injection;
  • Вы храните текстовый пароль;
  • Вы эхом отдаете перед перенаправлением header;
  • Вы используете GET вместо POST для отправки конфиденциальных данных входа.

Вы можете найти много информации о каждой точке здесь, так что я не собираюсь повторять ее, но, как я уже сказал, вы, вероятно, должны начать все сначала.

+0

спасибо, сэр, это сработало. – Harindranath

+0

@Harindranath См. Http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work, затем вернитесь к ответу и сделайте то же самое, чтобы правильно закрыть вопрос и отметить его как решена. ;-) –

+0

@ Fred-ii- Спасибо за редактирование. Я на самом деле колебался, если бы я вообще ответил, потому что это было слишком много для воскресного дня :-) – jeroen

Смежные вопросы