Я работаю на localhost и пытаюсь создать систему входа в систему, но мой сеанс не запускается, вот мой код php

if(isset($_POST['_submit'])){
            session_start();
            if(empty($_POST['_email']) || empty($_POST['_password'])){
                echo "<script>window.alert('Invalid User EMAIL or PASSWORD!')</script>";
            }
            else{

                $email = $_POST['_email'];
                $password = $_POST['_password'];

                $select_user = "SELECT email,password FROM signup WHERE email='$email' AND password='$password'";
                $query = mysqli_query($conn,$select_user);
                $rows = mysqli_num_rows($query);

                if($rows>0){
                    $_SESSION['user_email'] = $email;
                    header('Location: ../index.php');
                }
                else{
                    echo "<script>window.alert('Invalid User EMAIL or PASSWORD!')</script>";
                }

            }
        }

И после начала сеанса я хочу изменить html-код, вот мой код

<?php if(!empty($_SESSION['user_email'])){ ?>
<li><a href="#">Logout</a></li>
<?php } else { ?>
<li><a href="login/index.php">Login</a></li>
<li><a href="signUp/index.php">Sign Up</a></li>
<?php } ?>

Вот мой html-код системы входа в систему

<div class="outside">
            <form class="form-horizontal" role="form" method="post">
                <div class="form-group">
                    <label class="control-label col-sm-3 glyphicon glyphicon-user" for="email"></label>
                    <div class="control-label col-sm-8">
                        <input type="_email" name="_email" class="form-control" id="email" placeholder="Enter Email">
                    </div>
                </div>
                <div class="form-group">
                    <label class="control-label col-sm-3 glyphicon glyphicon-lock" for="password"></label>
                    <div class="control-label col-sm-8">
                        <input type="password" name="_password" class="form-control" id="password" placeholder="Enter Password">
                    </div>
                </div>
                <div class="form-group"> 
                    <div class="col-sm-offset-3 col-sm-3">
                        <button name="_submit" type="submit" class="btn btn-default" >Login</button>
                    </div>
                </div>
            </form>
            <p>Not a User? <a href="../signUp/index.php">Sign Up</a></p>
        </div>

Благодарность,

-1
Umer Farooq 28 Дек 2015 в 10:50

3 ответа

Лучший ответ

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

<?php
session_start();
if(isset($_SESSION['somekey']))
{
      //code here
}
2
Basheer Kharoti 28 Дек 2015 в 07:52

Session_start () должен находиться за пределами вашего оператора if и обычно всегда запускается перед выполнением любого вашего PHP-кода.

session_start();
if(isset($_POST['_submit'])){

Поместите session_start () в начало всех ваших файлов PHP, где вы хотите проверить данные сеанса. Если у вас есть централизованный файл конфигурации, просто поместите его туда.

-1
Clay 28 Дек 2015 в 07:53

Объявить session_start () перед тегом <html>. посмотреть, работает ли это.

1
Vishnuprasad 28 Дек 2015 в 07:57