Miksi tuo esimerkki ei toimi?
http://www.ohjelmointiputka.net/koodit_nayta.php?tunnus=1415
------
Notice: Trying to get property of non-object in /AAA/sessionHandler.class.php on line 134
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /AAA/sessionHandler.class.php:134) in /AAA/example.php on line 10
Warning: mysqli::query() [function.mysqli-query]: Couldn't fetch mysqli in /AAA/sessionHandler.class.php on line 175
-------
Rivillä 134 on:
if ($result->num_rows == 0) {
ja rivillä 175 on:
$this->socket->query("UPDATE sessions SET data = '$data', dateTouched = $uts WHERE sessionId = '$sessId';");
-----
Löytyykö toimiva samanlainen jostain?
http://www.ohjelmointiputka.net/koodit_nayta.php?tunnus=1415
------
Notice: Trying to get property of non-object in /AAA/sessionHandler.class.php on line 134
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /AAA/sessionHandler.class.php:134) in /AAA/example.php on line 10
Warning: mysqli::query() [function.mysqli-query]: Couldn't fetch mysqli in /AAA/sessionHandler.class.php on line 175
-------
Rivillä 134 on:
if ($result->num_rows == 0) {
ja rivillä 175 on:
$this->socket->query("UPDATE sessions SET data = '$data', dateTouched = $uts WHERE sessionId = '$sessId';");
-----
Löytyykö toimiva samanlainen jostain?
Vastaukset 7
Vanhimmat
eli et voi muutella headereita, jos vastauksen lähetys on jo aloitettu. Varsin yleinen virhe.
Eli et voi tehdä näin
>eli et voi muutella headereita, jos vastauksen lähetys on jo aloitettu. Varsin yleinen virhe.
Tuo kai johtuu tuosta huomautuksesta joka tulee ennen sitä:
"Notice: Trying to get property of non-object in /AAA/sessionHandler.class.php on line 134"
>Tarkista miksi se mysql-haku ei onnistu ja sitten toimii.
Se epäonnistuu, koska tietokannassa ei ole mitään, mitä voisi päivittää, mitä taas voisi johtua tuosta ensimmäisestä huomautuksesta.
Onko olemassa jotain valmista "virallista" ratkaisua? Siis sessions tietojen tallentaminen MySQL tietokantaan. Luulen, että se on aika yleinen tarve?
onhan sulla varmasti php 4.1 tai uudempi ja käännetty mysqli extensionin kanssa? Muuten et voi mysqliä käyttää ja siksi se sanoo "Could not fetch mysqli"
"In order to have these functions available, you must compile PHP with support for the mysqli extension."
http://fi2.php.net/mysqli
tossa ois projekti ja valmiit koodit
http://websupport.sk/~stanojr/projects/session_mysql/
"onhan sulla varmasti php 4.1 tai uudempi ja käännetty mysqli extensionin kanssa?"
Mysqli laajennos tuli vasta PHP5:teen, parannettu versio Mysql laajennoksesta, sitä ennen käytössä oli Mysql laajennos, huomaa siis i lopussa. Myös PHP5:dessä toimii tuo Mysql laajennos. Joskin nämä on kiinni mitä php.ini:ssä on määrätty.
Ja muutenkin tuo koodi käyttää PHP5:den olio-ominaisuuksia joten PHP pitää olla vähintään PHP5 tai uudempa.
Kokeileppas
Niin näät mikä PHP versio sinulla on ja mitä laajennoksia löytyy.
"Onko olemassa jotain valmista "virallista" ratkaisua? Siis sessions tietojen tallentaminen MySQL tietokantaan. Luulen, että se on aika yleinen tarve?"
Kyllähän noita valmiita scriptejä on vaikka kuinka, mutta niiden toimivuudesta jne... voi olla montaa mieltä, toki hyviäkin on kunhan vain viitsii kokeilla monia. Katsopas esim http://hotscripts.com/php
Pear on tunnettu hyvistä scripteistä, monia on aikojensaatossa lisätty ihan PHP:n ytimeenkin joten sieltä kannattaa aina ensinmäiseksi vilkasta. Pear pakettia jaetaan myös PHP:n mukana.
http://pear.php.net/search.php?q=session&in=packages
Minulla on PHP5 ja MySQL5, myös mysqli on käännetty, ilman sitä se ei saanut yhteyttä tietokantaan ja valitti olemattomasta oliosta, en muista enää tarkasti mitä.
PHP Version 5.2.0
mysql
MySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version 5.0.27
MYSQL_MODULE_TYPE no value
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_INCLUDE no value
MYSQL_LIBS no value
Directive Local Value Master Value
mysql.allow_persistent On On
mysql.connect_timeout 60 60
mysql.default_host no value no value
mysql.default_password no value no value
mysql.default_port no value no value
mysql.default_socket no value no value
mysql.default_user no value no value
mysql.max_links Unlimited Unlimited
mysql.max_persistent Unlimited Unlimited
mysql.trace_mode Off Off
mysqli
MysqlI Support enabled
Client API library version 5.0.27
Client API header version 5.0.27
MYSQLI_SOCKET /tmp/mysql.sock