2014-12-10 3 views
1

Я создал страницу входа, и я написал код php для него в отдельном файле. После входа в систему страница должна быть перенаправлена ​​на отчет конкретного пользователя. Вместо этого он переходит на белую пустую страницу. Что может быть ошибкой?Войти Сессия

login.html

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <link href="css1/login_style.css" rel="stylesheet" type="text/css"> 
    <link href="css1/font-awesome.css" rel="stylesheet" type="text/css"> 
    <link href="css1/font-awesome.min.css" rel="stylesheet" type="text/css"> 

    <link rel="shortcut icon" href="img/favicon.ico"/> 
    <link rel="apple-touch-icon" href="img/favicon.png"/> 
</head> 
<body> 
<div class="logo"></div> 
    <div class="login"> <!-- Login --> 
    <h1> Login</h1> 

    <form class="form" method="POST" action="loginaction.php"> 

     <p class="field"> 
     <input type="text" name="login" placeholder="id" required/> 
     <i class="fa fa-user"></i> 
     </p> 

     <p class="field"> 
     <input type="password" name="password" placeholder="Password" required/> 
     <i class="fa fa-lock"></i> 
     </p> 

     <p class="submit"><input type="submit" name="commit" value="Login"></p> 

     <p class="remember"> 
     <input type="checkbox" id="remember" name="remember" /> 
     <label for="remember"><span></span>Remember Me</label> 
     </p> 

     <p class="forgot"> 
     <a href="#">Forgot Password?</a> 
     </p> 

    </form> 
    </div> <!--/ Login--> 
</body> 
</html> 

Ниже приведен PHP-код для входа в систему,

loginaction.php

<?php 
if($_SESSION["logging"]&& $_SESSION["logged"]) 
{ 
    header("Location:view_restreport.php"); 
} 
else { 
    if(!$_SESSION["logging"]) 
    { 
    $_SESSION["logging"]=true; 
    header("Location:index.php"); 
    } 
     else if($_SESSION["logging"]) 
     { 
     $number_of_rows=checkpass(); 
     if($number_of_rows>=1) 
      { 
      $_SESSION[user]=$_GET[userlogin]; 
      $_SESSION['logged']=true; 
      header("Location:view_restreport.php"); 
      } 
     } 
    } 


function checkpass() 
{ 
$servername="localhost"; 
$username="root"; 
$conn= mysql_connect($servername,$username)or die(mysql_error()); 
mysql_select_db("konjam_disc",$conn); 
$sql="select * from users where name='$_GET[userlogin]' and password='$_GET[password]'"; 
$result=mysql_query($sql,$conn) or die(mysql_error()); 
return mysql_num_rows($result); 
} 
?> 

Что может быть глупая ошибка, которую я сделал? Я пытался выяснить это довольно давно, но не смог :-( Заранее спасибо.

+0

Вам нужно больше узнать, как сделать соединение с db и получить данные формы –

+1

в режиме логирования, первая строка кода php (после

+0

Вы должны использовать mysqli или PDO вместо устаревшего расширения mysql – Zl3n

ответ

0

У вас нет session_start() на странице PHP, которая всегда должна быть на сверху, когда вы занимаетесь сессиями. Также почему вы не включаете отчет об ошибках на странице PHP или, по крайней мере, не смотрите на журнал ошибок на своем веб-сервере, чтобы узнать, какую ошибку он вам дает.

0

Его хорошая практика, чтобы избежать PHP переменных из запросов, как,

$sql="select * from users where name='".$_GET['userlogin']."' and password='".$_GET['password']."'"; 

Также не забудьте session_start(); в попрошайничество вашего PHP-скрипта.

0

В вашем варианте вы используете метод POST. А в запросе используется переменная $ _GET.
Также требуются экранирующие переменные.

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