tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

warning s Dibi

před 10 lety

radekkkk
Člen | 3

Zdravím, mám problém s Dibi. Používám select na zjištění loginu a hesla (v něm problém není) a po přihlášení uživatele ho přesměruju na úvodní stránku. Když sql dotaz proženu přes Dibi dotaz proběhne, přihlásím se, ale hodí mi warning

Warning: Class __PHP_Incomplete_Class has no unserializer in D:\Program Files\xampp\htdocs\bakalarka\index.php on line 1

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\Program Files\xampp\htdocs\bakalarka\index.php:1) in D:\Program Files\xampp\htdocs\bakalarka\index.php on line 1

při přesunu na jinou stránku a vrácení na úvodní se už, ale warning nevyskakuje, jen na poprvé po přihlášení. Když zavolám ten samý sql dotaz standartně přes mysql žádný warning se neobjeví a vše je OK.

**přes mysql bez Dibi:**
$sql = "SELECT id_zakaznik,prihlasovaci_jmeno, heslo, jmeno, prijmeni, id_role
        FROM zakaznik
        WHERE prihlasovaci_jmeno='".$login."' AND heslo='".$heslo."'";
$vysledek = MySQL_dotaz($sql);

**přes Dibi:**
dibi_connect(); // má fce pro přihlášení k Dibi
$result = dibi::query('SELECT id_zakaznik, prihlasovaci_jmeno, heslo, jmeno, prijmeni,id_role
                   FROM [zakaznik]
               WHERE [prihlasovaci_jmeno] = %s AND [heslo] = %s', $login, $heslo);
$vysledek = $result->fetchAll();

**na stránce index.php řádku 1 je jen**
<?php session_start();
další řádky jen include
include('/function/db_connect.php');
include('/function/dibi_fce.php');
?>

Dokáže mi někdo poradit, kde je co špatného, aby mi nevyskakovali warningy? Děkuju

Editoval radekkkk (27. 11. 2009 23:07)

před 10 lety

phx
Člen | 652
  1. si precti jak spravne vkladat kody do fora. Ten tvuj prispevek je dost neprehlednej
  2. co ukladas do session?

před 10 lety

radekkkk
Člen | 3

Omlouvám se, nemohl jsem se sem dříve dostat a také za zápis dotazu… V proměnných session ukládám počet položek v košíku (tvořím eshop), přihlašovací informace (role přihlášeného uživatele). Pokud zakomentuji hned na začátku stránky session_start(); warning zmizí, ale také samozřejmě i informace, které nutně potřebuji na stránce.

před 10 lety

phx
Člen | 652

Jedine co me napada, je ze do SESSION ukladas nejaky objekt, ktery se neumi serializovat (result z DB).

Jinak bych doporucil vymazat cookies v prohlizeci a zkusit to znovu.

před 10 lety

radekkkk
Člen | 3

Děkuji, měl jsem tam jednu session ve které jsem přenášel objekt a ten házel chybu.

dibi_connect();
$result = dibi::query('SELECT id_zakaznik, prihlasovaci_jmeno, heslo, jmeno, prijmeni,id_role
                       FROM [zakaznik]
                       WHERE [prihlasovaci_jmeno] = %s AND [heslo] = %s', $login, $heslo);
$vysledek = $result->fetchAll();
$_SESSION['vysledek']=$vysledek; // zde vznikala chyba při přesměrování

Nicméně ten samý kód, bez použití dibi žádnou chybu nedělal.