2012-10-07 2 views
0

У меня возникла проблема установить сеанс для пользователя. он работает в моем локальном хосте, но он не работает.session_start() не работает в сети

У меня есть имя пользователя с именем «s» и я создал страницу, чтобы увидеть, что это проблема

здесь код. test.php

<?php 
session_start(); 
require 'connect.php'; 

$username = @$_POST['username']; 

?> 

<div class="center_body"> 
    <div class="search_field"> 
      <form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
       <table border="0" width="100%" cellspacing="0" cellpadding="0"> 
        <td align="left">username:</td> 
        <td align="right"><input type="text" name="username" class="search" /></td> 
       </tr> 

       </table> 
       <input type="submit" value="log in" class="search" /></p> 
      </form> 
      </tr> 

    </div> 
</div> 

<?php 
$result = mysql_query("SELECT username FROM users WHERE username='$username'") or die(mysql_error); 

    while($row = mysql_fetch_assoc($result)) 
    { 
     $user = $row['username']; 

    } 

    if($username == $user) 
    { 
     echo '<div class="search_field"><b>you have logged successfully</b></div></ br>'; 
     $_SESSION['username'] = $username; 

    } 

    if(isset($_SESSION['username'])) 
    { 
     echo $_SESSION['username']; 
    } 

?> 

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

<?php 
session_start(); 
require 'connect.php'; 
    if(isset($_SESSION['username'])) 
    { 
     echo $_SESSION['username']; 
    } 

?> 

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

Что вы делаете в этом проблема?

EDIT: connect.php

<?php 

$connect = @mysql_connect("localhost","root","") or die("error in connection"); 
$select = @mysql_select_db("abc") or die ("no databse selected"); 

?> 

, конечно, я изменил данные, которые будут подключены к моим хозяевах databas

+2

Вы пробовали благоприятные 'error_reporting'? После того, как вы его получили, отправьте сообщение об ошибке. – mario

+2

Каждый раз, когда кто-то делает '$ username = @ $ _ POST ['username'];' ребенок умирает. – Mike

ответ

0

попробовать:

if ($_SERVER['REQUEST_METHOD'] == 'POST'){ 
    $result = mysql_query("SELECT username FROM users WHERE username='$username' LIMIT 1") or die(mysql_error); 
    while($row = mysql_fetch_assoc($result)) 
    { 

     if($username == $row['username']) 
     { 
      echo '<div class="search_field"><b>you have logged successfully</b></div></ br>'; 
      $_SESSION['username'] = $username; 
      break; 

     } 

    }  
} 
+0

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

+0

, если этот код не решил вашу проблему, где-то в connect.php вы очищаете сеансы, а также проверяете конфигурацию жизненного цикла сеанса. –

+0

ok вы можете видеть мой connect.php в сообщении. где я вижу конфигурацию жизненного цикла сеанса? –

-1

ОК, ребята, как я думал, что это от мой хост-сайт.

поддержка сообщила мне: «Я установил session.save_path для вашей учетной записи». и проблема решена.

большое спасибо вам, ребята, и особенно для Даниал :)

все самое лучшее для вас :)

+0

приветствуется, но лучше, если вы удалите этот ответ и обновите свой пост :) это не ответ вообще :) –

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