|
| PHP sessions virker ikke... Fra : Thomas Schulz |
Dato : 10-04-02 17:41 |
|
Jeg har kode ala dette;
function HasUserSessionInited() {
global $shr_server_globals_file;
include $shr_server_globals_file;
return (isset($HTTP_SESSION_VARS['SESSION_INITED']));
}
function PageLoadsStartSessionCheckInit() {
global $shr_server_globals_file;
include $shr_server_globals_file;
// must be called as first session thing - here we init variables if
needed
if (CmsUserAccounts::HasUserSessionInited() == false) {
$HTTP_SESSION_VARS['SESSION_INITED'] = true;
$HTTP_SESSION_VARS['user_db_account_id'] = -1;
$HTTP_SESSION_VARS['last_login_error_to_show'] = '';
}
Mit "main.php" (som er roden/kernen) er den der kalder
PageLoadsStartSessionCheckInit() gennem følgende kode:
/* init user session */
/*
must be called here (before anything is outputted to browser)
else it will not "sessionize" "$HTTP_SESSION_VARS" no matter what
*/
session_start();
CmsUserAccounts::PageLoadsStartSessionCheckInit();
/* send headers */
// bla bla
Jeg har prøvet med browsere der godtager cookies.
Jeg har også chekket at php placerer filer i mit "sessiondata" php dir.
Jeg må overse et eller andet... Hvad?
mvh
Thomas
| |
Christian Joergensen (10-04-2002)
| Kommentar Fra : Christian Joergensen |
Dato : 10-04-02 18:08 |
|
On Wed, 10 Apr 2002 18:40:57 +0200, Thomas Schulz wrote:
> Jeg må overse et eller andet... Hvad?
Fejlmeddelsen?
Hvordan konstaterer du at det ikke virker?
--
Christian Jørgensen | Never test for a bug you don't know how to fix.
http://www.razor.dk |
| |
Thomas Schulz (10-04-2002)
| Kommentar Fra : Thomas Schulz |
Dato : 10-04-02 18:39 |
|
> Hvordan konstaterer du at det ikke virker?
Jeg laver et simpelt echo hvor værdierne inittes
Altså:
if (CmsUserAccounts::HasUserSessionInited() == false) {
echo 'echo';
$HTTP_SESSION_VARS['SESSION_INITED'] = true;
$HTTP_SESSION_VARS['user_db_account_id'] = -1;
$HTTP_SESSION_VARS['last_login_error_to_show'] = '';
}
Thomas
| |
Thomas Schulz (10-04-2002)
| Kommentar Fra : Thomas Schulz |
Dato : 10-04-02 19:26 |
|
> Hvordan konstaterer du at det ikke virker?
Jeg laver et simpelt echo hvor værdierne inittes
Altså:
if (CmsUserAccounts::HasUserSessionInited() == false) {
echo 'echo';
$HTTP_SESSION_VARS['SESSION_INITED'] = true;
$HTTP_SESSION_VARS['user_db_account_id'] = -1;
$HTTP_SESSION_VARS['last_login_error_to_show'] = '';
}
mvh
Thomas
| |
Thomas Schulz (10-04-2002)
| Kommentar Fra : Thomas Schulz |
Dato : 10-04-02 19:25 |
|
>
jeg tror faktisk det er noget generelt med php 4.1.2
jeg tog dette fra: http://www.php.net/manual/fi/ref.session.php#AEN65238
Og tilføjede echo delen..
en demo.php side:
<?php
if (isset($HTTP_SESSION_VARS['count'])) {
$HTTP_SESSION_VARS['count']++;
}
else {
$HTTP_SESSION_VARS['count'] = 0;
}
echo $HTTP_SESSION_VARS['count'];
?>
Jeg er sikker på jeg har cookies enabled...
Det virker ikke. Og heller ikke hvis man kalder sessions_start() først;
mvh
Thomas
| |
Christian Joergensen (10-04-2002)
| Kommentar Fra : Christian Joergensen |
Dato : 10-04-02 20:56 |
|
On Wed, 10 Apr 2002 20:25:17 +0200, Thomas Schulz wrote:
[snip]
> $HTTP_SESSION_VARS
Du skriver, at du benytter 4.1.2. Derfor bør du også benytte $_SESSION
array'et istedet for ovenstående.
--
Christian Jørgensen | Do not look into the laser with remaining eye!
http://www.razor.dk |
| |
Thomas Schulz (10-04-2002)
| Kommentar Fra : Thomas Schulz |
Dato : 10-04-02 21:45 |
|
> Du skriver, at du benytter 4.1.2. Derfor bør du også benytte $_SESSION
> array'et istedet for ovenstående.
Skriver de noget sted på php.net explicitly at $HTTP_SERVER_VARS ikke
fungerer længere?
Er $_SESSION ikke bare en "shorthand"?
Mmm.. Nå, men jeg vil prøve det, tak.
Thomas
| |
Jacob Atzen (10-04-2002)
| Kommentar Fra : Jacob Atzen |
Dato : 10-04-02 22:13 |
|
"Thomas Schulz" <dk_sz@hotmail.com> writes:
> Skriver de noget sted på php.net explicitly at $HTTP_SERVER_VARS ikke
> fungerer længere?
Nej, det gør de ikke. $HTTP_SERVER_VARS fungerer stadig, så vidt jeg
kan læse mig frem til. Der er lidt information om det her:
http://dk.php.net/manual/en/ref.session.php
Men det er du jo nok allerede klar over.
> Er $_SESSION ikke bare en "shorthand"?
Jo, næsten:
"As of PHP 4.1.0, $_SESSION is available as global variable just like
$_POST, $_GET, $_REQUEST and so on. Not like $HTTP_SESSION_VARS,
$_SESSION is always global."
Og så er $_SESSION jo også hurtigere at skrive, ej at forglemme ;)
Men det var lidt et long-shot i forbindelse med dine problemer,
indrømmet.
--
Med venlig hilsen / Regards
- Jacob Atzen
| |
Jacob Atzen (10-04-2002)
| Kommentar Fra : Jacob Atzen |
Dato : 10-04-02 20:59 |
|
"Thomas Schulz" <dk_sz@hotmail.com> writes:
> Jeg har kode ala dette;
<snip>
> $HTTP_SESSION_VARS['SESSION_INITED'] = true;
<snip>
Ifølge php manualen er det rigtige at gøre, at sætte $_SESSION["foobar"].
Ved ikke om det hjælper noget?
--
Med venlig hilsen / Regards
- Jacob Atzen
| |
Thomas Schulz (10-04-2002)
| Kommentar Fra : Thomas Schulz |
Dato : 10-04-02 21:50 |
|
> Ifølge php manualen er det rigtige at gøre, at sætte $_SESSION["foobar"].
> Ved ikke om det hjælper noget?
Jeg prøvede lige:
<?php
//session_start();
if (isset($_SESSION["count"])) {
$_SESSION["count"]++;
}
else {
$_SESSION["count"] = 0;
}
echo $_SESSION["count"];
?>
ingen forskel..
og url rewriting (i.e. den automatiske indsættelse af session id i urls)
virker heller ikke (har sat til false i php.ini normal) - skriver ikke
noget.
Thomas
| |
Tonni Aagesen (10-04-2002)
| Kommentar Fra : Tonni Aagesen |
Dato : 10-04-02 22:00 |
|
"Thomas Schulz" <dk_sz@hotmail.com> skrev i en meddelelse
news:3cb4a5a2$0$245$edfadb0f@dspool01.news.tele.dk...
> > Ifølge php manualen er det rigtige at gøre, at sætte
$_SESSION["foobar"].
> > Ved ikke om det hjælper noget?
>
> Jeg prøvede lige:
>
> <?php
> //session_start();
> if (isset($_SESSION["count"])) {
> $_SESSION["count"]++;
> }
> else {
> $_SESSION["count"] = 0;
> }
> echo $_SESSION["count"];
> ?>
Nu ved jeg ikke om det er anderledes i 4.1.2, men prøve lige
<?php
session_start();
session_register(count);
if (isset($_SESSION["count"])) {
$_SESSION["count"]++;
}
else {
$_SESSION["count"] = 0;
}
echo $_SESSION["count"];
?>
--
Mvh
Tonni Aagesen
agent29@mail1.stofanet.dk
| |
Thomas Schulz (10-04-2002)
| Kommentar Fra : Thomas Schulz |
Dato : 10-04-02 23:08 |
|
> Ifølge php manualen er det rigtige at gøre, at sætte $_SESSION["foobar"].
> Ved ikke om det hjælper noget?
Virker ikke, men jeg har noget meget sjovt her:
2 filer: st1.php og st2.php. Den del der bruger $HTTP_SESSION_VARS virker.
Anyway, jeg har prøvet at duplikere det til min rigtigt side, men det virker
ikke. Måske fordi noget foregår i funktioner (altså den kode jeg postede i
første post)?
Jeg ved det ikke.. Men jeg ved snart ikke hvad mere jeg kan chekke (har søgt
meget på nettet og prøvet meget selv).
Hvis det ender op med at være en eller anden typo fejl slår jeg sku mig selv
rigtigt hårdt... Her er de 2 filer:
-------------------------------------------------
// st1.php
<?
session_start();
?>
<br><br><br><br>
Used: "$_SESSION".<br><br>
<?
if (isset($_SESSION["countA"])) {
$_SESSION["countA"]++;
}
else {
$_SESSION["countA"] = 0;
}
echo $_SESSION["countA"];
echo '<a href="st2.php">link with transparent session id encoded url</a>';
?>
<br><br><br><br>
Used: "$HTTP_SESSION_VARS".<br><br>
<?
if (isset($HTTP_SESSION_VARS["countB"])) {
$HTTP_SESSION_VARS["countB"]++;
}
else {
$HTTP_SESSION_VARS["countB"] = 0;
}
echo $HTTP_SESSION_VARS["countB"];
echo '<a href="st2.php">link with transparent session id encoded url</a>';
?>
-------------------------------------------------
// st2.php
<?
session_start();
?>
<br><br><br><br>
Used: "$_SESSION".<br><br>
<?
if (isset($_SESSION["countA"])) {
$_SESSION["countA"]++;
}
else {
$_SESSION["countA"] = 0;
}
echo $_SESSION["countA"];
echo '<a href="st2.php">link with transparent session id encoded url</a>';
?>
<br><br><br><br>
Used: "$HTTP_SESSION_VARS".<br><br>
<?
if (isset($HTTP_SESSION_VARS["countB"])) {
$HTTP_SESSION_VARS["countB"]++;
}
else {
$HTTP_SESSION_VARS["countB"] = 0;
}
echo $HTTP_SESSION_VARS["countB"];
echo '<a href="st1.php">link with transparent session id encoded url</a>';
?>
mvh
Thomas
| |
Jacob Atzen (11-04-2002)
| Kommentar Fra : Jacob Atzen |
Dato : 11-04-02 18:08 |
|
"Thomas Schulz" <dk_sz@hotmail.com> writes:
> Virker ikke, men jeg har noget meget sjovt her:
>
> 2 filer: st1.php og st2.php. Den del der bruger $HTTP_SESSION_VARS virker.
> Anyway, jeg har prøvet at duplikere det til min rigtigt side, men det virker
> ikke. Måske fordi noget foregår i funktioner (altså den kode jeg postede i
> første post)?
Måske den server du bruger har et problem? Hvorfor har du iøvrigt 2
identiske filer?
> Jeg ved det ikke.. Men jeg ved snart ikke hvad mere jeg kan chekke (har søgt
> meget på nettet og prøvet meget selv).
> Hvis det ender op med at være en eller anden typo fejl slår jeg sku mig selv
> rigtigt hårdt... Her er de 2 filer:
<snip kode>
Jeg har prøvet at køre dine to små stykker kode på min server og der
virker de ganske fejlfrit. Både den øverste og den nederste counter
tæller lystigt derudaf ved hvert reload af siden.
--
Med venlig hilsen / Regards
- Jacob Atzen
| |
Kim Emax - ayianapa.~ (11-04-2002)
| Kommentar Fra : Kim Emax - ayianapa.~ |
Dato : 11-04-02 19:02 |
|
"Thomas Schulz" <dk_sz@hotmail.com> skrev
> 2 filer: st1.php og st2.php. Den del der bruger $HTTP_SESSION_VARS virker.
> Anyway, jeg har prøvet at duplikere det til min rigtigt side, men det
virker
> ikke. Måske fordi noget foregår i funktioner (altså den kode jeg postede i
> første post)?
> Jeg ved det ikke.. Men jeg ved snart ikke hvad mere jeg kan chekke (har
søgt
> meget på nettet og prøvet meget selv).
> Hvis det ender op med at være en eller anden typo fejl slår jeg sku mig
selv
> rigtigt hårdt... Her er de 2 filer:
_hvor_ kører du dette? jeg mener, hos hvilken udbyder?
--
Take Care
Kim Emax - Freelance programmør - Pt. Job og opgavesøgende.
http://www.emax.dk
http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop
| |
Thomas Schulz (11-04-2002)
| Kommentar Fra : Thomas Schulz |
Dato : 11-04-02 11:19 |
|
> Jeg har kode ala dette;
sigh..
hvis i får samme problem
så installer 4.2.0 release candidate 1
Thomas
| |
Thomas Schulz (11-04-2002)
| Kommentar Fra : Thomas Schulz |
Dato : 11-04-02 11:21 |
|
> sigh..
nevermind
der var jeg for hurtigt ude
det virker bedre
og e.g. den test kode jeg postedede før med $_SESSION og $HTTP_SERVER_VARS
virker
Thomas
| |
Thomas Schulz (11-04-2002)
| Kommentar Fra : Thomas Schulz |
Dato : 11-04-02 13:28 |
|
>
Sidste melding forhåbentligt..
Det virker nu.
Det var dels det at php 4.1.2 virker elendigt med sessions (fandt også nogle
bug reports) + at min IE åbentbart ikke accepterede cookies (jeg testede dog
under hele forløbet også med Mozilla og Opera).
Thomas
| |
|
|