Цитата: Upliner от марта 23, 2019, 23:55Пробелов после '?>' точно нет -- вот как конец этого скрипта выглядит в редакторе FAR'а:
В _сonnect.php никаких пустых символов после ?> нет? Никаких ошибок не выдаёт, просто не ставит куки?
Цитировать
<?
error_reporting(E_ALL & ~E_DEPRECATED);
ini_set("display_errors", 1);
$ck='-'; $ps=0;
setcookie('1','passed',time()+300);
require_once('_connect.php');
setcookie('2','passed',time()+300);
setcookie('q','passed',time()+300);
Цитировать
<?
setcookie('3','passed',time()+300);
if(($_SERVER['HTTP_HOST']=='localhost'
|| substr($_SERVER['HTTP_HOST'],0,8)=='192.168.'))
{ if(!mysql_connect('','root','root'))
echo mysql_error();
else
if (!mysql_select_db('dead'))
echo mysql_error();
}
else
{ if(!mysql_connect('localhost','........','.......'))
echo mysql_error();
else
if (!mysql_select_db('.........'))
echo mysql_error();
}
setcookie('4','passed',time()+300);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
setcookie('5','passed',time()+300);
?>
Цитата: zwh от марта 21, 2019, 21:35Если в этих строках секции ?>...<? то можно попробовать заменить их на echo. У меня сейчас работает и с этими секциями, но может быть у вас просто не очень удачная версия php, поэтому вылезли проблемы.
/home/wm11261/public_html/admin/_pwd.php on line 54
/home/wm11261/public_html/admin/alle.php on line 8
Цитата: Upliner от марта 21, 2019, 15:03Хммм... на строчку
Понял, не привык просто когда ?> текст<? в if засовывают...
Можно попробовать включить вывод ошибок, добавив в начало
error_reporting (E_ALL);
ini_set("display_errors", 1);
и посмотреть, что он выдаст.
Цитироватьвышло сообщение
$_ck=setcookie('pwd','passed',time()+300); $ps=1; }
Цитироватьа на строку
Warning: Cannot modify header information - headers already sent by (output started at /home/wm11261/public_html/admin/_connect.php:38) in /home/wm11261/public_html/admin/_pwd.php on line 54
Цитироватьсообщение
{ $ck=setcookie('pwd','passed',time()+300);
ЦитироватьПолучается, что да -- куки не записываются из-за того, что заголовок страницы уже раньше нв вывод послан.
Warning: Cannot modify header information - headers already sent by (output started at /home/wm11261/public_html/admin/_connect.php:38) in /home/wm11261/public_html/admin/alle.php on line 8
error_reporting (E_ALL);
ini_set("display_errors", 1);
Цитата: Upliner от марта 20, 2019, 22:59Не, так ведь логика какая -- в начале скрипта проверяется, корректно ли введен пароль; если некорректно или просто еще не вводился, то $ok=0. Дальше, если $ok==0, то снова выходим на форму ввода пароля, иначе задаем куки и устанавливаем флажок $ps=1.Цитировать{Форма ввода пароля}Нельзя так делать. У вас сначала выводится форма пароля, а потом устанавливается кука. Нужно, чтобы setcookie был раньше любых операций вывода, в том числе и выше текста вне <? ?> секции.
<? $ps=0;
}
else
{
$_ck=setcookie('pwd','passed',time()+300); $ps=1; }
Цитировать{Форма ввода пароля}Нельзя так делать. У вас сначала выводится форма пароля, а потом устанавливается кука. Нужно, чтобы setcookie был раньше любых операций вывода, в том числе и выше текста вне <? ?> секции.
<? $ps=0;
}
else
{
$_ck=setcookie('pwd','passed',time()+300); $ps=1; }
Цитировать
<? $ck='-'; $ps=0;
require_once('_connect.php');
if(!isset($_COOKIE['pwd']))
require('_pwd.php');
else
$ok=1;
if($ok==1)
{ $ck=setcookie('pwd','passed',time()+300);
include('head.html');
echo("\$ck=$ck, \$_ck=$_ck, \$ps=$ps");
?>
{всякие тэги}
<? } ?>
Цитировать
<? require_once('_connect.php');
if (isset($_POST["pwd"])) $pwd=$_POST['pwd']; else $pwd='';
{Проверка $pwd; если корректно, то $ok=1.}
if($ok==0)
{
?>
{Форма ввода пароля}
<? $ps=0;
}
else
{
$_ck=setcookie('pwd','passed',time()+300); $ps=1; }
require('head.html');
?>
<?php
if (true) {
$_ck=setcookie('pwd','passed',time()+300);
}
$ps=1;
echo("\$ck=$ck, \$_ck=$_ck, \$ps=$ps");
?>
HTTP/1.1 200 OK
Server: nginx/1.10.3 (Ubuntu)
Date: Wed, 20 Mar 2019 16:41:42 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Set-Cookie: pwd=passed; expires=Wed, 20-Mar-2019 16:46:42 GMT; Max-Age=300
$ck=, $_ck=1, $ps=1
Страница создана за 0.047 сек. Запросов: 22.