2013-11-15 4 views
-1

У меня была проблема с эхом от моего $_SESSION['user_name']. Я заметил, что если я удалю "!" от если заявление в форме, где, если зарегистрированы или не определяется, она работает после второго входа:

if(!isset($_SESSION['LOGIN_STATUS'])

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

Я также не могу возвращать какую-либо ценность с помощью $_SESSION['user_id']. Я пробовал много вещей, включая проверку заклинания с использованием PDO :: FETCH_NUM и проверку учетных данных моей таблицы и все еще ничего.

В настоящее время на проверки работы для имени пользователя и пароля, но ничего не возвращается, когда вторя $_SESSION['user_name'] и $_SESSION['user_id'] в текущем коде:

PHP:

<?php 
session_start(); 
require_once('php/config.php'); 

if(isset($_POST['submit'])){ 
    $username = $_POST['user_name']; 
    $password = $_POST['pwd']; 

    $stmt = $con->prepare("SELECT * FROM tapp_login WHERE username = ? AND password = ? LIMIT 1"); 
    $stmt->bind_param('ss', $username, $password); 
    $stmt->execute(); 
    $stmt->bind_result($username, $password); 
    $stmt->store_result(); 
    if($stmt->num_rows == 1){ //To check if the row exists 
    $row = $stmt->fetch(PDO::FETCH_NUM); //fetching the contents of the row 
    $_SESSION['LOGIN_STATUS']=true; 
    $_SESSION['user_id'] = $row['user_id']; 
    $_SESSION['user_name'] = $username;    
    echo 'true'; 
    } 
    else { 
    echo 'false'; 
    } 
    $stmt->close(); 
} 
else{ 
} 
$con->close(); 
?> 

ФОРМА:

<body> 
<fieldset id="login_form_wrap" class="login_form_header"> 
    <legend><a href='projects.php'>CUSTOMER LOGIN</a></legend> 
    <?php session_start(); 
    $_SESSION['timeout'] = time();?> 
    <div id="profile"> 
    <!--If not logged in--> 
    <?php if(!isset($_SESSION['LOGIN_STATUS']) || ($_SESSION['timeout'] + 600 < time())){?> 
    <div id="login_a"> 
     <a id="login_profile" href="#">click to login</a> 
    </div> 
    <!--Else if logged in--> 
    <?php }else {;?> 
    <a href='logout_session.php' id='logout'>Logout</a> 
    <!--header('location: dashboard.php');--> 
    <?php } ?> 
    </div> 
    <form action="login_validation.php" id="login_form" method="POST"> 
    <div id="login_b"> 
     <div class="welcome"></div> 
     <span class="col1">USER NAME:</span> 
     <input type="text" id="user_name" name="user_name" class="input" required /> 
     <span class="col1">PASSWORD:</span> 
     <input type="password" id="password" name="password" class="input" required /> 
     <span class="col1"></span> 
     <input type="submit" name"submit" id="login_validation" value="SUBMIT" /> 
     <input type="reset" id="cancel_hide" value="CANCEL" /> 
     <div id="add_err"><br></div> 
    </div> 
    </form> 
    <form action="project_validation.php" id="projects_form" method="POST"> 
    <div id="projects"> 

    <!-------------------------- Does not work -------------------------> 
    <div class="welcome">Welcome <?php echo $_SESSION['user_name'];?><br> 
    User ID: <?php echo $_SESSION['user_id'];?></div> 


    <span class="col1">PROJECTS:</span> 
    <select id="Projects" name="Projects" class="input"> 
    <option id="project" name="project" value="" selected="selected" disabled='disabled'>Choose a Project...</option> 

    ... 

    </select> 
    </div> 
    <span class="col1"></span>   
    <input type="submit" name="select" id="project_validation" value="SELECT" /> 
    <div id="add_err"><br></div> 
    </form> 
</fieldset> 
</body> 

В случае, если ваше удивление «...» просто представляет собой больше формы, которая не нужна.

+0

Сначала вам необходимо изучить основы. –

+0

@relentless, может быть, так .. Я новичок в этом, просто ищу точку в правильном направлении. – Rob

+0

Я не сказал, что, чтобы отговорить вас, я сказал это, потому что ваш вопрос слишком велик, чтобы ответить здесь. Продолжайте пытаться. Прочтите несколько руководств, посмотрите видео и т. Д. ... –

ответ

0

От PHP официальной справки о:

Чтобы использовать кук на основе сеансов, session_start() должен вызываться перед outputing ничего браузер.

На вашей странице формы вы вызываете session_start после того, как содержимое отправлено на выход. Вы должны вызвать session_start перед написанием HTML.

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