Всем привет! Есть код: Код (Text): if(isset($_POST['name']) && is_array($_POST['name'])) { foreach($_POST['name'] as $id => $name) { if(!$name || isset($_POST['purchase'][$id])) { $desc = $_POST['price'][$id]; $date = time(); $enddate = time()+2592000; $end = $enddate; $total+=$desc; if(USERBALANS >= $total) { if(mysql_num_rows(mysql_query("SELECT name FROM `".PREFIX."hpacket` WHERE `name` = '{$name}' and `userid` = '{$_SESSION['user_id']}'"))) { Header("Location:action.php?error");} else { db_insert(PREFIX . "hpacket", array("name" => $name, "price" => $desc, "date" => $date, "end" => $end, "userid" => $_SESSION['user_id'])); db_update(PREFIX . "admin", array('balans_p' => USERBALANS - $total, 'edit_status' => '1', 'status' => '1'), " id = {$_SESSION['user_id']}"); Header("Location:action.php?purchaseOK"); } } else {Header("Location:action.php?purchase_no_mani");} } else {Header("Location:action.php?purchaseOFF");} } } Проблема в том, что все время срабатывает только последний Header, - Header("Location:action.php?purchaseOFF") Если его заменить скажем на: Header('Refresh: 0; URL=action.php?purchaseOFF') то все работает как надо, но Refresh это не то что нужно, нужно что бы работало именно Header("Location... Помогите разобратся почему так и какие есть варианты решения.
Значит, так условия срабатывают, вами в коде выставленные. Программа делает ровно то, что вы ей сказали делать.
Логично, но от этого не легче. Код вы видите, выставляют я Header Location и он не работает, но заменив его на Header Refresh все работает как нужно. Почему оно тупит с Header Location?
так? Код (Text): if(isset($_POST['name']) && is_array($_POST['name'])) { foreach($_POST['name'] as $id => $name) { if(!$name || isset($_POST['purchase'][$id])) { $desc = $_POST['price'][$id]; $date = time(); $enddate = time()+2592000; $end = $enddate; $total+=$desc; if(USERBALANS >= $total) { if(mysql_num_rows(mysql_query("SELECT name FROM `".PREFIX."hpacket` WHERE `name` = '{$name}' and `userid` = '{$_SESSION['user_id']}'"))) { Header("Location:action.php?error");} else { db_insert(PREFIX . "hpacket", array("name" => $name, "price" => $desc, "date" => $date, "end" => $end, "userid" => $_SESSION['user_id'])); db_update(PREFIX . "admin", array('balans_p' => USERBALANS - $total, 'edit_status' => '1', 'status' => '1'), " id = {$_SESSION['user_id']}"); Header("Location:action.php?purchaseOK"); exit(); } } else {Header("Location:action.php?purchase_no_mani");} } else {Header("Location:action.php?purchaseOFF");} } } не помогло. (
Практическим путем, запустил выполнение формы, и все так же при разных значения срабатывает только последний Header("Location:action.php?purchaseOFF Добавлено спустя 9 минут 7 секунд: В общем только что погоняв форму, заметил что все же Header работает, но срабатывает все правильно лишь тогда, когда в форме выбираю последний пункт.