Почему Не Работает Куки?

BlackShadow

Well-known member
04.02.2011
111
3
#1
Я тут наработал код по подтверждению емайла. Вот его содержимое:
PHP:
<?php
$pageName = "<b>Подтверждение почтового ящика</b>";
$pageIco = "mail.png";
?>

<?php include("title.inc")?>
<center>
<?php

$log = base64_decode($_GET['log']);
$par = $_GET['par'];

$openMySQL = mysql_connect($server,$user);
if ($openMySQL){

$openDB = mysql_select_db($db,$openMySQL);
if ($openDB){


$sql = mysql_query("SELECT * FROM users");
$count = mysql_num_rows($sql);

$tableData = mysql_query("SELECT * FROM users", $openMySQL);
for ($i=1; $i<=$count; $i++){

$n = $i-1;
$id = mysql_result($tableData,$n,"id");
$nick = mysql_result($tableData,$n,"log");
$pas = mysql_result($tableData,$n,"par");
$act = mysql_result($tableData,$n,"activate");



if ($nick == $log){
if ($pas == $par){

if ($act == 0){

$checkCookie = setcookie("check","1"); // ВОТ ЭТО 39 СТРОКА, НА КОТОРУЮ ОН ЖАЛУЕТСЯ
if ($checkCookie){

$sql = "UPDATE users SET activate='1' WHERE id='$id'";
$addData = mysql_query($sql);
if ($addData){




setcookie("check");
setcookie("log",$log);
setcookie("par",$par);
setcookie("login","1");
echo "E-mail успешно подтвержден! Нажмите на \"Авторизация\"";
mysql_close($openMySQL);


} else {
echo "MySQL» Ошибка добавления данных!<br>";
mysql_close($openMySQL);
}

} else {
echo "Выключены куки! Включите их и перезагрузите эту страницу!";
mysql_close($openMySQL);
}


} else {
echo "Профиль уже активен!";
mysql_close($openMySQL);
}


} // ЛОГИН ПАРОЛЬ
}



}


} else {
echo "MySQL» Открытие базы не удалось!<br>";
mysql_close($openMySQL);
}

} else {
echo "MySQL» Соединение прошло неудачно!<br>";
mysql_close($openMySQL);
}


?>
</center>

<?php include("titleend.inc")?>

При запуске выдаёт такую ошибку:
Warning: Cannot modify header information - headers already sent by (output started at V:\home\shataiboltai.ru\www\confirmMail.php:6) in V:\home\shataiboltai.ru\www\confirmMail.php on line 39
Выключены куки! Включите их и перезагрузите эту страницу!
 
T

texnar6

#2
:) а прочитать ман совсем не судьба или хотя бы, что пишет ошибка?
Cannot modify header information - headers already sent ::: Не могу изменить заголовок - заголовки уже отправлены

Куки посылаються с хедерами, любой вывод, хоть одного символа - это уже тело(body), изучите устройство протокола HTTP!

Незнаю, что у Вас в инклюде, но тег центер явно уже тело, а вы после пытаетесь куку поставить...
Кстати этот тег являеться устаревшим, не рекомендуеться к использованию htmlbook.ru/html/center полноценная поддержка только на html 3.2 частичная на html 4.01 и вообще не поддерживаеться на html 5.0

Учитесь работать с документацией, тем более на русском языке её более чем достаточно.