Witam.
Używam klasy o nazwie Securimage do generowania kodu zabezpieczającego przed spam botami (w tym konkretnym przypadku jest to formularz kontaktowy). I mam problem, który polega na tym, że skrypt generujący ów kod nadpisuje sesję, w której znajdują się informacje dotyczące produktów w koszyku. Obrazowując tę sytuację, klient sklepu internetowego dodaje jakiś produkt do koszyka, następnie przechodzi do formularza kontaktowego i w tym miejscu sesja z produktem zostaje nadpisana przez sesję z klasy Securimage, co skutkuje tym że koszyk jest opróżniany. Moje pytanie brzmi: czy istnieje jakieś sensowne rozwiązanie, które pozwoli na współdziałanie tych 2 sesji?

Poniżej fragmenty kodu:

kontakt.php
Kod
<?php

    $dirLib = 'lib';
    $dirImage = 'galeria/image';
    $dirThumb = 'galeria/thumb';

    require_once("$dirLib/main.php");
    require_once("$dirLib/dzialy.lib.php");
    require_once("$dirLib/dzialLista.lib.php");
    require_once("$dirLib/menu_.lib.php");
    require_once("$dirLib/user.lib.php");
    require_once("$dirLib/dbConnect.php");
    require_once("$dirLib/textFromDB.php");
    require_once("$dirLib/koszyk.lib.php");
    require_once("$dirLib/basicHTMLfunc.php");
    require_once("$dirLib/sendMail.php");
    require_once("$dirLib/securimage/securimage.php");


    if (!($db = dbConnect())) {
        echo htmlHeader();
        echo htmlError('Problem z połączeniem z bazą danych.');
        echo htmlFooter();
        die();
    }

    $securimage = new Securimage();
    sslJump();
    mySession('sklep');


    if ($_SESSION['user']) {
        $user = $_SESSION['user'];
    } else {
        $user = NULL;
    }

    if ($_SESSION['koszyk']) {
        $koszyk = $_SESSION['koszyk'];
    } else {
        $koszyk = NULL;
    }


    $dzialy = new Dzialy();

    $tekst = '';


    if (isset($_GET['sendmail'])) {

        $captcha_code = $securimage->check($_POST['captcha_code']);
        $result = send_mail($captcha_code);

        switch ($result) {

            case -2:
                $tekst .= htmlError('Wprowadzony kod z obrazka jest nieprawidłowy.');
                break;

            case -1:
                $tekst .= htmlError('Wypełnij odpowiednie pola formularza.');
                break;

            case 0:
                $tekst .= htmlError('Problem z wysłaniem wiadomości.');
                break;

            case 1:
                $tekst .= htmlInfo('Wiadomość została wysłana.');
                break;

            case 2:
                $tekst .= htmlError('Wprowadzony adres e-mail jest nieprawidłowy.');
                break;

        }

    }

    $tekst .= userMailFormB();


    echo htmlHeader();
    echo htmlTop();
    echo htmlContentBegin();

    echo htmlShowArtNoH(tekstFromDB('kontakt'));
    echo $tekst;

    echo htmlContentEnd();
    echo htmlFooter();

?>



securimage.php
Kod
<?php
  function Securimage()
  {
    if ( session_id() == '' ) { // no session has been started yet, which is needed for validation
      session_start();
    }
  }
?>



main.php
Kod
<?php
function mySession($myname) {

    session_save_path(dirname($_SERVER['SCRIPT_FILENAME']).'/tmp');

    ini_set("session.gc_maxlifetime","7200");
    ini_set("session.gc_probability","100");
    ini_set("session.name","sid$myname");
    ini_set("session.cookie_lifetime","0");

    @session_start();

    if (!isset($_SESSION["started$myname"])) {

        @session_regenerate_id();
        $_SESSION["started$myname"] = 1;

    }

}
?>


Proszę Was o pomoc.