Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
7 / 7 / 0
Регистрация: 15.10.2012
Сообщений: 180
1

Ошибка php session-start

03.05.2013, 18:56. Показов 1570. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
При запуске сайта в браузере выдает следующую запись:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at R:\home\localhost\www\comptech2.com\connect.php:1) in R:\home\localhost\www\comptech2.com\index.php on line 28

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at R:\home\localhost\www\comptech2.com\connect.php:1) in R:\home\localhost\www\comptech2.com\index.php on line 28

Что это может быть?
Смотрю index.php, а у меня 28 строка вообще пустая.
Привожу частичный код index.php:

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
define('INCLUDE_CHECK',true);
 
 
 
require 'connect.php';
 
require 'functions.php';
 
// Данные два файла нужно включать только в случае определения INCLUDE_CHECK
 
 
 
 
 
session_name('tzLogin');
 
// Запуск сессии
 
 
 
session_set_cookie_params(2*7*24*60*60);
 
// Устанавливаем время жизни куки 2 недели
 
 
 
session_start();
Подозреваю что ошибка именно в session_start();

Добавлено через 14 минут
Вот весь php скрипт:
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
<?php
 
 
 
define('INCLUDE_CHECK',true);
 
 
 
require 'connect.php';
 
require 'functions.php';
 
// Данные два файла нужно включать только в случае определения INCLUDE_CHECK
 
 
 
 
 
session_name('tzLogin');
 
// Запуск сессии
 
 
 
session_set_cookie_params(2*7*24*60*60);
 
// Устанавливаем время жизни куки 2 недели
 
 
 
session_start();
 
 
 
if($_SESSION['id'] && !isset($_COOKIE['tzRemember']) && !$_SESSION['rememberMe'])
 
{
 
    // Если вы вошли в систему, но куки tzRemember (рестарт браузера) отсутствует
 
    // и вы не отметили чекбокс 'Запомнить меня':
 
 
 
    $_SESSION = array();
 
    session_destroy();
 
    
 
    // Удалаяем сессию
 
}
 
 
 
 
 
if(isset($_GET['logoff']))
 
{
 
    $_SESSION = array();
 
    session_destroy();
 
    
 
    header("Location: index.php");
 
    exit;
 
}
 
 
 
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 tz_members WHERE usr='{$_POST['username']}' AND pass='".md5($_POST['password'])."'"));
 
 
 
        if($row['usr'])
 
        {
 
            // Если все в порядке - входим в систему
 
            
 
            $_SESSION['usr']=$row['usr'];
 
            $_SESSION['id'] = $row['id'];
 
            $_SESSION['rememberMe'] = $_POST['rememberMe'];
 
            
 
            // Сохраняем некоторые данные сессии
 
            
 
            setcookie('tzRemember',$_POST['rememberMe']);
 
        }
 
        else $err[]='Ошибочный пароль или/и имя пользователя!';
 
    }
 
    
 
    if($err)
 
    $_SESSION['msg']['login-err'] = implode('<br />',$err);
 
    // Сохраняем сообщение об ошибке сессии
 
 
 
    header("Location: index.php");
 
    exit;
 
}
 
else if($_POST['submit']=='Зарегистрироваться')
 
{
 
    // Проверяем, что представлена форма Зарегистрироваться
 
    
 
    $err = array();
 
    
 
    if(strlen($_POST['username'])<4 || strlen($_POST['username'])>32)
 
    {
 
        $err[]='Имя пользователя должно содержать от 3 до 32 символов!';
 
    }
 
    
 
    if(preg_match('/[^a-z0-9\-\_\.]+/i',$_POST['username']))
 
    {
 
        $err[]='Ваше имя пользователя сожержит недопустимые символы!';
 
    }
 
    
 
    if(!checkEmail($_POST['email']))
 
    {
 
        $err[]='Email не правильный!';
 
    }
 
    
 
    if(!count($err))
 
    {
 
        // Если нет ошибок
 
        
 
        $pass = substr(md5($_SERVER['REMOTE_ADDR'].microtime().rand(1,100000)),0,6);
 
        // Генерируем случайный пароль
 
        
 
        $_POST['email'] = mysql_real_escape_string($_POST['email']);
 
        $_POST['username'] = mysql_real_escape_string($_POST['username']);
 
        // Получаем введеные данные
 
        
 
        
 
        mysql_query("   INSERT INTO tz_members(usr,pass,email,regIP,dt)
 
                        VALUES(
 
                        
 
                            '".$_POST['username']."',
 
                            '".md5($pass)."',
 
                            '".$_POST['email']."',
 
                            '".$_SERVER['REMOTE_ADDR']."',
 
                            NOW()
 
                            
 
                        )");
 
        
 
        if(mysql_affected_rows($link)==1)
 
        {
 
            send_mail(  'Comptech',
 
                        $_POST['email'],
 
                        'Регистрация в системе comptech',
 
                        'Ваш логин:'.$username,
 
                        'Ваш пароль: '.$pass);
 
 
 
            $_SESSION['msg']['reg-success']='Мы отправили вам письмо с вашим новым паролем!';
 
        }
 
        else $err[]='Данное имя пользователя уже занято!';
 
    }
 
 
 
    if(count($err))
 
    {
 
        $_SESSION['msg']['reg-err'] = implode('<br />',$err);
 
    }   
 
    
 
    header("Location: index.php");
 
    exit;
 
}
 
 
 
$script = '';
 
 
 
if($_SESSION['msg'])
 
{
 
    // Скрипт ниже показывает выскаьзывающую панель
 
    
 
    $script = '
 
    <script type="text/javascript">
 
    
 
        $(function(){
 
        
 
            $("div#panel").show();
 
            $("#toggle a").toggle();
 
        });
 
    
 
    </script>';
 
    
 
}
 
?>
Добавлено через 6 минут
С помощью Notepad++ сделал Преобразование в UTF-8 без BOM, ничего не помогло.
Самое интересное что на хостинге в интернете работает, на Денвере нет
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.05.2013, 18:56
Ответы с готовыми решениями:

Ошибка - Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent
Добрый день!!! Хочу реализовать регистрацию и авторизацию пользователей. Вроде все правильно делаю....

ошибка с объявлением session-start
Не могу понять, каким образом правильно начать сессию всмысле (session-start) denwer выдает ошибку...

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by
session_start(); if (!isset($_SESSION)) $_SESSION=0; echo &quot;вы обновили страницу &quot;.$_SESSION++.&quot;...

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent
Открыл движок а точне файл index.php та начало кода &lt;?php /** * Файл index.php расположен в...

4
1178 / 1128 / 94
Регистрация: 31.05.2012
Сообщений: 3,060
03.05.2013, 20:00 2
Цитата Сообщение от Роcc Посмотреть сообщение
Cannot send session cookie - headers already sent by (output started at R:\home\localhost\www\comptech2.com\connect.php:1)
Вам же даже написано где вывод начался. В файлике connect.php в 1 строке.
Видимо там не заменили кодировку.
1
странник
810 / 481 / 108
Регистрация: 28.05.2012
Сообщений: 1,518
Записей в блоге: 2
04.05.2013, 12:46 3
есть подозрение, что версия php денвера устаревшая.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
04.05.2013, 12:52 4
php и денвер тут абсолютно ни причем. Проверяйте кодировку внимательнее

Добавлено через 46 секунд
возможно, даже простой пробел "затесался" в файле connect.php
1
7 / 7 / 0
Регистрация: 15.10.2012
Сообщений: 180
04.05.2013, 13:28  [ТС] 5
Спасибо! Сделал Преобразование в UTF-8 без BOM в файле connect.php, и все решилось!
0
04.05.2013, 13:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2013, 13:28
Помогаю со студенческими работами здесь

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent
Пытаюсь сделать корзину товаров, проблема с session_start выдает вот такую ошибку: Warning:...

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent
У меня на компе все ОК, но после загрузки на хост получаю предупреждения и нечего не работает ...

Warning: session_start() [function.session-start]: Cannot send session cookie
Warning: session_start() : Cannot send session cookie - headers already sent by (output started at...

Warning: session_start() [function.session-start]: Cannot send session cache
Привет. Сегодня решиль сделать у себя в сайте регистрацию она работает нормально все без проблем,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru