Установка cookie при нажатии на кнопку PHP

12
D
На сайте с 28.06.2008
Offline
1101
1656

Сильно не пинайте, я только учусь PHP.

есть кнопка на сайте

<form action="/ssylka" method="post">
<button type="submit" name="click_vote">кнопка</button>
</form>

как повестить куку при нажатии на кнопку?

пробую тестировать так, не получается

<?php
$value = 13;
if (isset($_POST['click_vote'])) {
setcookie('Vote', $value, 0, '/');
header("Location: http://localhost");
exit;
}
?>

Ошибка - Warning: Cannot modify header information - headers already sent by

SS
На сайте с 15.12.2015
Offline
83
#1

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

Нужно что бы куки отправлялись перед выводом любой информации.

Размещение естественных ссылок на тематических порталах, отзовиках, справочниках (/ru/forum/1013919)
D
На сайте с 28.06.2008
Offline
1101
#2

SERM-service, ниче не понял, извини....

попробовал закоментировать строку

setcookie('Vote', $value, 0, '/');

все равно Warning: Cannot modify header information - headers already sent by

SS
На сайте с 15.12.2015
Offline
83
#3

Спасибо)

Кодировку меняйте. 99% что дело в ней.

---------- Добавлено 26.04.2019 в 09:57 ----------

У вас что то выводиться перед setcookie. Проблема в этом.

D
На сайте с 28.06.2008
Offline
1101
#4

PHP-Storm пишет что файл в UTF-8

Вот весь код


<form action="/" method="post">
<button type="submit" name="click_vote">кнопка</button>
</form>

<?php
$value = 13;
if (isset($_POST['click_vote'])) {
setcookie('Vote', $value, 0, '/');
header("Location: http://localhost");
exit;
}
?>
SS
На сайте с 15.12.2015
Offline
83
#5

Так попробуйте:


<?php
$value = 13;
if (isset($_POST['click_vote'])) {
setcookie('Vote', $value, 0, '/');
header("Location: http://localhost");
exit;
}
?>
<form action="/" method="post">
<button type="submit" name="click_vote">кнопка</button>
</form>
D
На сайте с 28.06.2008
Offline
1101
#6

SERM-service, спасибо, неужели все дело в расположении кода было? Ваш вариант сработал!

S
На сайте с 30.09.2016
Offline
469
#7
SERM-service:
Кодировку меняйте. 99% что дело в ней.

С каких пирогов?

Написано же чётко

Cannot modify header information - headers already sent by

Эта строка

header("Location: http://localhost");
и вызывает ошибку, потому что уже начата выкладка страницы

<form action="/" method="post">
<button type="submit" name="click_vote">кнопка</button>
</form>
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
SS
На сайте с 15.12.2015
Offline
83
#8

Так и есть. Куки отправляются в заголовках, перед выводом текстовой информации. Если попытаться отправить после то получите ошибку с которой вы столкнулись.

---------- Добавлено 26.04.2019 в 10:10 ----------

Sitealert:
С каких пирогов?

С подписанных BOM

D
На сайте с 28.06.2008
Offline
1101
#9

А в хедер можно засунуть переменную?

Типа такого

$url = '/uploads';
header ("Location: $url");
S
На сайте с 30.09.2016
Offline
469
#10
SERM-service:
С подписанных BOM

Не надо путать тёплое с мягким и заморачивать людям голову.

---------- Добавлено 26.04.2019 в 10:18 ----------

Dram:
А в хедер можно засунуть переменную?
Можно.....
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий