![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 11 Dołączył: 24.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
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. Ten post edytował Savage.Mephisto 17.05.2009, 14:27:00 -------------------- Myślisz, że przeżyjesz swoje życie w blasku i chwale...
Lecz jest coś, co zmieni ci cały świat... Szczerość! |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 6.07.2025 - 02:50 |