Автор Тема: Проблемы с голосовалкой  (Прочитано 9993 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Yoda Kerr

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://astropages.tora.ru/
Проблемы с голосовалкой
« : 04 Июня 2002, 12:33:12 »
Проблемы при саздании своей голосовалки.
Присоединяю файл voting.htm к main.php с помощью include.
В voting.htm:
if ($option_id == \'a1\') {
  if (empty($cookieadd)) {
    echo ("test1");
    setcookie ("cookieadd", "Astro_Voting", time() + 604800);
    header ("Location: main.php?reload=new&p=$p");
    echo ("test2");
  } else { bla-bla-bla
  }

} else {

  if (empty($reload)) {
    if (empty($cookieadd)) {
      include ("voting/form.dat");
    } else {
      $mesage = "Вы уже голосовали!";
      include ("voting/stat.dat");
    }
  }
}
...
?>
В результате на месте скрипта выводится текст:

test1
Warning: Cannot add header information - headers already sent by (output started at c:\\www\\astropages\\main.php:16) in c:\\www\\astropages\\voting\\voting.htm on line 4

Warning: Cannot add header information - headers already sent by (output started at c:\\www\\astropages\\main.php:16) in c:\\www\\astropages\\voting\\voting.htm on line 5
test2
This is your life and it\'s ending one minute at a time.

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Проблемы с голосовалкой
« Ответ #1 : 04 Июня 2002, 12:45:28 »
"Уж сколько раз твердили миру..."
Нельзя посылать броузеру никакой текстовой информации до установки кук или посыла заголовков при помощи header()
AS IS...

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Проблемы с голосовалкой
« Ответ #2 : 04 Июня 2002, 13:29:06 »
ob_start();
ob_end_flush();
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Yoda Kerr

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://astropages.tora.ru/
Проблемы с голосовалкой
« Ответ #3 : 04 Июня 2002, 13:43:02 »
Цитировать
Нельзя посылать броузеру никакой текстовой информации до установки кук или посыла заголовков при помощи header()

Если имеется ввиду echo ("") - в начале этой команды не было. Я ее потом добавил, чтоб узнать работает ли опер. if()
Сейчас опять все echo ("") убрал - ничего не изменилось.

Более того, я поставил выше преведенный код почти в самое начало main.php - тот же результат!

Цитировать
ob_start();
ob_end_flush();

Я недавно начал осваивать PHP, и буду благодарен, усли вы скажете об этих командах конкретнее.
This is your life and it\'s ending one minute at a time.

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Проблемы с голосовалкой
« Ответ #4 : 04 Июня 2002, 13:53:58 »
Полнсотью скрипт покажи нам или вывали его со всеми зависимыми файлами здесь в архиве, что правильнее будет.
AS IS...

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Проблемы с голосовалкой
« Ответ #5 : 04 Июня 2002, 14:05:41 »
Цитировать
Если имеется ввиду echo ("")

Имеется ввиду echo ("test1");
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Yoda Kerr

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://astropages.tora.ru/
Проблемы с голосовалкой
« Ответ #6 : 04 Июня 2002, 14:43:24 »
Скрипт можно взять здесь:
http://bloodbrothers.ru/astropages/vote.zip
This is your life and it\'s ending one minute at a time.

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Проблемы с голосовалкой
« Ответ #7 : 04 Июня 2002, 15:02:43 »
Вот из-за того, что у тебя вот это:



 

 

 

 

 

 


 




идет перед вот этим:

<?php
if ($check == \'ch\') {
 if ($option_id == \'a1\'||\'a2\'||\'a3\') {
  if (empty($cookieadd)) {
    setcookie ("cookieadd", "Astro_Voting", time() + 604800);
    header ("Location: main.php?reload=new");
    $check == \'\';

И все проблемы.
Смотри мой ответ выше.
AS IS...

Оффлайн Yoda Kerr

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://astropages.tora.ru/
Проблемы с голосовалкой
« Ответ #8 : 07 Июня 2002, 00:07:18 »
"Ура, заработало!" (с) Каникулы в простоквашино.

Еще вопросик.
У меня есть список присвоений:

$universe = \'Вселенная\';
$whatbegin = \'С чего начать\';
$placetime = \'Место и время\';
...
etc.



При открытии страницы в переменную $p заносится имя подгружаемого документа без расширения:

$p=\'universe\';
или $p=\'whatbegin\';
или $p=\'placetime\';
...
etc.


Помогите добиться следующего результата:
В зависимости от имени подгружаемого документа к переменной $title должна присваиваться строка с его названием (взятая из первого списка)
Я хотел сделать вот так:

Допустим, $p = \'placetime\';

$mass = array();
$mass[\'universe\'] = \'Вселенная\';
$mass[\'whatbegin\'] = \'С чего начать\';
$mass[\'placetime\'] = \'Место и время\';
...
$title = mass [$p];
echo "$title";


Но это не работает, хотя значение $p и название одной из ячеек массива совпадает.
This is your life and it\'s ending one minute at a time.

Оффлайн GotZfild

  • Универсал
  • Старожил
  • ****
  • Сообщений: 456
  • +0/-0
  • 2
    • Просмотр профиля
    • http://myphp.dem.ru
Проблемы с голосовалкой
« Ответ #9 : 07 Июня 2002, 10:12:24 »
Это ты неправильно переписал или так и было?
Цитировать
$title = mass [$p];

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

Оффлайн Yoda Kerr

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://astropages.tora.ru/
Проблемы с голосовалкой
« Ответ #10 : 07 Июня 2002, 20:05:37 »
Цитировать
Это ты неправильно переписал или так и было?

Так и было... Очепятался значит. Теперь таботает. Спасибо.
« Последнее редактирование: 07 Июня 2002, 20:19:26 от Yoda Kerr »
This is your life and it\'s ending one minute at a time.

Оффлайн Yoda Kerr

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://astropages.tora.ru/
Проблемы с голосовалкой
« Ответ #11 : 13 Июня 2002, 16:15:10 »
Ссылка на файл, находяшийся на один уровень выше:
(php)
include "../test.htm";

А как будет выглядеть ссылка на файл двумя уровнями выше?
This is your life and it\'s ending one minute at a time.

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Проблемы с голосовалкой
« Ответ #12 : 13 Июня 2002, 16:26:08 »
../../

Но лучше использовать ссылки от корня (/home/www/includes/file.html),  и от $DOCUMENT_ROOT ($DOCUMENT_ROOT."/includes/file.html")
Не все коту матрица.

Оффлайн Yoda Kerr

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 13
  • +0/-0
  • 0
    • Просмотр профиля
    • http://astropages.tora.ru/
Проблемы с голосовалкой
« Ответ #13 : 18 Июня 2002, 00:48:15 »
Чудеса какие-то!
Существует файл mn.php со следующим содержимым:


$p0="Главная";
$p1="Страница1";
$p2="Страница2";
$p3="Страница3";
$p_0="Главная";
$p_1="Страница1";
$p_2="Страница2";
$p_3="Страница3";

if ($p="star") { $p1 = $p_1; }
elseif ($p="moon") {$p2 = $p_2;}
elseif ($p="earth") {$p3 = $p_3;}
else {$p0 = $p_0;}
?>



menu:













End menu.



В данном случае $p "берется" из строки адреса: mn.php?p=*****
Так вот, для любого значения &p скрипт выдает один и тот же результат (   даже если перед первым \'if\' вставить $p="ok";   ):


menu:
star

Страница1
Страница2
Страница3
Главная

End menu.


Т.е., только "Страница1" не является ссылкой.

Почему у переменной $p вдруг оказалось значение "star"?!
PHP настроен не так как надо?
В чем ошибка?
« Последнее редактирование: 18 Июня 2002, 00:59:02 от Yoda Kerr »
This is your life and it\'s ending one minute at a time.

Оффлайн .Sm@sH.

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 30
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.cs-mapping.com.ua
Проблемы с голосовалкой
« Ответ #14 : 20 Июня 2002, 00:06:40 »
КОНЕЧНО-ЖЕ ОШИБКА! Каждый новичек так ошибается :) Вспомни, что \'=\' это присвоение, а \'==\' это сравнение.

Поэтому код:
Цитировать

if ($p="star") { $p1 = $p_1; }

делает следующее:

переменной $p присваивается значение "star", и после удачного присвоения возвращается TRUE

и потом конструкция уже выглядит как

if (TRUE) { $p1 $p_1; } 


Поэтому всегда будет $p1 = $p_1
URL: http://www.cs-mapping.com.ua
E-mail: smash@cs-mapping.com.ua

 

Sitemap 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