За последние 24 часа нас посетили 62092 программиста и 1781 робот. Сейчас ищут 848 программистов ...

(resolved) $flag == 0; хоть ты тресни флаг = 0

Тема в разделе "PHP для новичков", создана пользователем OL, 26 авг 2008.

  1. OL

    OL Активный пользователь

    С нами с:
    30 июн 2008
    Сообщения:
    25
    Симпатии:
    0
    Адрес:
    из центру
    Привет, помогите, пжт, разобраться, что не так:
    $distr = массив.

    PHP:
    1. <?
    2. $file2 = URL.$distr['1'];
    3. $file1 = URL.$distr['0'];
    4. if(count($distr)<1) {
    5.     $flag = 0;
    6. }
    7. else if($_REQUEST['pr']=='1') {                      
    8.     if(array_key_exists('1',$distr)) {
    9.         $flag = 1;
    10.      }
    11.       else {
    12.            $flag = 0;
    13.       }
    14. }
    15. else {                                                  
    16.     $flag = 0;
    17.     if((count($distr)>1)) {
    18.         $flag = 1;
    19.      }
    20.      if((count($distr)==1)) {
    21.          $flag = 1;        
    22.       }
    23.  
    дальше описывается функция - смысл: если флаг == 0 то вывод ошибки, а если флаг == 1 то загрузка файла

    PHP:
    1. <?
    2. function showPage () {
    3.        
    4.         if ($flag == 0) {
    5.             $not_found = "Ошибка";
    6.              echo $not_found;
    7.             }
    8.         else if(($flag == 1) && $file1 && $file2) {
    9.              header("Content-type: text/vnd.wap.wml");
    10.              echo '<?xml version="1.0" encoding="UTF-8"?>';
    11.              echo '<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org//DTD//wml_1.1.xml">
    12.                <wml><head><meta forua="true" http-equiv="Cache-Control" content="max-age=0"/></head><card id="download" title="Загрузка"><p align="center">Первая ссылка: <a href=\'"$file1?$file1:\'\'"\'>Загрузить</a><br />Вторая ссылка: <a href=\'"$file2?$file2:\'\'"\'>Загрузить</a><br /></p></card></wml>';
    13.         }
    14.         else {
    15.              header("Content-Disposition: filename='".$file1?$file1:$file2."'");
    16.              exit;  
    17.             }
    18. }
    19.     showPage ($flag, $resultMessage, $file1, $file2);
    20.  
    выдается посоянно ошибка, т.е. флаг == 0. где что не так?
     
  2. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    посчитай количество открывающихся и закрывающихся фигурных скобок в первом куске
     
  3. OL

    OL Активный пользователь

    С нами с:
    30 июн 2008
    Сообщения:
    25
    Симпатии:
    0
    Адрес:
    из центру
    апдейт: скобки были просто криво скопипастены. поправлены. вопрос не отпал
     
  4. OL

    OL Активный пользователь

    С нами с:
    30 июн 2008
    Сообщения:
    25
    Симпатии:
    0
    Адрес:
    из центру
    Правильный ответ: флаг = ноль, потому что параметр не передавался в функцию. делов-то.. thanks *
     
  5. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    замени на
    PHP:
    1. $flag=(count($distr)>0?1:0);
    :)

    Если ошибка останется, значит в массив $distr ничего не ложится :) Значит проблем в другом месте.

    ЗЫ, Кто пишет этот (идиотский) код?
     
  7. OL

    OL Активный пользователь

    С нами с:
    30 июн 2008
    Сообщения:
    25
    Симпатии:
    0
    Адрес:
    из центру
    на самом деле, код огромный, а здесь выложена логика. код действительно идиотско выглядит, потому что на самом деле условия такие:
    Код (Text):
    1.  if((count($distr)==1) && (array_key_exists('1',$distr) && file_exists(ABSPATH.'distr/'.$distr['1']))) {
    2.                 $flag= 1;
    3.             }
    просто мне показалось некорректным выкладывать код на 200 строк, вот и повырезала всё :)
    про визибилити догадалась, за ссылку спасибо.
    с массивом тоже все в порядке, спасибо.
     
  8. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Кстати да, как же я пропустил...
     
  9. Anonymous

    Anonymous Guest

    чьорт, это девушко! X_x
     
  10. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Горбунов Олег
    Я даже могу предположить как её завут :lol: