Куки

Discussion in 'PHP' started by IGL, 17 Oct 2010.

  1. IGL

    IGL New Member

    Joined:
    16 Nov 2007
    Messages:
    41
    Likes Received:
    0
    Reputations:
    0
    Всем привет!..

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

    в чем может быть проблема ?
    сайт http://izotop.kubanhost.net/
    Tестовый пользователь:
    login: test
    pass: test


    index.php
    PHP:
    <?php
    session_name
    ('tzLogin');
    session_set_cookie_params(2*7*24*60*60);
    session_start();
    if(isset(
    $_GET['logoff']))
    {
        
    $_SESSION = array();
        
    session_destroy();
        
    header("Location: index.php");
    }

    if(
    $_SESSION['id'] && !isset($_COOKIE['tzRemember']) && !$_SESSION['rememberMe'])
    {
        
    $_SESSION = array();
        
    session_destroy();
    }
    if(
    $_POST['submit']=='Войти')
    {
        
    $err = array();
        if(!
    $_POST['username'] || !$_POST['password'])
            
    $err[] = 'Все поля должны быть заполнены!';
        if(!
    count($err))
        {
            
    $_POST['username'] = mysql_real_escape_string($_POST['username']);
            
    $_POST['password'] = mysql_real_escape_string($_POST['password']);
            
    $_POST['rememberMe'] = (int)$_POST['rememberMe'];
            
    $row mysql_fetch_assoc(mysql_query("SELECT id,usr FROM zone27_members WHERE usr='{$_POST['username']}' AND pass='".($_POST['password'])."'"));
            if(
    $row['usr'])
            {
                
    $_SESSION['usr']=$row['usr'];
                
    $_SESSION['id'] = $row['id'];
                
    $_SESSION['password'] = $row['pass'];
                
    $_SESSION['rememberMe'] = $_POST['rememberMe'];
                
    setcookie('tzRemember',$_POST['rememberMe']);
            }
            else 
    $err[]='Ошибочный пароль или/и имя пользователя!';
        }
        if(
    $err)
        
    $_SESSION['msg']['login-err'] = implode('<br />',$err);
        
    header("Location: index.php");
    }
    else if(
    $_POST['submit']=='Зарегистрироваться')
    {
        
    $err = array();
        if(
    strlen($_POST['username'])<|| strlen($_POST['username'])>32)
        {
            
    $err[]='Имя пользователя должно содержать от 3 до 32 символов!';
        }
        if(
    preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['username']))
        {
            
    $err[]='Ваше имя пользователя сожержит недопустимые символы!';
        }
        if(!
    count($err))
        {
            
    $_POST['email'] = mysql_real_escape_string($_POST['email']);
            
    $_POST['name'] = mysql_real_escape_string($_POST['name']);
            
    $_POST['pass'] = mysql_real_escape_string($_POST['pass']);
            
    $_POST['username'] = mysql_real_escape_string($_POST['username']);
             
    mysql_query("    INSERT INTO zone27_members(usr,pass,email,name,regIP,dt)
                             VALUES(
                                 '"
    .$_POST['username']."',
                                 '"
    .$_POST['pass']."',
                                 '"
    .$_POST['email']."',
                                 '"
    .$_POST['name']."',
                                 '"
    .$_SERVER['REMOTE_ADDR']."',
                                 NOW()
                             )"
    );
        }
        if(
    count($err))
        {
            
    $_SESSION['msg']['reg-err'] = implode('<br />',$err);
        }    
        
    header("Location: index.php");
    }
    $script '';
    if(
    $_SESSION['msg'])
    {
        
    $script '
        <script type="text/javascript">
            $(function(){
                $("div#panel").show();
                $("#toggle a").toggle();
            });
        </script>'
    ;
        
    }
    ?>


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"><head>
    <meta http-equiv="Content-Type" content="text/html; charset=cp1251" />
    <title>Главная страница</title>
        <link rel="stylesheet" type="text/css" href="../design/design.css" media="screen" />
        <link rel="stylesheet" type="text/css" href="login_panel/css/slide.css" media="screen" />
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
        <!-- фиксация PNG для IE6 -->
        <!-- http://24ways.org/2007/supersleight-transparent-png-in-ie6 -->
        <!--[if lte IE 6]>
            <script type="text/javascript" src="login_panel/js/pngfix/supersleight-min.js"></script>
        <![endif]-->
        <script src="login_panel/js/slide.js" type="text/javascript"></script>
        <?php echo $script?>
    </head>
    <body>
    <!-- Панель -->
    <div id="toppanel">
        <div id="panel">
            <div class="content clearfix">
                <div class="left">
                    <h1>Привет странник рунета</h1>
                </div>
                <?php
                
    if(!$_SESSION['id']):
                
    ?>
                <div class="left">
                    <!-- Форма входа -->
                    <form class="clearfix" action="" method="post">
                        <h1>Пожалуйста представьтесь!</h1>
                        <?php
                            
    if($_SESSION['msg']['login-err'])
                            {
                                echo 
    '<div class="err">'.$_SESSION['msg']['login-err'].'</div>';
                                unset(
    $_SESSION['msg']['login-err']);
                            }
                        
    ?>
                        <input class="field" type="text" name="username" id="username" value="" size="23" /><b class="grey" for="username">Логин</b>
                        <input class="field" type="password" name="password" id="password" size="23" /><b class="grey" for="pass">Пароль</b>
                        <label><input name="rememberMe" id="rememberMe" type="checkbox" checked="checked" value="1" /> &nbsp;Запомнить меня</label>
                        <div class="clear"></div>
                        <input type="submit" name="submit" value="Войти" class="bt_login" />
                    </form>
                </div>
                <div class="left right">            
                    <!-- Форма регистрации -->    
                <!--    <form action="" method="post">
                        <h1>Еще не зарегистрировалсь? Вводите данные!</h1>    -->
                        <?php
                     
    if($_SESSION['msg']['reg-err'])
                            {
                                echo 
    '<div class="err">'.$_SESSION['msg']['reg-err'].'</div>';
                                unset(
    $_SESSION['msg']['reg-err']);
                            }
                            if(
    $_SESSION['msg']['reg-success'])
                            {
                                echo 
    '<div class="success">'.$_SESSION['msg']['reg-success'].'</div>';
                                unset(
    $_SESSION['msg']['reg-success']);
                            } 
                        
    ?>
            <!--    <input class="field" type="text" name="username" id="username" value="" size="18" /><b class="grey" for="username">Логин</b>
                        <input class="field" type="text" name="pass" id="pass" value="" size="18" /><b class="grey" for="pass">Пароль</b>
                        <input class="field" type="text" name="name" id="name" value="" size="18" /><b style=nowrap class="grey" for="name">Имя</b>
                        <input class="field" type="text" name="email" id="email" size="18" /><b class="grey" for="email">Email:</b>
                        <input type="submit" name="submit" value="Зарегистрироваться" class="bt_register" />
                    </form> -->
                </div>
                <?php
                
    else:
                
    ?>
                <div class="left">
                <h1>Вы авторизованы...</h1>
                <? 
                
    if($_SESSION['usr'] === 'xxxxx'){
                echo 
    "<p><a href='administration/index.php'> Перейти на страницу администратора</a></p>";
                echo 
    "</br>";
                }
                
    ?>
            <!--    </br><a href="user/edit_iam.php">Перейти на страницу пользователя</a>
                <p>- или -</p>-->
                <a href="?logoff">Выйти из системы</a>
                </div>
                <div class="left right">
                </div>
                <?php
                
    endif;
                
    ?>
            </div>
        </div> 
        <!-- Закладка наверху -->    
        <div class="tab">
            <ul class="login">
                <li class="left">&nbsp;</li>
                <li>Здравствуйте, <?php echo $_SESSION['usr'] ? '<a href="user/user.php?u='.$_SESSION['id'].'">'.$_SESSION['usr'].'</a>' 'Гость';?>!</li>
                <li class="sep">|</li>
                <li id="toggle">
                    <a id="open" class="open" href="#"><?php echo $_SESSION['id']?'Открыть панель':'Вход | Регистрация';?></a>
                    <a id="close" style="display: none;" class="close" href="#">Закрыть панель</a>            
                </li>
                <li class="right">&nbsp;</li>
            </ul> 
        </div> 
    </div> 
        <div id="main">
          <div class="container">
            <h1>Главная страница</h1>
            <h2>Сайт находится в разработке...</h2>
            </div>
            <div class="container">
            
    <?php
    include 'content.php';
    ?>
              
              <div class="clear"></div>
            </div>
            
     
    </div>

    </body>
    </html>



     
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    IGL прописать в начале скрипта error_reporting(E_ALL); и посмотреть какие ошибки выдает скрипт, и от них работать.

    Флейм конечно интересен, но слишком груб, поэтому потру-ка его
     
    _________________________
  3. IGL

    IGL New Member

    Joined:
    16 Nov 2007
    Messages:
    41
    Likes Received:
    0
    Reputations:
    0
    прописал в самом верху index.php - error_reporting(E_ALL);
    ничего не показало...
    прописал через echo error_reporting(E_ALL);
    написало 6135

    в логе:
    PHP:
    [Sun Oct 17 23:22:34 2010] [error] [client 178.34.49.92PHP Warningsession_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter headers already sent (output started at /var/www/hk721/data/www/izotop.kubanhost.net/index.php:1in /var/www/hk721/data/www/izotop.kubanhost.net/index.php on line 6
    в index.php ето:
    PHP:
    session_name('tzLogin');
     
    #3 IGL, 17 Oct 2010
    Last edited: 17 Oct 2010
  4. v00d

    v00d Member

    Joined:
    11 Oct 2010
    Messages:
    34
    Likes Received:
    10
    Reputations:
    7
    session_start() пиши в самом начале index.php, уже после него, свои echo, var_dump ...
     
  5. IGL

    IGL New Member

    Joined:
    16 Nov 2007
    Messages:
    41
    Likes Received:
    0
    Reputations:
    0
    прописал но не помогло...

    PHP:
    [Mon Oct 18 03:04:47 2010] [error] [client 1x8.34.xxx.xxxPHP Warningsession_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter headers already sent (output started at /var/www/hk721/data/www/izotop.kubanhost.net/index.php:1in /var/www/hk721/data/www/izotop.kubanhost.net/index.php on line 1 
    [Mon Oct 18 03:04:47 2010] [error] [client 1x8.34.xxx.xxxPHP NoticeUndefined indexid in /var/www/hk721/data/www/izotop.kubanhost.net/index.php on line 16
    1 строка
    PHP:
    session_start();
    16 строка
    PHP:
    if($_SESSION['id'] && !isset($_COOKIE['tzRemember']) && !$_SESSION['rememberMe']) 
     { 
           
    $_SESSION = array(); session_destroy(); 
     }
     
    #5 IGL, 18 Oct 2010
    Last edited: 18 Oct 2010
  6. LStr1ke

    LStr1ke Elder - Старейшина

    Joined:
    29 Jul 2009
    Messages:
    800
    Likes Received:
    145
    Reputations:
    73
    Сохрани файл php без BOM.
     
  7. IGL

    IGL New Member

    Joined:
    16 Nov 2007
    Messages:
    41
    Likes Received:
    0
    Reputations:
    0
    спасибо, все заработало