конструкция IF ($var == 'value')

Тема в разделе "PHP", создана пользователем Krik, 25 сен 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Krik

    Krik Постоялец

    Регистр.:
    10 авг 2007
    Сообщения:
    55
    Симпатии:
    15
    народ чёто или я туплю или пых , но никак понять не могу. вроде не первый день пишу , а не работает:

    ситуэшн примерно такая :

    Код:
    $action=$_POST['action']; 
    
    echo $action;
    
    if ($action == 'act1') {
    
         echo "1";
    
        // код дальше, но нигде $action никаких значений не   присваивается. 50 строк всего кода.
    
    }
    
    if ($action == "act2" ) {
    echo "2";
    
     // код дальше, тоже нигде $action никаких значений не   присваивается.
    }
    
    
    
    при POST['action'] act1 , когда через форму передаю.
    выводит 12

    при POST['action'] act2 выводит 2 как надо.


    но самое клёвое что если вообще без POST обращаться к скрипту, то выводит 1 :D

    чё за фигня кто нить знает ?

    уже и $action=$_POST['action']; добавил , подумал может что с пост массивом не так при IF , но всё равно чёто глючит :D

    как оно $action значение присваивает act1 и act2 если я указал == , а не = , пробовал даже === :D так же фигня))

    может у меня пых свихнулся аа)) или меня на ночь глядя так таращит :D ?
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    Не видя всего кода трудно сказать определённо, может ты чего-то упускаешь.
     
    Krik нравится это.
  3. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    Ну вообще лучше не if, а elseif, хотя не понятно как так может быть... Мож реально код весь покажешь?
     
  4. Krik

    Krik Постоялец

    Регистр.:
    10 авг 2007
    Сообщения:
    55
    Симпатии:
    15
    точно) нашёл)

    if ( $action == "youtube" ) {

    $title=$_POST['title'];

    $tag_error=false;

    if ($_GET['tag_type'] == '0' ) { $tag_type=0; $tag_value=''; }
    elseif ($_GET['tag_type'] == '1') тут забыл скобку {:D $tag_type=1; $tag_value=$_POST['tag1']; }
    elseif ($_GET['tag_type'] == '3') { $tag_type=3; $tag_value=$_POST['muscat_id']; }
    else { echo "Неверно выбраны параметры! Видео! YOUTUBE ERROR"; $tag_error=true; }

    и в конце if забыл добавить ещё одну } :D но скрипт работал)) получилось что я забыл добавить { } только в разных конструкциях if'ов , поэтому он запускался, но криво )))

    по идее же

    elseif ($_GET['tag_type'] == '1') без этой скобки { не должно было работать $tag_type=1; $tag_value=$_POST['tag1']; }
    elseif

    вот тебе и пых :) фух , час искал чё за фигня :D
     
  5. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
  6. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    При таком раскладе, в следующий раз используй switch :)
     
Статус темы:
Закрыта.