переменная $ _SESSION передается в класс

#php #session

#php #сессия

Вопрос:

В моих первых файлах .php у меня есть:

 session_start();
$_SESSION['ProdType1'] = $_GET['ProdType'];

echo "session Product type = " . $_SESSION['ProdType1'];
require_once("./include/fgcontactform.php");
 

$_SESSION['ProdType1'] установлена правильно.

У fgcontactform.php меня есть следующее:

 echo "Prod typefg = " . $_SESSION['ProdType1'];
 

$_SESSION['ProdType1'] установлена правильно.

 class FGContactForm
{
    function ExtraInfoToMail()
    {
        $ret_str='';

//echo "Prod type in func = " . $_SESSION['ProdType1'];

        $ip = $_SERVER['REMOTE_ADDR'];
        $p1 = $_SESSION['ProdType1'];

        $ret_str = "<div class='label'>IP address of the submitter: </div><div class='value'>$ip</div>n";
        $ret_str .= "<div class='label'>Product Type: </div><divclass='value'>$p1</div>n";

        return $ret_str;
    }
 

$p1 равно нулю, и так оно и есть $_SESSION['ProdType1'] .

Любая помощь была бы отличной.

Комментарии:

1. Вы показываете нам класс, но как вызывается этот метод класса?

2. Добавьте if (session_status() == PHP_SESSION_NONE) { session_start();} в ExtraInfoToMail метод

3. $_GET['ProdType'] должно быть пустым. Как вы заполняете это значение?

4. Сделайте также if(isset($_GET['ProdType'])) $_SESSION['ProdType1'] = $_GET['ProdType']; , чтобы предотвратить не устанавливать пустой, как говорит @Lars Mertens

5. ProdType передается из html через URL. значение устанавливается и отображается в командах echo . класс вызывается с помощью функции $formproc = new FGContactForm();