Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Hopeco
16 / 16 / 8
Регистрация: 18.03.2014
Сообщений: 268
1

Cookie и header не работают

25.01.2015, 09:52. Просмотров 419. Ответов 3
Метки нет (Все метки)

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<?php
mysql_connect("bla", "bla", "bla");
    mysql_select_db("bla");
 
$query = mysql_query("SELECT hash FROM users WHERE sid='".mysql_real_escape_string($_GET['ak'])."' LIMIT 1");
$data = mysql_fetch_assoc($query);
 
if ($_GET['ak'] == md5($data['hash']))
{
    // '<script type="text/javascript"> window.location.href = "select.php?ak='.$_GET['ak'].'" </script>';
    header('Location: select.php?ak='.$_GET['ak']); // Не работает
}
else
{
    echo '<html lang="ru">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Anime Watcher</title>
        <link rel="stylesheet" href="css/foundation.css" />
        <script src="js/vendor/modernizr.js"></script>
    </head>
    <body>
    <div class="panel">
                <h5>Anime Watcher: Авторизация</h5>
    </div>
    <div class="panel">
        <div class="row">
            <div class="large-8 medium-8 columns">
                <form method="post">
                    <div class="row">
                        <div class="large-12 columns">
                            <label>Логин:</label>
                            <input type="text" name="login" placeholder="Введите логин" />
                        </div>
                
                        <div class="large-12 columns">
                            <label>Пароль:</label>
                            <input type="password" name="password" placeholder="Введите пароль" />
                        </div>
                    
                        <div class="large-12 columns">
                            <input type="submit" name="submit" class="small button" value="Войти">
                            <a href="register.php" class="small button" >Регистриация</a><br/>
                        </div>
                    </div>
                </form>
            </div>     
        </div>
        </div>
    
        <script src="js/vendor/jquery.js"></script>
        <script src="js/foundation.min.js"></script>
        <script>
            $(document).foundation();
        </script>
        
    </body>
</html>';
}
mysql_close() or die(mysql_error());
 
 
function generateCode($length=6) {
    $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHI JKLMNOPRQSTUVWXYZ0123456789";
    $code = "";
    $clen = strlen($chars) - 1;  
    while (strlen($code) < $length) {
        $code .= $chars[mt_rand(0,$clen)];  
    }
    return $code;
}
        
if(isset($_POST['submit']))
{
    mysql_connect("bla", "bla", "bla");
    mysql_select_db("bla");
    
    $query = mysql_query("SELECT id, password FROM users WHERE username='".mysql_real_escape_string($_POST['login'])."' LIMIT 1");
    $data = mysql_fetch_assoc($query);
        
    if($data['password'] == md5(md5($_POST['password'])))
    {
        $hash = md5(generateCode(10));
        $auth_key = md5($hash);
        $id = $data['id'];
        
        mysql_query("UPDATE users SET hash='".$hash."', sid='".$auth_key."' WHERE id='".$id."'");
        
        setcookie("auth_key", $auth_key); // Не работает
        
        echo '<script type="text/javascript"> window.location.href = "select.php?ak='.$auth_key.'" </script>';
    } else {
        echo '<script>alert("А ты зарегался? ^_^");</script>';
    }
}
 
mysql_close() or die(mysql_error());
?>
Вот собственно код например в первом случае header стоит до вывода инфы на страницу. Но не работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2015, 09:52
Ответы с готовыми решениями:

Cookie and header
Проблема в том что если всё верно куки добавляем и редиректим на туже страницу,...

Cookie и Denwer - Cannot modify header information - headers already sent
Люди почему в denwer не ставятся cookie? например если выполнить этот код...

Не работают cookie в php (сессии тоже) ни в каком из браузеров
Даже тот echo $_COOKIE; в 16 строке не отображается. В браузере cookie...

Не работают cookie
&lt;?php setcookie(&quot;lab45&quot;, $cooly,time()+3600); ?&gt; &lt;form method=&quot;get&quot;&gt; Фон...

Почему Cookie в куки заносится значение, а в другом файле Cookie пуста?
Здравствуйте подскажите что я не так делаю все вроде по примерам да ошибок как...

3
Jodah
Эксперт PHP
2712 / 2383 / 1014
Регистрация: 01.08.2012
Сообщений: 8,417
25.01.2015, 09:58 2
А что происходит? Просто нет редиректа или есть, но не туда? Возможно в начале урла нужно слеш добавить.

Для куки добавьте третьим параметром время действия. И покажите, что лежит в массиве $_COOKE.
0
Academik
659 / 439 / 171
Регистрация: 04.04.2013
Сообщений: 1,914
25.01.2015, 10:01 3
Hopeco, на сколько я понимаю у вас в if приходит false. Отсюда нужно копать дальше.
0
Hopeco
16 / 16 / 8
Регистрация: 18.03.2014
Сообщений: 268
25.01.2015, 15:46  [ТС] 4
Jodah, нет редиректа.
Mr Coder, я побывал по разному не работает. Изначально код был таким:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<!doctype html>
<html class="no-js" lang="en">
    <head>
        <meta charset="utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Video Hosting</title>
        <link rel="stylesheet" href="css/foundation.css" />
        <script src="js/vendor/modernizr.js"></script>
    </head>
    <body>
    <div class="panel">
                <h5>Video Hosting: Авторизация</h5>
    </div>
    <div class="panel">
        <div class="row">
            <div class="large-8 medium-8 columns">
                <form method="post">
                    <div class="row">
                        <div class="large-12 columns">
                            <label>Логин:</label>
                            <input type="text" name="login" placeholder="Введите логин" />
                        </div>
                
                        <div class="large-12 columns">
                            <label>Пароль:</label>
                            <input type="password" name="password" placeholder="Введите пароль" />
                        </div>
                    
                        <div class="large-12 columns">
                            <input type="submit" name="submit" class="small button" value="Войти">
                            <a href="register.php" class="small button" >Регистриация</a><br/>
                        </div>
                    </div>
                </form>
            </div>     
        </div>
        </div>
    
        <script src="js/vendor/jquery.js"></script>
        <script src="js/foundation.min.js"></script>
        <script>
            $(document).foundation();
        </script>
        
        <script>
        function setcookie(user_id, hash)
        {
            var date = new Date( new Date().getTime() + 3600*24*30*12 );
            
            document.cookie = "id=" + user_id + "; path=/; expires="+date.toUTCString();
            document.cookie = "hash=" + hash + "; path=/; expires="+date.toUTCString();
        }
        </script>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
        <?php
        error_reporting(E_ALL);
        
        
        
        function generateCode($length=6) {
            $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHI JKLMNOPRQSTUVWXYZ0123456789";
            $code = "";
            $clen = strlen($chars) - 1;  
            while (strlen($code) < $length) {
                $code .= $chars[mt_rand(0,$clen)];  
            }
            return $code;
        }
        
        if ($_POST['submit'])
        {
            mysql_connect("аыафыафru", "u154аыфафыoot", "lEp*/афыафыафыаo^tафыа");
            mysql_select_db("u15афыафыаф_mob");
        
            $query = mysql_query("SELECT user_id, password FROM data WHERE login='".mysql_real_escape_string($_POST['login'])."' LIMIT 1");
            $data = mysql_fetch_assoc($query);
        
            if($data['password'] == md5(md5($_POST['password'])))
            {
                $hash = md5(generateCode(10));
                
                $insip = ", user_ip=INET_ATON('".$_SERVER['REMOTE_ADDR']."')";
                
                mysql_query("UPDATE data SET user_hash='".$hash."' ".$insip." WHERE user_id='".$data['user_id']."'");
                
                $usrid = $data['user_id'];
                
                echo '<script>setcookie("'.$usrid.'","'.$hash.'");</script>';
                echo '<script type="text/javascript"> window.location.href = "select.php" </script>';
            } else {
                echo '<script>alert("А ты зарегался? ^_^");</script>';
            }
        }
        
        mysql_close() or die(mysql_error());
        ?>
    </body>
</html>
Но из некоторых соображений таких как javascript для занесения куки и пере направления. Мне не подходил этот вариант (кстати javascript был из за того что не работали куки и перенаправление в php как и шяс)

Добавлено через 4 минуты
И ещё меня не устраивало то что залогиненый пользователь мог перейти сюда и повторить логин.

Добавлено через 5 часов 36 минут
Проблема решена.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.01.2015, 15:46

Warning: Cannot modify header information - headers already sent в header('Location: /index.php');
Warning: Cannot modify header information - headers already sent by (output...

Ошибка header: cannot modify header information
Ребят, я так понял что тут header просто перекидывает на другую страницу. Можно...

Не срабатывает header, ошибка "Cannot modify header information - headers already sent by"
Всем привет. Помогите решить проблему. Есть два файла index c формой, через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru