Установка переменной PHP $ _SESSION по нажатию кнопки - PullRequest
0 голосов
/ 06 марта 2019

Я пытаюсь установить переменную PHP $ _SESSION, когда пользователь щелкает запись в модальной таблице.

Модальная таблица настраивается путем выполнения цикла while через записи в таблице SQL Server.Это выглядит следующим образом:

    Value   |  Link
---------------------------
    0       |   <a href= changeVar.php?ficheNum=0></a>
    1       |   <a href= changeVar?ficheNum=1></a>
    2       |   <a href= changeVar?ficheNum=2></a>
    ...

При нажатии на одну из ссылок в таблице выполняется следующий код:

<?php
$ficheNum=$_REQUEST['ficheNum'];
$_SESSION['ficheCount'] = $ficheNum;

header("Location: test.php"); 
?>

Страница test.php - это просто страница ввода, котораязаполняются значениями из таблицы базы данных.У этого также есть модальная таблица, которая была показана выше.PHP на test.php выглядит следующим образом.

$fiche_array = array();

$sel_query = "SELECT fiche
              FROM test.dbo.[TLM.Fiche_Globale]
              ORDER BY fiche ASC;";
$sel_result = sqlsrv_query($con, $sel_query) or die( print_r( sqlsrv_errors(), true));
while($sel_row = sqlsrv_fetch_array($sel_result)) {
    array_push($fiche_array, $sel_row['fiche']);
}

if(isset($_POST['new']) && $_POST['new']==1)
{
    $_SESSION['ficheCount'] ++;
}else if(isset($_POST['new2']) && $_POST['new2']==1)
{
    $_SESSION['ficheCount'] = $_SESSION['ficheCount'] - 1;
}else if(isset($_SESSION['ficheCount']) && $_SESSION['ficheCount'] > 0)
{
    $_SESSION['ficheCount'] = $_SESSION['ficheCount'];
}else{
    session_start();
    $_SESSION['ficheCount'] = 0;
}

Первые два оператора в операторе if / else предназначены для управления кнопками следующей и предыдущей записи.Они отлично работают.Последний оператор - это код, который выполняется, если не сработал ни один из операторов 1-3.Третий оператор должен сработать, если пользователь перенаправляется обратно на страницу со страницы changeVar.php.Однако это никогда не срабатывает.Или он срабатывает и ничего не делает - я не уверен.

Я пытался вручную протестировать страницу changeVar:

<?php
$ficheNum=$_REQUEST['ficheNum'];
$_SESSION['ficheCount'] = $ficheNum;

echo $_SESSION['ficheCount'];
?>

Он устанавливает правильную переменнуюномер, но, когда я возвращаюсь на страницу test.php, он всегда по умолчанию возвращается к значению ficheCount, которое было установлено ранее, как будто я никогда не устанавливал переменную на странице changeVar.php.

Если кто-то может увидеть, что я 'я делаю неправильно здесь, это было бы очень признательно.

ура,

1 Ответ

3 голосов
/ 06 марта 2019

Чтобы использовать сеансы PHP, вам всегда нужно запускать команду session_start(); в начале каждого файла PHP, который использует сеансы.http://php.net/manual/en/function.session-start.php

...