Ошибка Bad Gateway 502 после ожидания загрузки страницы ~ 2 минуты

Привет, я пытаюсь сделать небольшую форму для школы, и все работает нормально, так как я сделал функцию "reorganizeVector()". Теперь, когда я хочу попробовать свою форму (только эту веб-страницу) в браузере, она загружается в течение 2–3 минут, и я получаю ошибку Bad Gateway 502. Я почти уверен, что моя проблема в функции "reorganizeVector()". Я пытался найти, что не так в моей функции, но я не могу найти, что я сделал неправильно.

Завтра я добавлю другой файл, например "index.php", потому что сейчас 3:18 утра, а мне нужно вставать в 5 утра в школу, так что...

Буду признателен, если вы мне поможете.
Пожалуйста, помогите мне!

B.T.W. извините за мой плохой английский, я франко-канадец, и я старался изо всех сил.

<?php
if(version_compare(PHP_VERSION, '5.4.0') >= 0)
{
    if(session_status() == PHP_SESSION_NONE)
        session_start();
}
elseif(session_id() == '')
    session_start();

define('MIN_CAR', 3);
define('MAX_CAR', 30);
define('MIN_QTY', 1);
define('MAX_QTY', 1000);

if(isset($_POST['name']) AND isset($_POST['qty']) AND isset($_POST['category']))
{
    $nameValide = (strlen($_POST['name'])>=MIN_CAR AND strlen($_POST['name'])<=MAX_CAR);
    $qtyValide = ($_POST['qty']>=MIN_QTY AND $_POST['qty']<=MAX_QTY);
    if($nameValide AND $qtyValide)
    {
        filter_var($_POST['qty'], FILTER_SANITIZE_NUMBER_INT);
        if(!isset($_SESSION['vector']))
        {
            $_SESSION['vector'] = array(
                array('name'=>$_POST['name'],
                'qty'=>$_POST['qty'],
                'cat'=>$_POST['category']));
        }
        else
            array_push($_SESSION['vector'], array('name'=>$_POST['name'], 'qty'=>$_POST['qty'], 'cat'=>$_POST['category']));
    }
    else
    {
        if(!$nameValide)
            error('invalid name (between '.MIN_CAR.' and '.MAX_CAR.' caracters)');
        if(!$qtyValide)
            error('invalid quantity (between '.MIN_QTY.' and '.MAX_QTY.')');
    }
}

function error($text)
{
    if(isset($error))
        array_push($error, '<p class="error">'.$text.'</p>');
    else
        $error = array('<p class="error">'.$text.'</p>');
}


//THIS IS THE FUNCTION THAT CAUSE THIS ISSUE BUT I DONT KNOW WHAT IN THE FUNCTION CAUSE IT
function reorganizeVector()
{
    foreach($_SESSION['vector'] as $value)
    {
        if(isset($array))
            array_push($array, array($value['name'], $value['cat']));
        else
            $array = array(array($value['name'], $value['cat']));
    }
    
    $backup = $array;
    $x = 1;
    
    for($i=0; $i<sizeof($array); $i++)
    {
        //name qty cat
        $int = null;
        $index = null;
        do
        {
            $shifted = array_shift($array);
            $index = array_search($shifted, $array)+$x;
            if(!empty($index))
            {
                if(isset($temp))
                    array_push($int, $index);
                else
                    $int = array($index);
            }
            $x++;
        }
        while(!empty($index));
        
        if(isset($temp))
            array_push($temp[$x], $int);
        else
            $temp = array($x=>$int);
        
    }
    
    foreach($temp as $key => $secondary)
    {
        $primary = $_SESSION['vector'];
        $newQty = $primary[$key]['qty'];
        foreach($secondary as $index)
        {
            $newQty += $primary[$index]['qty'];
        }
        $primary[$key]['qty'] = $newQty;
        if(isset($newVec))
            array_push($newVec, $primary[$key]);
        else
            $newVec = array($primary[$key]);
    }
    
    $_SESSION['vector'] = $newVec;
}

//--------------------------------------------------------------------HTML--------------------------------------------------------------------
?>
<h2>Add an article</h2>
<?php 
if(isset($error))
    foreach($error as $value)
        echo $value;
?>
<form method="post" action="">
    <p>
        <label name="name">Name :</label>
        <input type="text" name="name" pattern="^.{3,30}$" title="Between <?php echo MIN_CAR.' and '.MAX_CAR; ?> caracters" required>
        <br>
        <label name="qty">Quantity : </label>
        <input type="text" name="qty" size="4" pattern="(^(0*[1-9]{1}[0-9]{0,2})$)|(^1000$)" title="Value between <?php echo MIN_QTY.' and '.MAX_QTY; ?>" required>
    </p>
    <p>
        <label name="category">Category :</label><br>
        <input name="category" type="radio" value="kitchen" checked> Kitchen<br>
        <input name="category" type="radio" value="electronic"> Electronic<br>
        <input name="category" type="radio" value="other"> Other<br>
        <input name="category" type="radio" value="hardware"> Hardware<br>
        <input name="category" type="radio" value="sport"> Sport<br>
        <br>
        <button type="submit">Validate</button>
    </p>
</form>

<?php
if(isset($_SESSION['vector']))
{
    reorganizeVector();//<---------------------------------------FUNCTION CALLED HERE
?>
<hr>
<table border="1" style="width:400px">
    <tr>
        <th style="width:50%">Name</th>
        <th>Quantity</th>
        <th>Category</th>
    </tr>
    <?php
    foreach($_SESSION['vector'] as $value)
    {
        echo '
        <tr>
            <td>'.$value['name'].'</td>
            <td>'.$value['qty'].'</td>
            <td>'.$value['cat'].'</td>
        </tr>
        ';
    }
    ?>
</table>
<?php
}
?>


person Elie G.    schedule 26.04.2016    source источник
comment
stackoverflow.com /questions/3185832/ Перейдите по этой ссылке. Это может быть связано с проблемой подключения к серверу.   -  person Karthikeyan    schedule 26.04.2016
comment
Даже если я смогу загрузить все остальные страницы моего сайта? Даже если я удаляю свою функцию reorganizeVector(), все работает нормально?   -  person Elie G.    schedule 26.04.2016


Ответы (1)


Я думаю, что вы входите в бесконечный цикл в этой строке: while(!empty($index)); Кажется, что этот цикл while не очень хорошо определен.

person Héctor Valverde Pareja    schedule 26.04.2016
comment
Не помещайте слишком много кода в комментарии. Вместо этого отредактируйте свой вопрос, пожалуйста. - person Héctor Valverde Pareja; 26.04.2016
comment
Если я изменю свой While Loop на это разве это не должно работать? Когда мой $array пуст, мой $index тоже не должен быть пустым? - person Elie G.; 26.04.2016
comment
Я нашел свою проблему. Я установил $index в результат поиска плюс $x, поэтому, когда мой массив пуст, мой $index равен $x. Спасибо за вашу помощь. - person Elie G.; 26.04.2016