Forum Webscript.Ru

Программирование => PHP => Тема начата: Guard от 30 Августа 2002, 15:51:23

Название: <? PHP - вставка все портит!! ?>
Отправлено: Guard от 30 Августа 2002, 15:51:23
              include("vote/config.txt");
            $date = date("d.m");
            $ip   = $REMOTE_ADDR;
            if(!$voted): form(""); else: vote(); endif;
            
            function form($error) // вывод формы голосования
{
   $fil = file("vote/quest.txt");
   print " $fil[0] 
           ";
   for ($i=1; $i < sizeof($fil); $i++)
   {
      $temp = explode("=",$fil[$i]);
      print "
\\n";
   }
   print "   
$temp[0]
$error
";
   exit;
}
            ?>

Весь код после этой вставки браузер не парсит.
Открываю страницу "в виде ХТМЛ" - точно. После этой вставки ничего нет - пусто.!!!!!
Хотя в самом файле продолжение есть.

ЗЫ: Файл (куда это вставлено) с расширением .php
Название: <? PHP - вставка все портит!! ?>
Отправлено: Меняздесьдавнонет от 30 Августа 2002, 16:02:40
Значит, у тебя там критическая ошибка ,после которой выполнение скрипта останавливается.
Название: <? PHP - вставка все портит!! ?>
Отправлено: GotZfild от 30 Августа 2002, 16:03:29
Цитировать
exit;

убери
Название: <? PHP - вставка все портит!! ?>
Отправлено: Guard от 30 Августа 2002, 17:49:02
GotZfild Сэнкс!
Но тут вот.. еще проблемка.....
Вот эти два куска кода в одном файле (votes.php) никак не уживутся вместе...
первый кусок выводит результаты голосования.
второй - форму голосования

первый кусок


         include("vote/config.txt");
         $date = date("d.m");
         
         function vote() // голосуем
{
   global $date, $vote, $checkip, $checkcookie;
   if($checkip) checkip();
   if($checkcookie) checkcookie();
   if($vote):
   if(file_exists("vote/nums/$date.txt"))
   {
      $num = file("vote/nums/$date.txt");
      $num[0] += 1;
      $f = fopen("vote/nums/$date.txt","w");
      fputs($f,$num[0]);
      fclose($f);
   }
   else
   {
      $f = fopen("vote/nums/$date.txt","w");
      fputs($f,"1");
      fclose($f);
   }
   $fil = file("vote/quest.txt");
   $temp = explode("=",$fil[$vote]);
   $temp[1] += 1;
   $fil[$vote] = $temp[0]."=".$temp[1]."\\n";
   $f = fopen("vote/quest.txt","w");
   foreach($fil as $fi)
   {
      fputs($f,$fi);
   }
   fclose($f);
   else:
   form("Вы не выбрали ни одного пункта!");
   endif;
   
}

function checkip() // Проверка IP
{
   global $ip;
   $filip = file("vote/ips.txt");
   foreach($filip as $fi)
   {
      if(chop($fi) == $ip)
      {
         form("C этого компьютера уже голосовали!");
      }
   }
   $f = fopen("vote/ips.txt","a");
   fputs($f,"$ip\\n");
   fclose($f);
}

function checkcookie() // проверка cookie
{
   global $www_voter,$cookietime;
   if($www_voter == "yes")
   {
      form("C этого компьютера уже голосовали!");
   }
   else
   {
      setcookie("www_voter","yes",time()+$cookietime);
   }
}

// выводим результаты

$fil = file("vote/quest.txt");
for ($i=1; $i < sizeof($fil); $i++)
{
   $temp = explode("=",$fil[$i]);
   $mess[$i] = $temp[0];
   $num[$i] = chop($temp[1]);
}
$max = 0;
$sum = 0;
for ($i=1; $i < sizeof($fil); $i++)
{
   $sum = $sum + $num[$i];
   if($num[$i] > $max) $max = $num[$i];

}
if($max == 0)
{
   $max = 1;
}
$koeff = $graphLenght/$max;
print " $fil[0]

\\n";
print "\\n";
$c = 1;
for ($i=1; $i < sizeof($fil); $i++)
{
   $width = floor($num[$i]*$koeff);
   $number += $num[$i];
   $percent = 0;
   if($sum != 0)
   {
      $percent = $num[$i]/$sum*100;
      $percent = floor($percent*100+0.5)/100;
   }
   $image = "vote/img/$i.gif";
   if($width == 0)
        {
      if($c == 0) { $c = 1; print "\\n"; }
      else { $c = 0; print "\\n"; }
   }
   else
   {
      if($c == 0) { $c = 1; print "\\n"; }
      else { $c = 0; print "\\n"; }
   }
}
$today = file("vote/nums/$date.txt");
if(!$today[0]) { $today[0] = 0; }
print "
$mess[$i] $num[$i] чел. ($percent%)
$mess[$i] $num[$i] чел. ($percent%)
$mess[$i] $num[$i] чел. ($percent%)
$mess[$i] $num[$i] чел. ($percent%)

 Всего голосов: $number 
 Голосов сегодня: $today[0] 



";
         ?>


второй кусок


              include("vote/config.txt");
            $date = date("d.m");
            $ip   = $REMOTE_ADDR;
            
            function form($error) // вывод формы голосования
{
   $fil = file("vote/quest.txt");
   print " $fil[0] 
           ";
   for ($i=1; $i < sizeof($fil); $i++)
   {
      $temp = explode("=",$fil[$i]);
      print "
\\n";
   }
   print "   
$temp[0]
$error
";

   }
            ?>
            
получается так, что второго куска вообще нет.
Открыл в виде ХТМЛ - там пусто.....
Я подумал - скрипт не может сам к себе обратиться (action=votes.php), но дело видно не в этом..

Помогите!!!!
Название: <? PHP - вставка все портит!! ?>
Отправлено: Maniac от 30 Августа 2002, 21:34:57
Во-первых, может. Скажу тебе по секрету, обычный прием в этом случае такой:
if (!isset($name))
{
//Печать формы
}
else
{
//Обработка формы
}
Где $name - имя одной из переменных формы.

А что касается твоего куска - с чего бы ему что-нибудь выводить? Ты же нигде функцию не вызываешь
Название: <? PHP - вставка все портит!! ?>
Отправлено: ThE0ReTiC от 30 Августа 2002, 23:10:55
Цитировать
print "
Всего голосов: $number
 Голосов сегодня: $today[0]



";

[off]Это вообще крутой подход :gigi:[/off]
В дополнение - не надо два раза делать
Цитировать
include("vote/config.txt");

ДОстаточно одного...
Maniac
прав. функцию-то ты вызвать забыл :)
Название: <? PHP - вставка все портит!! ?>
Отправлено: Guard от 31 Августа 2002, 09:11:27
Maniac
Цитировать
А что касается твоего куска - с чего бы ему что-нибудь выводить? Ты же нигде функцию не вызываешь

А в другом фале этот кусок выводит форму.
Мистика????
Название: <? PHP - вставка все портит!! ?>
Отправлено: Доктор от 04 Сентября 2002, 02:05:57
Guard
Ты знаешь что такое функция?
Название: <? PHP - вставка все портит!! ?>
Отправлено: Maniac от 04 Сентября 2002, 21:01:58
Guard
Кстати, вдогонку. print "$name[0]" выведет не первый элемент массива $name (как может показаться), а
Цитировать
Array[0]
Название: <? PHP - вставка все портит!! ?>
Отправлено: Guard от 04 Сентября 2002, 22:32:55
Maniac  а как сделать так, чтобы первый элемент выводил?
Название: <? PHP - вставка все портит!! ?>
Отправлено: Maniac от 05 Сентября 2002, 21:32:13
Почитать на
http://www.php.net/manual/en/printwn/language.types.string.php#language.types.string.parsing

Кстати, можешь почитать всю страницу целиком :))