Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> setcookie и meta-теги
Undertaker  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 315
Пользователь №: 31230
На форуме: 4 года, 11 месяцев, 27 дней
Карма:




Здравствуйте, друзья
Возникла проблема с установкой куков. Надеюсь на ваш опыт.
есть скрипт:

<meta charset="utf-8">
<?php

mysql_connect("localhost", "myhost", "myhost");
mysql_select_db("testtable");

if (isset($_COOKIE['id']) and isset($_COOKIE['hash']))
{
$query = mysql_query("SELECT *,INET_NTOA(user_ip) FROM users WHERE user_id = '".intval($_COOKIE['id'])."' LIMIT 1");
$userdata = mysql_fetch_assoc($query);

if(($userdata['user_hash'] !== $_COOKIE['hash']) or ($userdata['user_id'] !== $_COOKIE['id'])
or (($userdata['user_ip'] !== $_SERVER['REMOTE_ADDR']) and ($userdata['user_ip'] !== "0")))
{
setcookie("id", "", time() - 3600*24*30*12, "/");
setcookie("hash", "", time() - 3600*24*30*12, "/");
print "Хм, что-то не получилось";
}
else
{
print "Привет, ".$userdata['user_login'].". Всё работает!";
}
}

else
{
print "Включите куки";
}
?>
<form
action="proba2.php" method="post" enctype="multipart/form-data">
<p>
Изображения:
<input type="file" name="pictures[]" multiple/>
<input
type="submit" value="Отправить" />
</p>
</form>



На моём локальном сервере (xampp) всё хорошо, кука устанавливается и скрипт работает без запинок, при переносе же на хостинг кука выпадает в ошибку. Мотивирует это тем, что заголовки у неё уже отправлены.
И вроде все логично: надо убрать ниже заголовок "<meta charset="utf-8">" и будет счастье, но остаётся интерес почему же тогда работает на локальном сервере.
От чего это зависит? Может от настроек, может от версии php
Сталкивался я с таким не один раз. На моём сервере всё хорошо, на хостинге траблы.... Выручите ответом


--------------------
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
TranceIT  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



...Один я одинаковый...
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1765
Пользователь №: 19760
На форуме: 7 лет, 2 месяца, 4 дня
Карма: 59




В php.ini display_errors = on
В начале скрипта error_reporting(E_ALL)


--------------------
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1393
Пользователь №: 28976
На форуме: 5 лет, 5 месяцев, 22 дня
Карма: 78




Цитата
Как и любой другой заголовок, cookie должны передаваться до того как будут выведены какие-либо другие данные скрипта (это ограничение протокола). Это значит, что в скрипте вызовы этой функции должны располагаться прежде остального вывода, включая вывод тэгов <html> и <head>, а также пустые строки и пробелы.

Цитата
<meta charset="utf-8">
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Undertaker  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 315
Пользователь №: 31230
На форуме: 4 года, 11 месяцев, 27 дней
Карма:




TranceIT
Warning: Cannot modify header information - headers already sent by (output started at /home/r/r90458cq/r90458cq.bget.ru/public_html/admin/index.php:2) in /home/r/r90458cq/r90458cq.bget.ru/public_html/admin/index.php on line 55

if (isset($_COOKIE['id']) and isset($_COOKIE['hash']))
{
$query = mysql_query("SELECT *,INET_NTOA(`ip`) FROM `admin` WHERE `id` = '".intval($_COOKIE['id'])."' LIMIT 1");

$userdata = mysql_fetch_assoc($query);

if(($userdata['hash'] !== $_COOKIE['hash']) or ($userdata['id'] !== $_COOKIE['id'])
or (($userdata['ip'] !== $_SERVER['REMOTE_ADDR']) and ($userdata['ip'] !== "0")))
{
setcookie("id", "", time() - 3600*24*30*12, "/");
setcookie("hash", "", time() - 3600*24*30*12, "/");
}
else {header("Location: check.php"); exit();} //55 строка
}
else
{
print "Включите куки";
}


--------------------
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Undertaker  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 315
Пользователь №: 31230
На форуме: 4 года, 11 месяцев, 27 дней
Карма:




Kusss
Я знаю, но у меня то на локальной машине работает... А на хостинге тот же скрипт падает


--------------------
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
TranceIT  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



...Один я одинаковый...
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1765
Пользователь №: 19760
На форуме: 7 лет, 2 месяца, 4 дня
Карма: 59




Цитата (Undertaker @ 4.02.2016 - 14:44)
Я знаю, но у меня то на локальной машине работает... А на хостинге тот же скрипт падает

С какой ошибкой падает?



--------------------
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Undertaker  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 315
Пользователь №: 31230
На форуме: 4 года, 11 месяцев, 27 дней
Карма:




TranceIT
С этой
Warning: Cannot modify header information - headers already sent by (output started at /home/r/r90458cq/r90458cq.bget.ru/public_html/admin/index.php:2) in /home/r/r90458cq/r90458cq.bget.ru/public_html/admin/index.php on line 55 

Да я знаю, что это скрипт не может отправить заголовки из за (читайде документацию)
Но на моём то сервере он работает...


--------------------
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5552
Пользователь №: 35718
На форуме: 4 года, 2 месяца, 1 день
Карма: 170




Undertaker, на твоём хампе буферизация включена по умолчанию.


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
TranceIT  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



...Один я одинаковый...
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1765
Пользователь №: 19760
На форуме: 7 лет, 2 месяца, 4 дня
Карма: 59




Undertaker
Значит на сервере строгие настройки, которые не допускают никаких ошибок\нотисов. Хотя по хорошему должно быть наоборот.
Я уже не помню что за что отвечает. Почитайте про директивы php.ini.


--------------------
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Undertaker  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 315
Пользователь №: 31230
На форуме: 4 года, 11 месяцев, 27 дней
Карма:




Valick
TranceIT
Ну я просто так понимаю, что это проблемы на стороне хостера или всё же мой косяк?


--------------------
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Undertaker  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 315
Пользователь №: 31230
На форуме: 4 года, 11 месяцев, 27 дней
Карма:




Valick
TranceIT
хостер ответил
Здравствуйте!

Сейчас вручную прописал в admin/index.php <meta charset="utf-8"> - страница открывается без ошибок.

Вполне возможно, ошибка возникала по причине наличия в теле файла так называемого BOM-символа - более подробно Вы можете прочитать об этом в нашей статье https://beget.ru/articles/bom_remove.

Проверьте, пожалуйста, работоспособность сайта. Если проблема сохранится - пожалуйста, оповестите нас.

Однако у меня не через Filezilla, ни через стандартный файловый менеджер ни в ручную загрузить скрипт нормально не удалось



--------------------
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
TranceIT  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



...Один я одинаковый...
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1765
Пользователь №: 19760
На форуме: 7 лет, 2 месяца, 4 дня
Карма: 59




Undertaker
Я что-то не понял, мы разбираем саму ошибку или почему выводится\не выводится?
Если первое, то ты пытаешься отправить заголовки после вывода в браузер, а так делать нельзя, если второе, то это настройки сервера.


--------------------
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
PM
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Undertaker  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 315
Пользователь №: 31230
На форуме: 4 года, 11 месяцев, 27 дней
Карма:




TranceIT
Разбираем второе)
Дело в том, что на том хостинге пофиг. Выводишь заголовки до, выводишь после-идёт ошибка...
Проверил на другом хостинге-всё норм
Буду хостера менять
Спасибо за ответ


--------------------
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
icedfox  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 395
Пользователь №: 41702
На форуме: 1 год, 5 месяцев, 7 дней
Карма: 13




Цитата (Undertaker @ 4.02.2016 - 21:22)
Дело в том, что на том хостинге пофиг. Выводишь заголовки до, выводишь после-идёт ошибка...

пиши в начало скрипта
ob_start();

и выводи заголовки в любом месте, перед выводом все собирается так как надо.
PM
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5552
Пользователь №: 35718
На форуме: 4 года, 2 месяца, 1 день
Карма: 170




Undertaker, либо БОМ либо обычные пробелы в основном или подключаемых файлах, всё это легко ищется когда знаешь что искать.
При использовании нормальной IDE или хотя бы Notepad++ проблем с BOM быть не должно. А пробелы до <?php и после ?> в файлах тоже не составляет труда найти.
На рекомендацию не использовать закрывающую конструкцию ?> я мягко говоря положил, мне не трудно проконтролировать.


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса