2015-05-14 3 views
3

Я создал страницу входа для входа в систему. Код работает правильно в localhost, но не в в реальном времени сервер. Пользователь не может войти в систему на реальном сервере, и я узнал, что каждый раз перенаправляя на index.php, сеанс будет потерян, так что пользователь не сможет войти из-за потери сеанса. У вас есть идея по этому поводу?Сессия отсутствует после перенаправления (только для реального сервера)

<?php 
 
session_start(); 
 
include "header.php"; 
 
if (!empty($_POST)){ 
 
\t include 'database_connect.php'; 
 
\t $username = $_POST['username']; 
 
\t $password = $_POST['password']; \t 
 
\t $username = stripslashes($username); 
 
\t $password = stripslashes($password); 
 
\t $username = mysql_real_escape_string($username); 
 
\t $password = mysql_real_escape_string($password); 
 
\t 
 
\t $sql = "SELECT * FROM users where username='$username' and password='$password'"; 
 
\t $result = mysql_query($sql, $con); 
 
\t $rows = mysql_num_rows($result); 
 
\t if ($rows == 1){ 
 
\t \t $_SESSION['username'] = $username; 
 
\t \t echo "<script>window.location = \"index.php\";</script>"; 
 
\t \t //header("Location: index.php?" . SID); 
 
\t }else{ 
 
\t \t echo "<div class='col-md-12 col-xs-8 alert alert-danger' align='center'>Invalid username and password. Please try again</div>"; 
 
\t } 
 
\t mysql_close($con); 
 
} 
 

 
?>

Index.php

<? session_start();?> 
 
<script>alert ('<?php echo $_SESSION['username']; ?>');</script>

+0

попробуйте с if ($ rows> 0) {$ _SESSION ['username'] = $ username; – Saty

+0

начать сеанс на странице входа. Я думаю, вы пропустили это –

+0

@saty yup, был опробован, но все еще не может войти. – Howard

ответ

-2

В приведенном ниже коде,

<?php session_start(); // your header.php file should not have a session start in that file 
include "header.php"; 
if (!empty($_POST)){ 
    include 'database_connect.php'; 

    $username = $_POST['username']; 
    $password = $_POST['password']; 
    $username = stripslashes($username); 
    $password = stripslashes($password); 
    $username = mysql_real_escape_string($username); 
    $password = mysql_real_escape_string($password); 

    $sql = "SELECT * FROM users where username='$username' and password='$password'"; 
    $result = mysql_query($sql, $con); 
    $rows = mysql_num_rows($result); 
    if ($rows == 1){ 
     $_SESSION['username'] = $username; 

     ?><script>alert ('<?php echo $_SESSION['username']; ?>');</script><? 
     echo "<script>window.location = \"index.php\";</script>"; 
     exit(); 
     //header("Location: index.php?" . SID); 
    }else{ 
     echo "<div class='col-md-12 col-xs-8 alert alert-danger' align='center'>Invalid username and password. Please try again</div>"; 
    } 
    mysql_close($con); 
} 

?> 

Вы должны использовать session_start() FUNC ции в первой строке страницы после сценария PHP начинается

+2

, но в вашем коде вы пишете session_start() в 5-й строке, почему? – Saty

+0

@saty сначала прочитал мое предложение, я скопировал его собственный код и сказал ему написать его в первой строке после тега php. –

+0

header.php был добавлен session_start(); – Howard

-1

<?php 
 
session_start(); 
 
include "header.php"; 
 
if (!empty($_POST)){ 
 
\t include 'database_connect.php'; 
 
\t $username1 = $_POST['username']; // change it 
 
\t $password1 = $_POST['password']; \t // change it 
 
\t $username = stripslashes($username1); // change it 
 
\t $password = stripslashes($password1); // change it 
 
\t $username = mysql_real_escape_string($username); 
 
\t $password = mysql_real_escape_string($password); 
 
\t 
 
\t $sql = "SELECT * FROM users where username='$username' and password='$password'"; 
 
\t $result = mysql_query($sql, $con); 
 
\t $rows = mysql_num_rows($result); 
 
\t if ($rows == 1){ 
 
\t \t $_SESSION['username'] = $username; 
 
\t \t echo "<script>window.location = \"index.php\";</script>"; 
 
\t \t //header("Location: index.php?" . SID); 
 
\t }else{ 
 
\t \t echo "<div class='col-md-12 col-xs-8 alert alert-danger' align='center'>Invalid username and password. Please try again</div>"; 
 
\t } 
 
\t mysql_close($con); 
 
} 
 

 
?>

Пишет же имя имя пользователя/пароль, прежде чем полоска имени пользователя/пароль, а также после того, таким образом изменить название и попробовать один раз

+0

было изменение, проблема все еще существует. – Howard

0

Завершите сеанс в своей странице index.php page.just и сеансе эхо-пользователя. если вы получите, то попробуйте, если условие.

<?php session_start(); 
echo $_SESSION["username"]; 

if($_SESSION["username"]){ 


echo "bla bla"; 


}?> 
+0

был опробован этот метод, но проблема все еще существует. – Howard

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